/* 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-political-object-reappears {
  background: 
    linear-gradient(180deg, #2a2420 0%, #1e1815 40%, #14100e 80%, #0a0807 100%),
    radial-gradient(ellipse at 70% 50%, #3a2e28 0%, transparent 70%);
}
.scn-political-object-reappears .wall { position:absolute; inset:0; background:linear-gradient(90deg, #2a2420 0%, #1a1614 30%, #2a2420 70%, #1a1614 100%); }
.scn-political-object-reappears .shelf { position:absolute; top:10%; left:5%; right:5%; height:20%; background:linear-gradient(180deg, #4a3828 0%, #2f2218 100%); border-radius: 4px; box-shadow: inset 0 -4px 10px rgba(0,0,0,.5); }
.scn-political-object-reappears .lamp { position:absolute; top:15%; left:65%; width:20px; height:40px; background:linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,160,100,.3); animation: po-lamp-glow 6s ease-in-out infinite alternate; }
.scn-political-object-reappears .book { position:absolute; bottom:28%; left:30%; width:80px; height:50px; background:linear-gradient(135deg, #6b4a2a 0%, #4a3020 100%); border-radius: 2px; transform:rotate(-4deg); box-shadow: 2px 4px 10px rgba(0,0,0,.6); animation: po-book 10s ease-in-out infinite; }
.scn-political-object-reappears .figure-read { position:absolute; bottom:18%; left:45%; width:40px; height:60px; background:linear-gradient(180deg, #1c1613 0%, #0e0a08 100%); border-radius: 50% 40% 40% 50% / 50% 50% 40% 40%; transform:rotate(5deg); animation: po-figure 8s ease-in-out infinite; }
.scn-political-object-reappears .shadow-book { position:absolute; bottom:20%; left:32%; width:90px; height:20px; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(6px); animation: po-shadow 12s ease-in-out infinite; }
@keyframes po-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,160,100,.2); } 50% { box-shadow: 0 0 40px 16px rgba(200,160,100,.4); } 100% { box-shadow: 0 0 25px 8px rgba(200,160,100,.25); } }
@keyframes po-book { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes po-figure { 0%,100% { transform:rotate(3deg) scale(1); } 50% { transform:rotate(7deg) scale(1.02); } }
@keyframes po-shadow { 0%,100% { opacity:.3; transform:scaleX(1); } 50% { opacity:.5; transform:scaleX(1.1); } }

/* war-as-political-instrument (wp) */

.scn-introduction-politicians-ignorance {
  background:
    linear-gradient(180deg, #1a1512 0%, #2c201a 40%, #3a2a22 100%),
    radial-gradient(ellipse at 50% 80%, #4a3830 0%, transparent 70%);
}
.scn-introduction-politicians-ignorance .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a201a 0%, #1a1512 100%);
  animation: pi-room 12s ease-in-out infinite alternate;
}
.scn-introduction-politicians-ignorance .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: pi-desk 9s ease-in-out infinite;
}
.scn-introduction-politicians-ignorance .lamp {
  position: absolute; bottom: 23%; left: 45%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(-5deg);
  animation: pi-lamp 6s ease-in-out infinite;
}
.scn-introduction-politicians-ignorance .lamplight {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, #d0a060 0%, #8a6040 50%, transparent 100%);
  filter: blur(6px);
  animation: pi-glow 4s ease-in-out infinite alternate;
}
.scn-introduction-politicians-ignorance .figure {
  position: absolute; bottom: 23%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-figure 5s ease-in-out infinite;
}
.scn-introduction-politicians-ignorance .shadow {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: pi-shadow 5s ease-in-out infinite alternate;
}
@keyframes pi-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pi-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pi-lamp { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes pi-glow { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(.95) } }
@keyframes pi-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pi-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-introduction-business-competition {
  background:
    linear-gradient(180deg, #1a1815 0%, #2c2820 40%, #3a342c 100%),
    radial-gradient(ellipse at 30% 70%, #5a4e40 0%, transparent 70%);
}
.scn-introduction-business-competition .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2620 0%, #1a1815 100%);
  animation: bc-wall 15s ease-in-out infinite alternate;
}
.scn-introduction-business-competition .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-introduction-business-competition .fire-glow {
  position: absolute; bottom: 25%; left: 12%; width: 26%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #d08850 0%, #8a5030 40%, transparent 100%);
  filter: blur(10px);
  animation: bc-fire 4s ease-in-out infinite alternate;
}
.scn-introduction-business-competition .armchair {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: bc-chair 8s ease-in-out infinite;
}
.scn-introduction-business-competition .table {
  position: absolute; bottom: 18%; right: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: bc-table 10s ease-in-out infinite;
}
.scn-introduction-business-competition .papers {
  position: absolute; bottom: 20%; right: 28%; width: 20px; height: 14px;
  background: #d8c8a0;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: bc-papers 6s ease-in-out infinite;
}
@keyframes bc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes bc-fire { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.15) } 100% { opacity:.7; transform: scaleY(.9) } }
@keyframes bc-chair { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes bc-table { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes bc-papers { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(8deg) translateY(-1px) } }

.scn-introduction-military-side-clausewitz {
  background:
    linear-gradient(180deg, #1a2018 0%, #2a3228 40%, #3a4035 100%),
    radial-gradient(ellipse at 60% 20%, #4a5040 0%, transparent 70%);
}
.scn-introduction-military-side-clausewitz .library-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a3028 0%, #1a2018 100%);
  animation: ms-library 18s ease-in-out infinite alternate;
}
.scn-introduction-military-side-clausewitz .bookshelf {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.4);
}
.scn-introduction-military-side-clausewitz .book-row {
  position: absolute; top: 15%; left: 12%; right: 12%; height: 8%;
  background: repeating-linear-gradient(90deg, #8a6a50 0px 8px, #6a4a30 8px 18px, #a08060 18px 26px);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-introduction-military-side-clausewitz .book-spine {
  position: absolute; top: 25%; left: 40%; width: 12px; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ms-spine 10s ease-in-out infinite;
}
.scn-introduction-military-side-clausewitz .desk-lamp {
  position: absolute; bottom: 15%; right: 20%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8a7a60 0%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0;
  transform: rotate(10deg);
  animation: ms-lamp 8s ease-in-out infinite;
}
.scn-introduction-military-side-clausewitz .glow-spot {
  position: absolute; bottom: 20%; right: 10%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #d0b880 0%, #a08050 40%, transparent 100%);
  filter: blur(8px);
  animation: ms-glow 6s ease-in-out infinite alternate;
}
@keyframes ms-library { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ms-spine { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes ms-lamp { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(8deg) translateY(-2px) } }
@keyframes ms-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.6; transform: scale(.95) } }

.scn-introduction-killing-distance {
  background:
    linear-gradient(180deg, #0a0a12 0%, #181828 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-introduction-killing-distance .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a12 0%, #181828 100%);
  animation: kd-sky 20s ease-in-out infinite alternate;
}
.scn-introduction-killing-distance .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 60% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-introduction-killing-distance .distant-figure {
  position: absolute; bottom: 38%; left: 25%; width: 12px; height: 28px;
  background: #0a0a12;
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: scaleX(.5) translateX(-50%);
  animation: kd-figure 8s ease-in-out infinite;
}
.scn-introduction-killing-distance .muzzle-flash {
  position: absolute; bottom: 40%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fff0c0 0%, #e0a050 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #e0a050, 0 0 40px 16px rgba(224,160,80,.5);
  animation: kd-flash 0.6s ease-in-out infinite;
  animation-delay: -0.3s;
}
.scn-introduction-killing-distance .smoke {
  position: absolute; bottom: 42%; left: 55%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: kd-smoke 4s ease-in-out infinite;
}
.scn-introduction-killing-distance .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
@keyframes kd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kd-figure { 0%,100% { transform: scaleX(.5) translateX(-50%) } 50% { transform: scaleX(.5) translateX(calc(-50% + 2px)) rotate(1deg) } }
@keyframes kd-flash { 0%,100% { opacity:0; transform: scale(.5) } 50% { opacity:1; transform: scale(1.2) } }
@keyframes kd-smoke { 0% { opacity:0; transform: translateY(0) scale(.8) } 20% { opacity:.4; transform: translateY(-10px) scale(1) } 100% { opacity:0; transform: translateY(-30px) scale(1.5) } }

.scn-threads-terminate-in-combat { background: linear-gradient(180deg, #1f1a12 0%, #2a221a 40%, #3a2c1c 100%), radial-gradient(ellipse at 50% 100%, #5a4030 0%, transparent 60%); }
.scn-threads-terminate-in-combat .bg        { position:absolute; inset:0; background: linear-gradient(180deg, #1a1510 0%, #2a2018 100%); }
.scn-threads-terminate-in-combat .table     { position:absolute; bottom:8%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.6); }
.scn-threads-terminate-in-combat .figure    { position:absolute; bottom:18%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #2a221c 0%, #14100c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-ttc-figure 6s ease-in-out infinite; }
.scn-threads-terminate-in-combat .candle    { position:absolute; bottom:32%; left:55%; width:12px; height:50px; background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-threads-terminate-in-combat .flame-glow{ position:absolute; bottom:58%; left:55%; width:18px; height:18px; transform:translate(-50%,-100%); background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius:50%; box-shadow: 0 0 30px 10px #b08040; animation: si-ttc-glow 2.5s ease-in-out infinite alternate; }
.scn-threads-terminate-in-combat .scroll-a  { position:absolute; bottom:15%; left:15%; width:80px; height:14px; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius:50%/100% 100% 40% 40%; transform: rotate(-10deg); animation: si-ttc-scroll 12s ease-in-out infinite; }
.scn-threads-terminate-in-combat .scroll-b  { position:absolute; bottom:18%; left:45%; width:70px; height:10px; background: linear-gradient(180deg, #c8b498 0%, #a89070 100%); border-radius:50%/100% 100% 40% 40%; transform: rotate(5deg); animation: si-ttc-scroll 14s ease-in-out infinite reverse; }
.scn-threads-terminate-in-combat .inkwell   { position:absolute; bottom:15%; left:28%; width:24px; height:20px; background: linear-gradient(180deg, #2a1a10 0%, #0a0a08 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
@keyframes si-ttc-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes si-ttc-glow   { 0% { opacity:.8; transform: translate(-50%,-100%) scale(1) } 100% { opacity:1; transform: translate(-50%,-100%) scale(1.15) } }
@keyframes si-ttc-scroll  { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(3px) } }

.scn-object-not-always-destruction { background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 50%, #3a3028 100%), radial-gradient(ellipse at 80% 20%, #5a4a3a 0%, transparent 70%); }
.scn-object-not-always-destruction .bg        { position:absolute; inset:0; background: linear-gradient(180deg, #181510 0%, #241e18 100%); }
.scn-object-not-always-destruction .bookshelf { position:absolute; bottom:10%; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-object-not-always-destruction .globe     { position:absolute; bottom:25%; left:30%; width:60px; height:60px; background: radial-gradient(circle at 30% 30%, #6a8a5a 0%, #3a5a2a 100%); border-radius:50%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: si-ona-globe 15s linear infinite; transform-origin: bottom center; }
.scn-object-not-always-destruction .chair     { position:absolute; bottom:8%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: si-ona-chair 8s ease-in-out infinite; }
.scn-object-not-always-destruction .lamp      { position:absolute; top:10%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #a08860 0%, #604830 100%); border-radius: 10% 10% 50% 50%; }
.scn-object-not-always-destruction .lamp-glow{ position:absolute; top:4%; left:20%; width:30px; height:30px; transform:translate(-50%,0); background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius:50%; box-shadow: 0 0 40px 15px #b08040; animation: si-ona-glow 3s ease-in-out infinite alternate; }
.scn-object-not-always-destruction .book      { position:absolute; bottom:20%; left:58%; width:30px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); border-radius: 10% 10% 5% 5%; transform: rotate(8deg); }
@keyframes si-ona-globe   { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes si-ona-chair   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes si-ona-glow    { 0% { opacity:.7; transform: translate(-50%,0) scale(1) } 100% { opacity:1; transform: translate(-50%,0) scale(1.1) } }

.scn-subordinates-combats-indirect { background: linear-gradient(180deg, #1a1612 0%, #2a241e 50%, #3a3028 100%), radial-gradient(ellipse at 20% 80%, #5a4a3a 0%, transparent 70%); }
.scn-subordinates-combats-indirect .bg     { position:absolute; inset:0; background: linear-gradient(180deg, #16120e 0%, #221c16 100%); }
.scn-subordinates-combats-indirect .map    { position:absolute; top:15%; left:10%; right:10%; bottom:25%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); border-radius: 5%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-subordinates-combats-indirect .pointer{ position:absolute; top:40%; left:50%; width:6px; height:50px; background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%); transform-origin: bottom center; border-radius: 2px; animation: si-sci-pointer 8s ease-in-out infinite; }
.scn-subordinates-combats-indirect .candle { position:absolute; bottom:30%; left:20%; width:10px; height:40px; background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-subordinates-combats-indirect .flame  { position:absolute; bottom:62%; left:20%; width:16px; height:16px; transform:translate(-50%,-100%); background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius:50%; box-shadow: 0 0 20px 8px #b08040; animation: si-sci-glow 2.2s ease-in-out infinite alternate; }
.scn-subordinates-combats-indirect .stool  { position:absolute; bottom:8%; left:70%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 30% 30% 10% 10%; }
.scn-subordinates-combats-indirect .shadow { position:absolute; bottom:18%; left:30%; right:20%; height:6px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(4px); animation: si-sci-shadow 10s ease-in-out infinite; }
@keyframes si-sci-pointer { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } }
@keyframes si-sci-glow    { 0% { opacity:.7; transform: translate(-50%,-100%) scale(1) } 100% { opacity:1; transform: translate(-50%,-100%) scale(1.2) } }
@keyframes si-sci-shadow  { 0%,100% { opacity:.3 } 50% { opacity:.5 } }

.scn-combat-a-measure-of-strength { background: linear-gradient(180deg, #1a1815 0%, #2a241e 50%, #3a3028 100%), radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, transparent 70%); }
.scn-combat-a-measure-of-strength .bg        { position:absolute; inset:0; background: linear-gradient(180deg, #151210 0%, #221c16 100%); }
.scn-combat-a-measure-of-strength .chessboard{ position:absolute; bottom:8%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 5%; display:flex; flex-wrap:wrap; overflow:hidden; } /* using pattern? no, just block */
.scn-combat-a-measure-of-strength .piece-b   { position:absolute; bottom:30%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #1a1010 0%, #080808 100%); border-radius: 50% 50% 30% 30%; transform: rotate(5deg); animation: si-cms-piece 10s ease-in-out infinite; }
.scn-combat-a-measure-of-strength .piece-w   { position:absolute; bottom:28%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #d4c8b8 0%, #a09080 100%); border-radius: 50% 50% 30% 30%; animation: si-cms-piece 12s ease-in-out infinite reverse; }
.scn-combat-a-measure-of-strength .hand      { position:absolute; bottom:20%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #c8b898 0%, #8a7868 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom left; animation: si-cms-hand 8s ease-in-out infinite; }
.scn-combat-a-measure-of-strength .candle    { position:absolute; bottom:38%; left:10%; width:10px; height:40px; background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; }
.scn-combat-a-measure-of-strength .flame     { position:absolute; bottom:68%; left:10%; width:16px; height:16px; transform:translate(-50%,-100%); background: radial-gradient(circle, #ffd080 0%, #b08040 60%); border-radius:50%; box-shadow: 0 0 20px 8px #b08040; animation: si-cms-glow 2.5s ease-in-out infinite alternate; }
@keyframes si-cms-piece { 0%,100% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes si-cms-hand   { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(8px,-2px) rotate(0deg) } }
@keyframes si-cms-glow   { 0% { opacity:.7; transform: translate(-50%,-100%) scale(1) } 100% { opacity:1; transform: translate(-50%,-100%) scale(1.1) } }

/* preface-grains-to-development */
.scn-preface-grains-to-development {
  background: linear-gradient(180deg, #2a241e 0%, #1e1814 60%, #14100c 100%),
              radial-gradient(ellipse at 20% 50%, #4a3520 0%, transparent 70%);
}
.scn-preface-grains-to-development .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
  animation: pgd-desk 0s linear infinite; /* placeholder to avoid missing rule */
}
.scn-preface-grains-to-development .paper {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #f5ead0 0%, #d4c4a0 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: rotate(-2deg); animation: pgd-paper 6s ease-in-out infinite alternate;
}
.scn-preface-grains-to-development .inkwell {
  position: absolute; bottom: 16%; left: 68%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pgd-inkwell 4s ease-in-out infinite;
}
.scn-preface-grains-to-development .candle {
  position: absolute; bottom: 24%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 50%, #a07840 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 6px #ffd060;
  animation: pgd-candle 3s ease-in-out infinite alternate;
}
.scn-preface-grains-to-development .candle-glow {
  position: absolute; bottom: 28%; left: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,80,.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: pgd-glow 3s ease-in-out infinite alternate;
}
.scn-preface-grains-to-development .book-stack {
  position: absolute; bottom: 6%; left: 10%; width: 60px; height: 45px;
  background: linear-gradient(180deg, #8a6a40 0%, #5a4028 50%, #3a2818 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
  transform: rotate(1deg); animation: pgd-bookstack 8s ease-in-out infinite alternate;
}
@keyframes pgd-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes pgd-inkwell { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pgd-candle { 0% { opacity: .85; box-shadow: 0 0 6px #ffd060; } 100% { opacity: 1; box-shadow: 0 0 12px #ffd060; } }
@keyframes pgd-glow { 0% { opacity: .5; transform: scale(1); } 100% { opacity: .8; transform: scale(1.1); } }
@keyframes pgd-bookstack { 0% { transform: rotate(1deg) translateY(0); } 100% { transform: rotate(-1deg) translateY(-1px); } }

/* preface-system-and-revision */
.scn-preface-system-and-revision {
  background: linear-gradient(135deg, #1e1a16 0%, #2a221c 50%, #161210 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-preface-system-and-revision .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  animation: psr-wall 12s ease-in-out infinite alternate;
}
.scn-preface-system-and-revision .bookshelf {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: psr-shelf 0s linear infinite;
}
.scn-preface-system-and-revision .book-a {
  position: absolute; top: 15%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #604020 0%, #402810 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.4);
  transform: rotate(-2deg); animation: psr-book-a 6s ease-in-out infinite alternate;
}
.scn-preface-system-and-revision .book-b {
  position: absolute; top: 20%; left: 30%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #806040 0%, #504028 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.4);
  transform: rotate(1deg); animation: psr-book-b 8s ease-in-out infinite alternate;
}
.scn-preface-system-and-revision .book-c {
  position: absolute; top: 18%; left: 50%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #705030 0%, #382818 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.4);
  transform: rotate(-1deg); animation: psr-book-c 7s ease-in-out infinite alternate;
}
.scn-preface-system-and-revision .lamp {
  position: absolute; top: 12%; right: 20%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6830 100%);
  border-radius: 4px; box-shadow: 0 0 8px #ffd060;
  animation: psr-lamp 3s ease-in-out infinite alternate;
}
.scn-preface-system-and-revision .lamp-glow {
  position: absolute; top: 8%; right: 16%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,200,80,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: psr-glow 3s ease-in-out infinite alternate;
}
@keyframes psr-wall { 0% { opacity: .7; } 100% { opacity: .9; } }
@keyframes psr-book-a { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes psr-book-b { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes psr-book-c { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes psr-lamp { 0% { opacity: .8; box-shadow: 0 0 6px #ffd060; } 100% { opacity: 1; box-shadow: 0 0 14px #ffd060; } }
@keyframes psr-glow { 0% { opacity: .4; transform: scale(1); } 100% { opacity: .7; transform: scale(1.05); } }

/* preface-coblentz-and-academy */
.scn-preface-coblentz-and-academy {
  background: linear-gradient(180deg, #1a1410 0%, #2a201a 40%, #0e0c08 100%),
              radial-gradient(ellipse at 30% 60%, #4a3520 0%, transparent 60%);
}
.scn-preface-coblentz-and-academy .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221e 0%, #1a140e 100%);
  animation: pca-room 15s ease-in-out infinite alternate;
}
.scn-preface-coblentz-and-academy .desk-map {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5);
  animation: pca-desk 0s linear infinite;
}
.scn-preface-coblentz-and-academy .figure-seated {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pca-figure 5s ease-in-out infinite;
}
.scn-preface-coblentz-and-academy .lamp-desk {
  position: absolute; bottom: 20%; left: 60%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6830 100%);
  border-radius: 4px; box-shadow: 0 0 6px #ffd060;
  animation: pca-lamp 3s ease-in-out infinite alternate;
}
.scn-preface-coblentz-and-academy .lamp-glow-desk {
  position: absolute; bottom: 16%; left: 56%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,200,80,.35) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: pca-glow 3s ease-in-out infinite alternate;
}
.scn-preface-coblentz-and-academy .uniform-collared {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 16px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(5deg); animation: pca-collar 6s ease-in-out infinite alternate;
}
.scn-preface-coblentz-and-academy .sword-stand {
  position: absolute; bottom: 2%; right: 12%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px; transform: rotate(-3deg);
  animation: pca-sword 10s ease-in-out infinite alternate;
}
@keyframes pca-room { 0% { opacity: .6; } 100% { opacity: .8; } }
@keyframes pca-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes pca-lamp { 0% { opacity: .75; box-shadow: 0 0 4px #ffd060; } 100% { opacity: 1; box-shadow: 0 0 10px #ffd060; } }
@keyframes pca-glow { 0% { opacity: .3; transform: scale(1); } 100% { opacity: .6; transform: scale(1.08); } }
@keyframes pca-collar { 0% { transform: rotate(5deg) translateY(0); } 100% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes pca-sword { 0% { transform: rotate(-3deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-2px); } }

/* preface-not-in-active-life */
.scn-preface-not-in-active-life {
  background: linear-gradient(135deg, #1e1a18 0%, #2a2420 40%, #10100e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 60%);
}
.scn-preface-not-in-active-life .wall-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2420 0%, #141210 100%);
  animation: pnal-wall 18s ease-in-out infinite alternate;
}
.scn-preface-not-in-active-life .window-frame {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: pnal-frame 0s linear infinite;
}
.scn-preface-not-in-active-life .window-pane {
  position: absolute; top: 14%; left: 52%; width: 106px; height: 148px;
  transform: translateX(-50%); background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 2px; opacity: .4;
  animation: pnal-pane 8s ease-in-out infinite alternate;
}
.scn-preface-not-in-active-life .figure-profile {
  position: absolute; bottom: 8%; left: 40%; width: 36px; height: 72px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pnal-figure 6s ease-in-out infinite;
}
.scn-preface-not-in-active-life .telescope {
  position: absolute; bottom: 18%; left: 48%; width: 12px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 6px; transform: rotate(-15deg); transform-origin: bottom left;
  animation: pnal-telescope 10s ease-in-out infinite alternate;
}
.scn-preface-not-in-active-life .moon-mist {
  position: absolute; top: 12%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,200,220,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: pnal-moon 20s ease-in-out infinite alternate;
}
@keyframes pnal-wall { 0% { opacity: .5; } 100% { opacity: .7; } }
@keyframes pnal-pane { 0% { opacity: .3; } 100% { opacity: .5; } }
@keyframes pnal-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes pnal-telescope { 0% { transform: rotate(-15deg); } 100% { transform: rotate(-10deg); } }
@keyframes pnal-moon { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(10px) scale(1.05); } }

.scn-interior-lines-geometrical-principle {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #1e1e30 100%), radial-gradient(ellipse at 70% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-interior-lines-geometrical-principle .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 80%, #4a4a5a 0%, transparent 70%); animation: glp-bg 20s ease-in-out infinite alternate; }
.scn-interior-lines-geometrical-principle .grid { position:absolute; left:10%; right:10%; top:0; bottom:50%; background: repeating-linear-gradient(90deg, transparent, transparent 18px, rgba(200,200,220,.15) 18px, rgba(200,200,220,.15) 19px), repeating-linear-gradient(0deg, transparent, transparent 18px, rgba(200,200,220,.1) 18px, rgba(200,200,220,.1) 19px); animation: glp-grid 12s ease-in-out infinite; }
.scn-interior-lines-geometrical-principle .desk { position:absolute; bottom:20%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:8% 8% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.6); animation: glp-desk 6s ease-in-out infinite alternate; }
.scn-interior-lines-geometrical-principle .compass { position:absolute; bottom:30%; left:45%; width:50px; height:60px; background: radial-gradient(circle at 50% 30%, #8a7a6a 0%, #4a3a2a 80%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: glp-compass 8s ease-in-out infinite; }
.scn-interior-lines-geometrical-principle .glow-spot { position:absolute; top:20%; left:50%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,180,140,.5) 0%, transparent 70%); border-radius:50%; transform:translate(-50%,-50%); animation: glp-glow 4s ease-in-out infinite alternate; }
.scn-interior-lines-geometrical-principle .shadow-layer { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.4) 100%); animation: glp-shadow 10s ease-in-out infinite; }
@keyframes glp-bg { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes glp-grid { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes glp-desk { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes glp-compass { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes glp-glow { 0% { opacity:.3; transform:translate(-50%,-50%) scale(.8) } 100% { opacity:.6; transform:translate(-50%,-50%) scale(1.1) } }
@keyframes glp-shadow { 0% { opacity:.4 } 50% { opacity:.3 } 100% { opacity:.4 } }

.scn-all-attempts-open-to-objection {
  background: linear-gradient(180deg, #2a1e1e 0%, #1e1414 50%, #140e0e 100%), radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 60%);
}
.scn-all-attempts-open-to-objection .bg { position:absolute; inset:0; background: radial-gradient(circle at 80% 40%, #4a3a3a 0%, transparent 60%); animation: ato-bg 18s ease-in-out infinite alternate; }
.scn-all-attempts-open-to-objection .desk { position:absolute; bottom:15%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:10% 10% 0 0; box-shadow:0 -6px 20px rgba(0,0,0,.6); }
.scn-all-attempts-open-to-objection .papers { position:absolute; bottom:30%; left:20%; right:20%; height:20%; background: linear-gradient(135deg, #c8b89a 0%, #a89878 50%, #807060 100%); border-radius:4% 8% 12% 4%; transform:rotate(-3deg); box-shadow:2px 4px 10px rgba(0,0,0,.3); animation: ato-papers 5s ease-in-out infinite alternate; }
.scn-all-attempts-open-to-objection .inkwell { position:absolute; bottom:32%; right:30%; width:20px; height:30px; background: radial-gradient(circle at 50% 40%, #5a4a3a 0%, #2a1a1a 100%); border-radius:30% 30% 40% 40% / 40% 40% 30% 30%; animation: ato-inkwell 7s ease-in-out infinite; }
.scn-all-attempts-open-to-objection .candle { position:absolute; bottom:35%; left:25%; width:12px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b89a 40%, #8a7a6a 100%); border-radius:4% 4% 10% 10%; transform-origin: bottom center; animation: ato-candle 3s ease-in-out infinite; }
.scn-all-attempts-open-to-objection .glow-candle { position:absolute; bottom:45%; left:25%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,220,150,.8) 0%, rgba(255,200,100,.3) 50%, transparent 70%); transform:translate(-50%,-50%); animation: ato-glow 2s ease-in-out infinite alternate; }
@keyframes ato-bg { 0% { opacity:.7 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes ato-papers { 0% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(-4deg) translateY(-2px) } 100% { transform:rotate(-1deg) translateY(0) } }
@keyframes ato-inkwell { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-1px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes ato-candle { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes ato-glow { 0% { opacity:.5; transform:translate(-50%,-50%) scale(.8) } 100% { opacity:.8; transform:translate(-50%,-50%) scale(1.3) } }

.scn-as-a-rule-they-exclude-genius {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #1e1e3e 100%), radial-gradient(ellipse at 50% 90%, #3a3a5a 0%, transparent 60%);
}
.scn-as-a-rule-they-exclude-genius .bg { position:absolute; inset:0; background: radial-gradient(circle at 30% 60%, #4a4a6a 0%, transparent 50%); animation: exg-bg 22s ease-in-out infinite alternate; }
.scn-as-a-rule-they-exclude-genius .rule-bar { position:absolute; bottom:30%; left:5%; right:5%; height:6px; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%); border-radius:3px; box-shadow:0 2px 8px rgba(0,0,0,.5); }
.scn-as-a-rule-they-exclude-genius .pedestal { position:absolute; bottom:35%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; }
.scn-as-a-rule-they-exclude-genius .figure { position:absolute; bottom:55%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; animation: exg-figure 6s ease-in-out infinite; }
.scn-as-a-rule-they-exclude-genius .crown { position:absolute; bottom:78%; left:50%; width:20px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c8a860 100%); border-radius:50%; box-shadow:0 0 12px rgba(200,168,96,.6); animation: exg-crown 4s ease-in-out infinite alternate; }
.scn-as-a-rule-they-exclude-genius .light-ray { position:absolute; top:5%; left:40%; right:40%; bottom:60%; background: linear-gradient(180deg, rgba(255,240,180,.3) 0%, transparent 100%); filter: blur(10px); clip-path: polygon(50% 0%, 40% 100%, 60% 100%); animation: exg-ray 8s ease-in-out infinite alternate; }
@keyframes exg-bg { 0% { opacity:.7 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes exg-figure { 0% { transform:translateX(-50%) translateY(0) scale(1) } 50% { transform:translateX(-50%) translateY(-4px) scale(1.03) } 100% { transform:translateX(-50%) translateY(0) scale(1) } }
@keyframes exg-crown { 0% { transform:translateX(-50%) scale(1) rotate(-3deg) } 100% { transform:translateX(-50%) scale(1.15) rotate(3deg) } }
@keyframes exg-ray { 0% { opacity:.2; transform:scaleY(1) } 100% { opacity:.5; transform:scaleY(1.2) } }

.scn-difficulty-of-theory-moral-quantities {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3e 50%, #16161e 100%), radial-gradient(ellipse at 30% 40%, #3a3a5a 0%, transparent 60%);
}
.scn-difficulty-of-theory-moral-quantities .bg { position:absolute; inset:0; background: radial-gradient(circle at 70% 30%, #4a4a6a 0%, transparent 60%); animation: mtq-bg 25s ease-in-out infinite alternate; }
.scn-difficulty-of-theory-moral-quantities .desk { position:absolute; bottom:10%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:8% 8% 0 0; box-shadow:0 -4px 16px rgba(0,0,0,.6); }
.scn-difficulty-of-theory-moral-quantities .thinker { position:absolute; bottom:30%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: mtq-think 5s ease-in-out infinite; }
.scn-difficulty-of-theory-moral-quantities .globe { position:absolute; bottom:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle at 40% 30%, #6a8a6a 0%, #3a4a3a 60%, #1a2a1a 100%); border-radius:50%; box-shadow:0 0 20px rgba(60,100,60,.3); animation: mtq-globe 20s linear infinite; }
.scn-difficulty-of-theory-moral-quantities .swirl { position:absolute; top:15%; left:20%; right:20%; bottom:50%; background: radial-gradient(ellipse at 50% 50%, rgba(100,120,160,.15) 0%, transparent 70%); animation: mtq-swirl 12s ease-in-out infinite alternate; }
.scn-difficulty-of-theory-moral-quantities .lamp { position:absolute; top:5%; left:40%; width:40px; height:30px; background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c8a860 50%, transparent 100%); border-radius:50%; animation: mtq-lamp 3s ease-in-out infinite alternate; }
@keyframes mtq-bg { 0% { opacity:.6 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes mtq-think { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(3deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes mtq-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes mtq-swirl { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-5px) } 100% { transform: scale(1) translateY(0) } }
@keyframes mtq-lamp { 0% { opacity:.6; box-shadow:0 0 10px rgba(200,168,96,.4) } 100% { opacity:.9; box-shadow:0 0 30px rgba(200,168,96,.8) } }

/* arguments-ad-hominem */
.scn-arguments-ad-hominem {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a3a 0%, transparent 60%);
}
.scn-arguments-ad-hominem .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3038 100%);
  border-bottom: 8px solid #1a1a2e;
  animation: aah-wall 12s ease-in-out infinite alternate;
}
.scn-arguments-ad-hominem .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 16px rgba(0,0,0,0.6);
  animation: aah-desk 8s ease-in-out infinite;
}
.scn-arguments-ad-hominem .book {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: aah-book 10s ease-in-out infinite alternate;
}
.scn-arguments-ad-hominem .candle {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #6a4a20 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4);
}
.scn-arguments-ad-hominem .flame {
  position: absolute; bottom: 42%; left: 55.5%; width: 6px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 6px #e8a040, 0 0 32px 12px rgba(232,160,64,0.3);
  animation: aah-flame 1.5s ease-in-out infinite alternate;
}
.scn-arguments-ad-hominem .figure {
  position: absolute; bottom: 20%; left: 40%; 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: aah-figure 14s ease-in-out infinite;
}
@keyframes aah-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes aah-desk {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes aah-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes aah-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.85; }
}
@keyframes aah-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* diversity-political-objects */
.scn-diversity-political-objects {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 60%, #3a3a2e 100%),
    radial-gradient(ellipse at 50% 70%, #3a3a2e 0%, transparent 70%);
}
.scn-diversity-political-objects .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #2e2e1e 100%);
  animation: dpo-wall 20s ease-in-out infinite alternate;
}
.scn-diversity-political-objects .shelf {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-diversity-political-objects .object-a {
  position: absolute; bottom: 48%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle at 30% 40%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dpo-obj-a 12s ease-in-out infinite alternate;
}
.scn-diversity-political-objects .object-b {
  position: absolute; bottom: 46%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dpo-obj-b 9s ease-in-out infinite;
}
.scn-diversity-political-objects .object-c {
  position: absolute; bottom: 50%; right: 25%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: dpo-obj-c 15s ease-in-out infinite alternate;
}
.scn-diversity-political-objects .lamp {
  position: absolute; bottom: 38%; left: 70%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #b0a080 0%, #6a5a3a 100%);
  border-radius: 2px;
}
.scn-diversity-political-objects .glow {
  position: absolute; bottom: 45%; left: 68%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0b080 0%, transparent 70%);
  opacity: 0.5;
  animation: dpo-glow 4s ease-in-out infinite alternate;
}
@keyframes dpo-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dpo-obj-a {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dpo-obj-b {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes dpo-obj-c {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes dpo-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

/* only-one-means-fight */
.scn-only-one-means-fight {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #2e2e2e 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a3a 0%, transparent 70%);
}
.scn-only-one-means-fight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-only-one-means-fight .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-only-one-means-fight .sword {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #8a7a6a 0%, #c0b0a0 50%, #8a7a6a 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  box-shadow: 0 0 8px rgba(200,180,160,0.3);
  animation: oomf-sword 6s ease-in-out infinite alternate;
}
.scn-only-one-means-fight .guard {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 12px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: oomf-guard 6s ease-in-out infinite alternate;
}
.scn-only-one-means-fight .shadow {
  position: absolute; bottom: 22%; left: 42%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: oomf-shadow 10s ease-in-out infinite;
}
.scn-only-one-means-fight .spark {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 4px;
  background: radial-gradient(circle, #e0c080 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #e0c080;
  animation: oomf-spark 3s ease-in-out infinite;
}
@keyframes oomf-sword {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-4px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes oomf-guard {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes oomf-shadow {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.2); opacity: 0.7; }
  100% { transform: scaleY(1); opacity: 0.5; }
}
@keyframes oomf-spark {
  0% { transform: scale(0.5); opacity: 0.3; }
  25% { transform: scale(1.2); opacity: 1; }
  50% { transform: scale(0.8); opacity: 0.6; }
  75% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(0.5); opacity: 0.3; }
}

/* armed-forces-imply-fighting */
.scn-armed-forces-imply-fighting {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #2e2e2e 100%),
    radial-gradient(ellipse at 30% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-armed-forces-imply-fighting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
}
.scn-armed-forces-imply-fighting .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-armed-forces-imply-fighting .figure-a {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aff-figure-a 16s ease-in-out infinite;
}
.scn-armed-forces-imply-fighting .figure-b {
  position: absolute; bottom: 30%; right: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aff-figure-b 16s ease-in-out infinite alternate;
}
.scn-armed-forces-imply-fighting .map {
  position: absolute; bottom: 25%; left: 42%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: aff-map 14s ease-in-out infinite;
}
.scn-armed-forces-imply-fighting .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #c8a060 0%, #6a4a20 100%);
  border-radius: 3px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4);
}
.scn-armed-forces-imply-fighting .smoke {
  position: absolute; bottom: 50%; left: 46%; width: 20px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: aff-smoke 8s ease-in-out infinite;
}
.scn-armed-forces-imply-fighting .smoke-right {
  position: absolute; bottom: 55%; left: 52%; width: 16px; height: 50px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 100%);
  filter: blur(5px);
  animation: aff-smoke 10s ease-in-out infinite reverse;
}
@keyframes aff-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(4px) rotate(2deg); }
  40% { transform: translateX(0) rotate(-2deg); }
  60% { transform: translateX(-4px) rotate(1deg); }
  80% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes aff-figure-b {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-4px) rotate(-2deg); }
  40% { transform: translateX(0) rotate(2deg); }
  60% { transform: translateX(4px) rotate(-1deg); }
  80% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes aff-map {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes aff-smoke {
  0% { transform: translateY(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateY(-10px) scaleY(1.2); opacity: 0.6; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.4; }
}

.scn-war-distracts-from-road { background: linear-gradient(180deg, #1a1410 0%, #2c2218 45%, #3a2c1e 100%), radial-gradient(ellipse at 30% 70%, #4a3828 0%, transparent 60%); }
.scn-war-distracts-from-road .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2c2218 0%, #1a1410 100%); }
.scn-war-distracts-from-road .desk   { position:absolute; bottom:12%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #4a3828 0%, #3a2c1e 100%); border-radius:4px 4px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.3); }
.scn-war-distracts-from-road .candle { position:absolute; bottom:30%; left:20%; width:8px; height:28px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:4px; }
.scn-war-distracts-from-road .flame  { position:absolute; bottom:57%; left:20.5%; width:6px; height:16px; background: radial-gradient(ellipse at 50% 30%, #ffd070 0%, #ff8030 60%, transparent 100%); border-radius:50%; animation: war-glow 2.5s ease-in-out infinite alternate; }
.scn-war-distracts-from-road .map    { position:absolute; bottom:18%; left:35%; width:40%; height:20%; background: linear-gradient(90deg, #d4c4a0 0%, #c4b490 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-war-distracts-from-road .figure { position:absolute; bottom:10%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #0a0a08 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: war-walk 6s ease-in-out infinite; }
.scn-war-distracts-from-road .shadow { position:absolute; bottom:10%; left:55%; width:40px; height:12px; background: rgba(0,0,0,.5); border-radius:50%; transform:translateX(-50%); filter:blur(4px); animation: war-shadow 6s ease-in-out infinite; }
@keyframes war-glow   { 0% { opacity:.7; transform:scaleY(1) translateY(0); } 50% { opacity:1; transform:scaleY(1.1) translateY(-2px); } 100% { opacity:.8; transform:scaleY(.9) translateY(1px); } }
@keyframes war-walk   { 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 war-shadow { 0% { transform:translateX(-50%) scaleX(1); opacity:.5; } 50% { transform:translateX(-50%) scaleX(1.1); opacity:.3; } 100% { transform:translateX(-50%) scaleX(.9); opacity:.5; } }

.scn-harrowing-sight-feelings-ascendency { background: linear-gradient(180deg, #0c0a0e 0%, #1a1218 40%, #2c1e26 100%), radial-gradient(ellipse at 70% 30%, #3a2a34 0%, transparent 70%); }
.scn-harrowing-sight-feelings-ascendency .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1218 0%, #0c0a0e 100%); }
.scn-harrowing-sight-feelings-ascendency .chair   { position:absolute; bottom:15%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #2c1e26 0%, #1a1218 100%); border-radius:20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-harrowing-sight-feelings-ascendency .figure  { position:absolute; bottom:22%; left:28%; width:24px; height:50px; background: linear-gradient(180deg, #0a080c 0%, #161016 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); }
.scn-harrowing-sight-feelings-ascendency .lantern { position:absolute; bottom:60%; left:65%; width:14px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 20px 6px rgba(200,150,80,.3); animation: har-lantern 4s ease-in-out infinite alternate; }
.scn-harrowing-sight-feelings-ascendency .light-cone { position:absolute; bottom:40%; left:62%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 0%, rgba(200,150,80,.25) 0%, transparent 70%); transform:rotate(-10deg); pointer-events:none; animation: har-cone 4s ease-in-out infinite alternate; }
.scn-harrowing-sight-feelings-ascendency .shadow-figure { position:absolute; bottom:15%; right:10%; width:60px; height:90px; background: rgba(0,0,0,.6); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; filter:blur(6px); transform:scaleX(-1) rotate(5deg); animation: har-shadow 4s ease-in-out infinite alternate; }
@keyframes har-lantern { 0% { transform:rotate(-3deg); opacity:.8; } 50% { transform:rotate(2deg) translateY(-2px); opacity:1; } 100% { transform:rotate(-1deg); opacity:.7; } }
@keyframes har-cone   { 0% { opacity:.4; transform:rotate(-10deg) scaleY(.9); } 50% { opacity:.7; transform:rotate(-5deg) scaleY(1.1); } 100% { opacity:.3; transform:rotate(-12deg) scaleY(.8); } }
@keyframes har-shadow { 0% { transform:scaleX(-1) rotate(5deg) translateX(0); opacity:.6; } 50% { transform:scaleX(-1) rotate(7deg) translateX(-4px); opacity:.8; } 100% { transform:scaleX(-1) rotate(3deg) translateX(2px); opacity:.5; } }

.scn-discernment-clear-deep-principles { background: linear-gradient(180deg, #1c1612 0%, #2e241e 50%, #3e3228 100%), radial-gradient(ellipse at 40% 80%, #4a3c30 0%, transparent 60%); }
.scn-discernment-clear-deep-principles .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2e241e 0%, #1c1612 100%); }
.scn-discernment-clear-deep-principles .window { position:absolute; top:10%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-discernment-clear-deep-principles .desk   { position:absolute; bottom:10%; left:10%; right:10%; height:16%; background: linear-gradient(180deg, #4a3c30 0%, #3a2e24 100%); border-radius:6px 6px 0 0; }
.scn-discernment-clear-deep-principles .book   { position:absolute; bottom:18%; left:40%; width:50px; height:30px; background: linear-gradient(90deg, #5a3e28 0%, #4a3220 100%); border-radius:2px; transform:rotate(-3deg); box-shadow:0 2px 6px rgba(0,0,0,.5); }
.scn-discernment-clear-deep-principles .figure { position:absolute; bottom:12%; left:45%; width:26px; height:56px; background: linear-gradient(180deg, #0a080c 0%, #1a1412 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-8deg); transform-origin: bottom center; animation: dis-read 5s ease-in-out infinite; }
.scn-discernment-clear-deep-principles .candle { position:absolute; bottom:30%; left:55%; width:6px; height:22px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:3px; }
.scn-discernment-clear-deep-principles .flame  { position:absolute; bottom:51%; left:55.3%; width:5px; height:12px; background: radial-gradient(ellipse at 50% 30%, #ffd070 0%, #ff8030 60%, transparent 100%); border-radius:50%; animation: dis-flame 2s ease-in-out infinite alternate; }
@keyframes dis-read  { 0% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes dis-flame { 0% { opacity:.7; transform:scaleY(1) translateY(0); } 50% { opacity:1; transform:scaleY(1.2) translateY(-1px); } 100% { opacity:.8; transform:scaleY(.8) translateY(1px); } }

.scn-balanced-mind-essential-to-character { background: linear-gradient(180deg, #1a1612 0%, #2c241e 45%, #3c3228 100%), radial-gradient(ellipse at 50% 60%, #4a3c30 0%, transparent 70%); }
.scn-balanced-mind-essential-to-character .bg-wall   { position:absolute; inset:0; background: linear-gradient(135deg, #2c241e 0%, #1a1612 100%); }
.scn-balanced-mind-essential-to-character .pedestal  { position:absolute; bottom:18%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #4a3c30 0%, #3a2e24 100%); border-radius:4px; transform:translateX(-50%); }
.scn-balanced-mind-essential-to-character .scales    { position:absolute; bottom:58%; left:50%; width:80px; height:6px; background: #5a4a3a; border-radius:2px; transform:translateX(-50%); box-shadow:0 2px 4px rgba(0,0,0,.4); animation: bal-beam 4s ease-in-out infinite alternate; }
.scn-balanced-mind-essential-to-character .left-pan  { position:absolute; bottom:42%; left:38%; width:30px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3c30 100%); border-radius:0 0 20% 20%; transform-origin: top center; animation: bal-pans 4s ease-in-out infinite alternate; }
.scn-balanced-mind-essential-to-character .right-pan { position:absolute; bottom:42%; right:38%; width:30px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3c30 100%); border-radius:0 0 20% 20%; transform-origin: top center; animation: bal-pans 4s ease-in-out infinite alternate-reverse; }
.scn-balanced-mind-essential-to-character .figure    { position:absolute; bottom:12%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #0a080c 0%, #1a1412 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(3deg); }
.scn-balanced-mind-essential-to-character .light     { position:absolute; top:15%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #ffd070 0%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,80,.3); animation: bal-light 3s ease-in-out infinite alternate; }
@keyframes bal-beam { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(3deg); } 100% { transform:translateX(-50%) rotate(-3deg); } }
@keyframes bal-pans { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(3deg) translateY(2px); } 100% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes bal-light { 0% { opacity:.6; transform:scale(.8); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }

.scn-ends-and-means-chapter {
  background: 
    radial-gradient(ellipse at 50% 70%, #2a1e1a 0%, #1a1210 70%),
    linear-gradient(180deg, #1c1410 0%, #0e0a08 100%);
  position: relative;
  overflow: hidden;
  height: 100vh;
}
.scn-ends-and-means-chapter .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #120e0a 100%);
  animation: eamc-pulse 20s ease-in-out infinite alternate;
}
.scn-ends-and-means-chapter .desk {
  position: absolute; bottom: 5%; left: 30%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(10deg);
}
.scn-ends-and-means-chapter .book {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 2px;
  transform: skewY(-2deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: eamc-breath 6s ease-in-out infinite;
}
.scn-ends-and-means-chapter .candle {
  position: absolute; bottom: 22%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #c8a070 0%, #6a4a30 100%);
  border-radius: 2px 2px 1px 1px;
  filter: drop-shadow(0 0 4px rgba(200,160,100,0.3));
}
.scn-ends-and-means-chapter .flame {
  position: absolute; bottom: 44%; left: 55.5%; width: 6px; height: 12px;
  background: radial-gradient(ellipse, #f0c060 0%, #d08840 50%, #903020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: eamc-flicker 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 8px rgba(200,120,40,0.4), 0 0 40px 10px rgba(200,120,40,0.2);
}
.scn-ends-and-means-chapter .quill {
  position: absolute; bottom: 16%; left: 48%; width: 2px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: eamc-quill 7s ease-in-out infinite;
}
.scn-ends-and-means-chapter .window {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a121a 100%);
  border: 4px solid #2a1a10;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-ends-and-means-chapter .moonlight {
  position: absolute; top: 5%; left: 60%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 30% 10%, rgba(180,200,220,0.15) 0%, transparent 70%);
  animation: eamc-moon 30s linear infinite alternate;
}
@keyframes eamc-pulse { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes eamc-breath { 0%, 100% { transform: skewY(-2deg) translateY(0); } 50% { transform: skewY(-2deg) translateY(-2px); } }
@keyframes eamc-flicker { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.7; } }
@keyframes eamc-quill { 0%, 100% { transform: rotate(20deg); } 50% { transform: rotate(15deg); } }
@keyframes eamc-moon { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }

.scn-variable-object-effort {
  background: 
    radial-gradient(ellipse at 40% 50%, #2a2018 0%, #0e0a08 80%),
    linear-gradient(180deg, #1a1210 0%, #120e0c 100%);
  position: relative;
  overflow: hidden;
  height: 100vh;
}
.scn-variable-object-effort .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
}
.scn-variable-object-effort .lamp {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-variable-object-effort .lamp-light {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(220,180,120,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: voe-glow 4s ease-in-out infinite alternate;
}
.scn-variable-object-effort .paper {
  position: absolute; bottom: 10%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: voe-paper 10s ease-in-out infinite;
}
.scn-variable-object-effort .inkwell {
  position: absolute; bottom: 12%; left: 45%; width: 16px; height: 18px;
  background: radial-gradient(circle, #2a2018 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-variable-object-effort .hand {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8b098 0%, #a0806a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: voe-write 5s ease-in-out infinite;
}
.scn-variable-object-effort .shelf {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 6px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-variable-object-effort .shelf-item {
  position: absolute; top: 8%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: voe-shelf 8s ease-in-out infinite alternate;
}
@keyframes voe-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes voe-paper { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes voe-write { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 75% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes voe-shelf { 0% { opacity: 0.8; } 100% { opacity: 1; } }

.scn-pure-conception-disarm {
  background: 
    radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, #0e0a08 80%),
    linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  position: relative;
  overflow: hidden;
  height: 100vh;
}
.scn-pure-conception-disarm .bg-floor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%);
}
.scn-pure-conception-disarm .figure-silhouette {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0604 0%, #040202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcd-stand 8s ease-in-out infinite alternate;
  box-shadow: 0 0 10px rgba(0,0,0,0.8);
}
.scn-pure-conception-disarm .table {
  position: absolute; bottom: 8%; left: 45%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%);
  border-radius: 2px;
  transform: perspective(600px) rotateX(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-pure-conception-disarm .sword {
  position: absolute; bottom: 14%; left: 48%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 1px;
  animation: pcd-sword 12s ease-in-out infinite;
}
.scn-pure-conception-disarm .sheath {
  position: absolute; bottom: 12%; left: 52%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 1px;
}
.scn-pure-conception-disarm .glow-line {
  position: absolute; bottom: 20%; left: 48%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #c8a070 0%, transparent 100%);
  opacity: 0.6;
  animation: pcd-glow 4s ease-in-out infinite alternate;
}
.scn-pure-conception-disarm .dust {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: rgba(180,160,120,0.3);
  border-radius: 50%;
  box-shadow: 20px 30px 0 0 rgba(180,160,120,0.2), 40px 60px 0 0 rgba(180,160,120,0.15);
  animation: pcd-drift 30s linear infinite;
}
@keyframes pcd-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pcd-sword { 0%, 100% { transform: rotate(30deg); } 50% { transform: rotate(26deg); } }
@keyframes pcd-glow { 0% { opacity: 0.3; } 100% { opacity: 0.8; } }
@keyframes pcd-drift { 0% { transform: translateX(0) translateY(0); } 100% { transform: translateX(-30px) translateY(-20px); } }

.scn-three-general-objects {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1e1a 0%, #0e0a08 80%),
    linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  position: relative;
  overflow: hidden;
  height: 100vh;
}
.scn-three-general-objects .surface {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 6px 6px 0 0;
  transform: perspective(1000px) rotateX(10deg);
}
.scn-three-general-objects .globe {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #5a6a6a 0%, #2a3a3a 60%, #1a2a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tgo-spin 15s linear infinite;
}
.scn-three-general-objects .book-stack {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0c 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5), 0 -4px 0 #3a2010;
  transform: rotate(-3deg);
}
.scn-three-general-objects .compass {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #8a7a6a 0%, #4a3a2a 80%);
  border-radius: 50%;
  border: 2px solid #3a2a20;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: tgo-pulse 6s ease-in-out infinite alternate;
}
.scn-three-general-objects .candle-pair {
  position: absolute; bottom: 22%; left: 70%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #c8a070 0%, #6a4a30 100%);
  border-radius: 1px;
  box-shadow: 12px 0 0 #c8a070, 12px 0 0 0 #6a4a30;
  filter: drop-shadow(0 0 4px rgba(200,160,100,0.2));
}
.scn-three-general-objects .warm-haze {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(220,180,120,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: tgo-haze 8s ease-in-out infinite alternate;
}
.scn-three-general-objects .shadow-shape {
  position: absolute; bottom: 5%; left: 15%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: tgo-shadow 12s ease-in-out infinite;
}
@keyframes tgo-spin { 0% { transform: rotate(0deg) scale(1); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes tgo-pulse { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes tgo-haze { 0% { opacity: 0.3; transform: translateX(0); } 100% { opacity: 0.7; transform: translateX(10px); } }
@keyframes tgo-shadow { 0%, 100% { opacity: 0.2; } 50% { opacity: 0.5; } }

.scn-doubtful-cases-classification {
  background: 
    linear-gradient(180deg, #2a2420 0%, #1e1815 50%, #14100c 100%),
    radial-gradient(ellipse at 50% 30%, #3a2f28 0%, transparent 70%);
}
.scn-doubtful-cases-classification .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #362e28 0%, #1e1815 100%); animation: dc1-wall 20s ease-in-out infinite alternate; }
.scn-doubtful-cases-classification .bookshelf { position:absolute; top:12%; left:8%; width:28%; height:55%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-doubtful-cases-classification .desk { position:absolute; bottom:10%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #5a4436 0%, #3a2a1e 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-doubtful-cases-classification .lamp { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6a3a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px rgba(200,160,96,.35); animation: dc1-lamp 8s ease-in-out infinite alternate; }
.scn-doubtful-cases-classification .book-spine { position:absolute; bottom:8%; width:8px; height:40%; background: linear-gradient(180deg, #8a6a44 0%, #4a3220 100%); border-radius: 2px 2px 0 0; transform: rotate(-2deg); }
.scn-doubtful-cases-classification .book-a { left:16%; animation: dc1-book-a 6s ease-in-out infinite; }
.scn-doubtful-cases-classification .book-b { left:22%; width:6px; height:35%; background: linear-gradient(180deg, #705034 0%, #3a2618 100%); animation: dc1-book-b 8s ease-in-out infinite reverse; }
.scn-doubtful-cases-classification .candle-wax { position:absolute; bottom:26%; left:45%; width:6px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 8px 2px rgba(200,160,96,.3); animation: dc1-candle 10s ease-in-out infinite; }
@keyframes dc1-wall { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes dc1-lamp { 0% { box-shadow: 0 0 20px 4px rgba(200,160,96,.3); } 50% { box-shadow: 0 0 40px 12px rgba(200,160,96,.5); } 100% { box-shadow: 0 0 25px 6px rgba(200,160,96,.35); } }
@keyframes dc1-book-a { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes dc1-book-b { 0%,100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes dc1-candle { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.8; transform: scaleY(.98); } }

.scn-maintenance-of-military-force {
  background: 
    linear-gradient(180deg, #2a2520 0%, #1d1814 50%, #12100c 100%),
    radial-gradient(ellipse at 50% 60%, #3a322a 0%, transparent 60%);
}
.scn-maintenance-of-military-force .bg-walls { position:absolute; inset:0; background: linear-gradient(135deg, #2c2620 0%, #181410 100%); }
.scn-maintenance-of-military-force .rack { position:absolute; bottom:15%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #4a3a2c 0%, #2a1e16 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,.7); }
.scn-maintenance-of-military-force .shield { position:absolute; bottom:32%; left:15%; width:40px; height:50px; background: radial-gradient(circle at 50% 40%, #6a5a44 0%, #3a2e22 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mmf2-shield 12s ease-in-out infinite alternate; }
.scn-maintenance-of-military-force .sword { position:absolute; bottom:38%; left:25%; width:6px; height:48px; background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius: 3px 3px 0 0; transform: rotate(-15deg); box-shadow: 0 0 6px rgba(200,200,200,.2); animation: mmf2-sword 16s ease-in-out infinite; }
.scn-maintenance-of-military-force .lantern-hang { position:absolute; top:8%; left:48%; width:16px; height:20px; background: radial-gradient(circle at 50% 40%, #c8a060 0%, #8a6a40 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 25px 6px rgba(200,160,96,.4); animation: mmf2-lantern 6s ease-in-out infinite alternate; }
.scn-maintenance-of-military-force .helm { position:absolute; bottom:30%; left:55%; width:36px; height:30px; background: linear-gradient(180deg, #5a5040 0%, #3a322a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: mmf2-helm 20s ease-in-out infinite; }
@keyframes mmf2-shield { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes mmf2-sword { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-13deg) translateX(1px); } }
@keyframes mmf2-lantern { 0% { opacity:.8; box-shadow: 0 0 18px 3px rgba(200,160,96,.3); } 50% { opacity:1; box-shadow: 0 0 35px 10px rgba(200,160,96,.5); } 100% { opacity:.85; box-shadow: 0 0 22px 5px rgba(200,160,96,.35); } }
@keyframes mmf2-helm { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } }

.scn-threads-of-others-end-in-combat {
  background: 
    linear-gradient(180deg, #1e1a16 0%, #14100c 50%, #0c0806 100%),
    radial-gradient(ellipse at 50% 50%, #2a2420 0%, transparent 70%);
}
.scn-threads-of-others-end-in-combat .table-top { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #4a3a2c 0%, #2a1e14 100%); border-radius: 40% 50% 30% 40% / 30% 40% 40% 50%; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-threads-of-others-end-in-combat .map { position:absolute; inset:15% 8% 20% 8%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%); border-radius: 5px; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-threads-of-others-end-in-combat .candle-flame { position:absolute; top:15%; width:10px; height:14px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c89050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(200,160,96,.5); animation: toe3-candle 4s ease-in-out infinite alternate; }
.scn-threads-of-others-end-in-combat .candle-left { left:20%; }
.scn-threads-of-others-end-in-combat .candle-right { left:70%; animation-delay: -2s; }
.scn-threads-of-others-end-in-combat .token { position:absolute; width:12px; height:12px; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: toe3-token 10s ease-in-out infinite; }
.scn-threads-of-others-end-in-combat .token-inf { bottom:30%; left:30%; background: radial-gradient(circle at 40% 40%, #806040 0%, #4a3020 100%); }
.scn-threads-of-others-end-in-combat .token-cav { bottom:35%; left:55%; background: radial-gradient(circle at 40% 40%, #605040 0%, #3a2a1a 100%); animation-delay: -4s; }
.scn-threads-of-others-end-in-combat .map-edge { position:absolute; inset:15% 8% 20% 8%; border:2px solid #8a7a62; border-radius:5px; opacity:.3; }
@keyframes toe3-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.7; } 50% { transform: scaleY(1.15) scaleX(.95); opacity:1; } 100% { transform: scaleY(.9) scaleX(1.05); opacity:.8; } }
@keyframes toe3-token { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } }

.scn-subjects-outside-combat {
  background: 
    linear-gradient(180deg, #1a1a28 0%, #101020 50%, #080810 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%);
}
.scn-subjects-outside-combat .sky-dim { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, #18182a 100%); animation: soc4-sky 25s ease-in-out infinite alternate; }
.scn-subjects-outside-combat .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); border-radius: 30% 40% 0 0 / 50% 80% 0 0; }
.scn-subjects-outside-combat .tent { position:absolute; bottom:30%; left:15%; width:30%; height:30%; background: linear-gradient(135deg, #3a2a20 0%, #1e1612 100%); clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: soc4-tent 18s ease-in-out infinite; }
.scn-subjects-outside-combat .fire { position:absolute; bottom:30%; left:40%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #ffa040 0%, #c87020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,160,64,.4); animation: soc4-fire 5s ease-in-out infinite alternate; }
.scn-subjects-outside-combat .figure-seated { position:absolute; bottom:20%; left:50%; width:18px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: soc4-seat 8s ease-in-out infinite; }
.scn-subjects-outside-combat .figure-standing { position:absolute; bottom:22%; left:65%; width:12px; height:32px; background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc4-stand 12s ease-in-out infinite; }
.scn-subjects-outside-combat .tree-silhouette { position:absolute; bottom:30%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #16161e 0%, #0a0a10 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); filter: blur(3px); animation: soc4-tree 30s ease-in-out infinite; }
@keyframes soc4-sky { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.65; } }
@keyframes soc4-tent { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes soc4-fire { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-2px); } 100% { transform: scale(.95) translateY(1px); } }
@keyframes soc4-seat { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes soc4-stand { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(2deg); } 66% { transform: translateY(2px) rotate(-1deg); } }
@keyframes soc4-tree { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(.98) translateY(2px); } 100% { transform: scaleY(1.01) translateY(-1px); } }

.scn-combat-as-whole-total-result {
  background: 
    linear-gradient(180deg, #2a1e18 0%, #1a1210 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-combat-as-whole-total-result .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.5);
  animation: cb-table 12s ease-in-out infinite alternate;
}
.scn-combat-as-whole-total-result .map {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(135deg, #d4b87a 0%, #b89a5a 50%, #9c7e3e 100%);
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  transform: perspective(600px) rotateX(15deg);
  animation: cb-map 8s ease-in-out infinite alternate;
}
.scn-combat-as-whole-total-result .piece {
  position: absolute; bottom: 30%; width: 12px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-combat-as-whole-total-result .piece-1 { left: 35%; animation: cb-p1 5s ease-in-out infinite; }
.scn-combat-as-whole-total-result .piece-2 { left: 50%; animation: cb-p2 6s ease-in-out infinite 1s; }
.scn-combat-as-whole-total-result .piece-3 { left: 65%; animation: cb-p3 4.5s ease-in-out infinite 0.5s; }
.scn-combat-as-whole-total-result .lamp-glow {
  position: absolute; top: 15%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: cb-glow 3s ease-in-out infinite alternate;
}
.scn-combat-as-whole-total-result .shadow-hand {
  position: absolute; bottom: 18%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(10deg);
  animation: cb-hand 7s ease-in-out infinite alternate;
}
@keyframes cb-table { 0% { box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 -12px 25px rgba(0,0,0,.7); } 100% { box-shadow: inset 0 -8px 18px rgba(0,0,0,.5); } }
@keyframes cb-map { 0% { transform: perspective(600px) rotateX(15deg) scale(1); } 50% { transform: perspective(600px) rotateX(13deg) scale(1.02); } 100% { transform: perspective(600px) rotateX(16deg) scale(0.98); } }
@keyframes cb-p1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes cb-p2 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes cb-p3 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cb-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes cb-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(-2px); } }

.scn-moment-decision-fresh-force {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #1a1210 60%, #0f0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-moment-decision-fresh-force .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  animation: dc-wall 15s ease-in-out infinite alternate;
}
.scn-moment-decision-fresh-force .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(0,0,0,.5);
  border: 3px solid #3a2a1a;
}
.scn-moment-decision-fresh-force .figure {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0604 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure 6s ease-in-out infinite alternate;
}
.scn-moment-decision-fresh-force .lamp {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(200,150,80,.5);
}
.scn-moment-decision-fresh-force .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-moment-decision-fresh-force .papers {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(5deg);
  animation: dc-papers 8s ease-in-out infinite alternate;
}
.scn-moment-decision-fresh-force .scale-icon {
  position: absolute; bottom: 15%; right: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  transform: rotate(15deg);
  animation: dc-scale 7s ease-in-out infinite;
}
@keyframes dc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dc-papers { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(6deg) translateX(2px); } 100% { transform: rotate(4deg) translateX(-1px); } }
@keyframes dc-scale { 0%,100% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(18deg) scale(1.05); } }

.scn-ground-possession-decision {
  background: 
    linear-gradient(180deg, #1a1a10 0%, #2a2218 40%, #1a1a12 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-ground-possession-decision .bg-terrain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: gr-terrain 20s ease-in-out infinite alternate;
}
.scn-ground-possession-decision .grid-overlay {
  position: absolute; inset: 0;
  background: 
    repeating-linear-gradient(90deg, rgba(200,180,140,.1) 0px, transparent 2px, transparent 20px),
    repeating-linear-gradient(0deg, rgba(200,180,140,.1) 0px, transparent 2px, transparent 20px);
  animation: gr-grid 12s linear infinite;
}
.scn-ground-possession-decision .flag {
  position: absolute; bottom: 40%; width: 6px; height: 20px;
  background: #5a3a1a;
}
.scn-ground-possession-decision .flag::after {
  content: ''; position: absolute; top: 0; left: 0; width: 16px; height: 10px;
  background: #8a6a4a; border-radius: 2px;
  animation: gr-flag-wave 2s ease-in-out infinite;
}
.scn-ground-possession-decision .flag-left { left: 30%; }
.scn-ground-possession-decision .flag-right { left: 60%; animation: gr-flag-waver 2s ease-in-out infinite 0.5s; }
.scn-ground-possession-decision .pin {
  position: absolute; bottom: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c04040 0%, #802020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 6px #802020;
  animation: gr-pin 3s ease-in-out infinite alternate;
}
.scn-ground-possession-decision .pin-red { left: 45%; }
.scn-ground-possession-decision .pin-blue { left: 52%; background: radial-gradient(circle, #4060c0 0%, #2030a0 100%); box-shadow: 0 0 6px #2030a0; }
.scn-ground-possession-decision .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
@keyframes gr-terrain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gr-grid { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes gr-flag-wave { 0%,100% { transform: skewX(0deg); } 50% { transform: skewX(10deg); } }
@keyframes gr-flag-waver { 0%,100% { transform: skewX(0deg); } 50% { transform: skewX(-10deg); } }
@keyframes gr-pin { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(0.95); } }

.scn-battle-state-order-preserved {
  background: 
    linear-gradient(180deg, #1a1a18 0%, #2a2420 40%, #1a1614 100%),
    radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 70%);
}
.scn-battle-state-order-preserved .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1614 0%, #2a2420 50%, #1a1614 100%);
  animation: rt-room 10s ease-in-out infinite alternate;
}
.scn-battle-state-order-preserved .cabinet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-battle-state-order-preserved .book {
  position: absolute; bottom: 12%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: rt-book 6s ease-in-out infinite alternate;
}
.scn-battle-state-order-preserved .book-left { left: 25%; transform: rotate(-8deg); }
.scn-battle-state-order-preserved .book-right { left: 45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: rotate(5deg); animation-delay: 1s; }
.scn-battle-state-order-preserved .sword-sheathed {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px; transform: rotate(15deg); transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: rt-sword 8s ease-in-out infinite;
}
.scn-battle-state-order-preserved .candle {
  position: absolute; bottom: 35%; left: 65%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #e8d8c0 0%, #a08060 100%);
  border-radius: 10%; box-shadow: 0 0 20px 4px rgba(200,160,100,.4);
  animation: rt-candle 4s ease-in-out infinite alternate;
}
.scn-battle-state-order-preserved .figure-sitting {
  position: absolute; bottom: 10%; left: 70%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: rt-sitter 9s ease-in-out infinite alternate;
}
@keyframes rt-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rt-book { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rt-sword { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(13deg); } }
@keyframes rt-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes rt-sitter { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-7deg) translateX(-1px); } }

/* brief-memoir-clausewitz-pledge – firelit tent interior */
.scn-brief-memoir-clausewitz-pledge {
  background: linear-gradient(135deg, #2c1a0e 0%, #4a2a12 50%, #1a0e06 100%),
              radial-gradient(ellipse at 40% 70%, #8a4000 0%, transparent 60%);
}
.scn-brief-memoir-clausewitz-pledge .cp-tent {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #3d2a18 0%, transparent 50%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.7);
  animation: cp-tent-breathe 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-pledge .cp-fire {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 30%, #ff8c00 0%, #cc4400 40%, #662200 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 60px 30px rgba(200,80,0,0.6), 0 0 120px 60px rgba(150,50,0,0.3);
  animation: cp-fire-flicker 0.8s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-pledge .cp-table {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 14px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-brief-memoir-clausewitz-pledge .cp-letter {
  position: absolute; bottom: 24%; left: 48%; transform: translateX(-50%);
  width: 20px; height: 16px;
  background: linear-gradient(180deg, #d4b48c 0%, #b89466 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cp-float 4s ease-in-out infinite;
}
.scn-brief-memoir-clausewitz-pledge .cp-figure-a {
  position: absolute; bottom: 18%; left: 35%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-shift 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-pledge .cp-figure-b {
  position: absolute; bottom: 18%; left: 55%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-shift2 6s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-pledge .cp-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cp-shadow-pulse 2s ease-in-out infinite alternate;
}
@keyframes cp-tent-breathe {
  0% { opacity: 0.85; transform: scaleY(0.98); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.9; transform: scaleY(0.99); }
}
@keyframes cp-fire-flicker {
  0% { transform: translateX(-50%) scaleX(1) scaleY(0.9); opacity: 0.8; }
  25% { transform: translateX(-50%) scaleX(1.05) scaleY(1.1); opacity: 1; }
  50% { transform: translateX(-50%) scaleX(0.95) scaleY(0.95); opacity: 0.9; }
  75% { transform: translateX(-50%) scaleX(1.02) scaleY(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scaleX(1) scaleY(1); opacity: 0.85; }
}
@keyframes cp-float {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes cp-shift {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes cp-shift2 {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes cp-shadow-pulse {
  0% { opacity: 0.5; }
  100% { opacity: 0.8; }
}

/* brief-memoir-york-agrees – handshake silhouette */
.scn-brief-memoir-york-agrees {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2e14 40%, #0e0804 100%),
              radial-gradient(ellipse at 50% 70%, #a05010 0%, transparent 60%);
}
.scn-brief-memoir-york-agrees .ya-bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a0e06 0%, transparent 50%);
}
.scn-brief-memoir-york-agrees .ya-fireglow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 60%, #ff7000 0%, #cc4400 30%, transparent 70%);
  border-radius: 50%;
  animation: ya-glow 1.2s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-agrees .ya-figure-left {
  position: absolute; bottom: 18%; left: 30%;
  width: 30px; height: 64px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-brief-memoir-york-agrees .ya-figure-right {
  position: absolute; bottom: 18%; right: 30%;
  width: 30px; height: 64px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ya-lean 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-agrees .ya-handshake {
  position: absolute; bottom: 36%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 10px;
  background: #1a0e06;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(200,80,0,0.3);
  animation: ya-grip 1s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-agrees .ya-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0804 0%, #1a0e06 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes ya-glow {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.9; }
}
@keyframes ya-lean {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(1deg); }
}
@keyframes ya-grip {
  0% { transform: translateX(-50%) scaleX(1); }
  100% { transform: translateX(-50%) scaleX(1.1) scaleY(0.9); }
}

/* brief-memoir-york-get-massenbach – pacing general and officer */
.scn-brief-memoir-york-get-massenbach {
  background: linear-gradient(135deg, #2e1e0e 0%, #4a2e14 50%, #0e0804 100%),
              radial-gradient(ellipse at 40% 60%, #8a4000 0%, transparent 50%);
}
.scn-brief-memoir-york-get-massenbach .gm-room {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0e0804 0%, transparent 60%);
}
.scn-brief-memoir-york-get-massenbach .gm-fire {
  position: absolute; bottom: 15%; left: 20%;
  width: 40px; height: 55px;
  background: radial-gradient(circle at 50% 40%, #ff8000 0%, #b84000 40%, #4a1a00 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 20px rgba(180,60,0,0.5);
  animation: gm-fire 0.7s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-get-massenbach .gm-officer {
  position: absolute; bottom: 18%; left: 55%;
  width: 24px; height: 54px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gm-stand 4s ease-in-out infinite;
}
.scn-brief-memoir-york-get-massenbach .gm-general-pace {
  position: absolute; bottom: 18%; left: 30%;
  width: 26px; height: 56px;
  background: linear-gradient(180deg, #3a2212 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gm-pace 5s ease-in-out infinite;
}
.scn-brief-memoir-york-get-massenbach .gm-map-table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 12px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-brief-memoir-york-get-massenbach .gm-chair {
  position: absolute; bottom: 16%; left: 44%;
  width: 18px; height: 30px;
  background: #2a1a10;
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: gm-chair-sway 6s ease-in-out infinite alternate;
}
@keyframes gm-fire {
  0% { transform: scaleX(1) scaleY(0.9); opacity: 0.8; }
  50% { transform: scaleX(1.05) scaleY(1.1); opacity: 1; }
  100% { transform: scaleX(0.95) scaleY(1); opacity: 0.85; }
}
@keyframes gm-stand {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes gm-pace {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(8px) rotate(0deg); }
  50% { transform: translateX(0) rotate(3deg); }
  75% { transform: translateX(-8px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gm-chair-sway {
  0% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}

/* brief-memoir-york-what-say-regiments – older general with flag */
.scn-brief-memoir-york-what-say-regiments {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2e14 40%, #0e0804 100%),
              radial-gradient(ellipse at 50% 80%, #8a4000 0%, transparent 50%);
}
.scn-brief-memoir-york-what-say-regiments .ws-camp {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0e0804 0%, transparent 40%);
}
.scn-brief-memoir-york-what-say-regiments .ws-fire {
  position: absolute; bottom: 10%; left: 30%;
  width: 35px; height: 50px;
  background: radial-gradient(circle at 50% 40%, #ff9000 0%, #c84800 40%, #4a1a00 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(180,60,0,0.5);
  animation: ws-fire 0.9s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-what-say-regiments .ws-general {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2212 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-headshake 2s ease-in-out infinite;
}
.scn-brief-memoir-york-what-say-regiments .ws-flag {
  position: absolute; bottom: 30%; right: 20%;
  width: 8px; height: 40px;
  background: #3a2212;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ws-flag-wave 3s ease-in-out infinite;
}
.scn-brief-memoir-york-what-say-regiments .ws-flag::after {
  content: '';
  position: absolute; top: 2px; left: 8px;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%);
  border-radius: 2px 8px 8px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-brief-memoir-york-what-say-regiments .ws-tent-wall {
  position: absolute; bottom: 0; left: 0; right: 50%;
  height: 60%;
  background: linear-gradient(0deg, #1a0e06 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: ws-tent 10s ease-in-out infinite alternate;
}
@keyframes ws-fire {
  0% { transform: scaleX(1) scaleY(0.9); opacity: 0.8; }
  25% { transform: scaleX(1.04) scaleY(1.08); opacity: 1; }
  50% { transform: scaleX(0.96) scaleY(0.95); opacity: 0.9; }
  75% { transform: scaleX(1.02) scaleY(1.05); opacity: 1; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.85; }
}
@keyframes ws-headshake {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(4deg); }
  60% { transform: translateX(-50%) rotate(-4deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ws-flag-wave {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ws-tent {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

.scn-retreat-into-interior-examples {
  background: linear-gradient(145deg, #f5ecd7 0%, #e0d4b8 40%, #c8b390 100%), radial-gradient(ellipse at 60% 50%, #fff5e0 0%, transparent 60%);
}
.scn-retreat-into-interior-examples .wall-bg { position:absolute; inset:0; background:linear-gradient(180deg, #c8b390 0%, #a08060 100%); opacity:0.3; }
.scn-retreat-into-interior-examples .table-map { position:absolute; bottom:12%; left:5%; right:5%; height:38%; background:linear-gradient(120deg, #b0906a 0%, #a08050 40%, #806040 100%); border-radius:4px; box-shadow:0 6px 18px rgba(0,0,0,0.3); transform:perspective(400px) rotateX(5deg); }
.scn-retreat-into-interior-examples .figure-staff { position:absolute; bottom:12%; left:35%; width:22px; height:70px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 60%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ri-figure 6s ease-in-out infinite; }
.scn-retreat-into-interior-examples .candle-glow { position:absolute; bottom:63%; left:60%; width:14px; height:14px; background:radial-gradient(circle, #ffdd88 0%, #eebb55 50%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 12px #eebb55, 0 0 60px 20px rgba(238,187,85,0.4); animation:ri-glow 3s ease-in-out infinite alternate; }
.scn-retreat-into-interior-examples .candle-wax { position:absolute; bottom:58%; left:60%; width:8px; height:22px; background:linear-gradient(180deg,#f0e0c0 0%,#d0c0a0 100%); border-radius:2px; transform:translateX(-3px); }
.scn-retreat-into-interior-examples .paper-stack { position:absolute; bottom:12%; left:55%; width:30px; height:8px; background:linear-gradient(180deg,#f8f0e0 0%,#e8d8c0 100%); border-radius:1px; box-shadow:0 2px 6px rgba(0,0,0,0.2); }
@keyframes ri-figure { 0% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(8px) rotate(1deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes ri-glow { 0% { opacity:0.6; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.7; transform:scale(0.95); } }

.scn-arming-the-nation-intro {
  background: linear-gradient(135deg, #f8f0d8 0%, #e0d4b8 50%, #c8b090 100%), radial-gradient(ellipse at 30% 70%, #fff8e8 0%, transparent 70%);
}
.scn-arming-the-nation-intro .wall { position:absolute; inset:0; background:linear-gradient(180deg, #d8ccb8 0%, #b8a888 100%); opacity:0.2; }
.scn-arming-the-nation-intro .window-frame { position:absolute; top:8%; left:15%; width:50%; height:55%; border:8px solid #7a6a5a; border-radius:6px; background:#8a9aac; box-shadow:inset 0 0 40px rgba(255,255,240,0.3); }
.scn-arming-the-nation-intro .window-light { position:absolute; top:12%; left:19%; width:46%; height:49%; background:linear-gradient(180deg, #fff8e0 0%, #f0e8d0 100%); opacity:0.5; border-radius:4px; animation:an1-light 8s ease-in-out infinite alternate; }
.scn-arming-the-nation-intro .figure-hero { position:absolute; bottom:8%; left:30%; width:24px; height:80px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 50%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:an1-figure 5s ease-in-out infinite; }
.scn-arming-the-nation-intro .rifle { position:absolute; bottom:22%; left:32%; width:6px; height:40px; background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%); border-radius:1px; transform:rotate(15deg); animation:an1-rifle 5s ease-in-out infinite; }
.scn-arming-the-nation-intro .flag { position:absolute; bottom:55%; left:45%; width:4px; height:30px; background:#6a5a4a; border-radius:1px; }
.scn-arming-the-nation-intro .flag::after { content:''; position:absolute; top:-2px; left:3px; width:24px; height:16px; background:linear-gradient(135deg,#a8553d 0%,#c8553d 40%,#d87858 100%); border-radius:0 4px 4px 0; animation:an1-flag 4s ease-in-out infinite; }
@keyframes an1-light { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes an1-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(8px) rotate(-1deg); } 75% { transform:translateX(4px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes an1-rifle { 0%,100% { transform:rotate(15deg); } 50% { transform:rotate(18deg); } }
@keyframes an1-flag { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.1); } }

.scn-arming-the-nation-historic-trend {
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 40%, #b8a890 100%), radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%);
}
.scn-arming-the-nation-historic-trend .shelf-back { position:absolute; top:5%; left:10%; width:80%; height:90%; background:linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius:6px; box-shadow:inset 0 4px 20px rgba(0,0,0,0.2); }
.scn-arming-the-nation-historic-trend .book-tall { position:absolute; bottom:60%; left:20%; width:18px; height:80px; background:linear-gradient(180deg,#6a5a4a 0%,#5a4a3a 50%,#4a3a2a 100%); border-radius:2px; transform:rotate(-2deg); animation:an2-book 12s ease-in-out infinite; }
.scn-arming-the-nation-historic-trend .book-med { position:absolute; bottom:55%; left:28%; width:14px; height:65px; background:linear-gradient(180deg,#8a7a6a 0%,#7a6a5a 50%,#6a5a4a 100%); border-radius:2px; transform:rotate(1deg); animation:an2-book2 14s ease-in-out infinite; }
.scn-arming-the-nation-historic-trend .book-short { position:absolute; bottom:50%; left:35%; width:12px; height:50px; background:linear-gradient(180deg,#5a6a6a 0%,#4a5a5a 50%,#3a4a4a 100%); border-radius:2px; transform:rotate(-1deg); }
.scn-arming-the-nation-historic-trend .figure-march { position:absolute; bottom:8%; left:15%; width:16px; height:55px; background:linear-gradient(180deg,#2a3a3a 0%,#1a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:an2-march 6s ease-in-out infinite; }
.scn-arming-the-nation-historic-trend .figure-march2 { position:absolute; bottom:8%; left:30%; width:16px; height:50px; background:linear-gradient(180deg,#3a3a2a 0%,#2a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:an2-march 6s ease-in-out infinite reverse; animation-delay:-2s; }
.scn-arming-the-nation-historic-trend .figure-march3 { position:absolute; bottom:8%; left:45%; width:16px; height:52px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:an2-march 6s ease-in-out infinite; animation-delay:-4s; }
@keyframes an2-book { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } }
@keyframes an2-book2 { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(2px) rotate(2deg); } }
@keyframes an2-march { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(5px) rotate(1deg); } 50% { transform:translateX(10px) rotate(-1deg); } 75% { transform:translateX(5px) rotate(0deg); } 100% { transform:translateX(0) rotate(-1deg); } }

.scn-arming-the-nation-effectiveness {
  background: linear-gradient(135deg, #f0e8d0 0%, #d8ccb0 50%, #c0b090 100%), radial-gradient(ellipse at 50% 40%, #fff8ec 0%, transparent 60%);
}
.scn-arming-the-nation-effectiveness .bg-balance { position:absolute; inset:0; background:linear-gradient(180deg, rgba(192,176,160,0.3) 0%, transparent 60%); }
.scn-arming-the-nation-effectiveness .scale-beam { position:absolute; top:30%; left:30%; width:40%; height:6px; background:linear-gradient(90deg, #7a6a5a, #9a8a7a, #7a6a5a); border-radius:3px; animation:ane-beam 6s ease-in-out infinite; }
.scn-arming-the-nation-effectiveness .scale-left { position:absolute; top:40%; left:28%; width:14%; height:4px; background:#7a6a5a; border-radius:2px; transform-origin:right center; animation:ane-scale 8s ease-in-out infinite; }
.scn-arming-the-nation-effectiveness .scale-right { position:absolute; top:40%; left:58%; width:14%; height:4px; background:#7a6a5a; border-radius:2px; transform-origin:left center; animation:ane-scale 8s ease-in-out infinite reverse; }
.scn-arming-the-nation-effectiveness .figure-left { position:absolute; bottom:12%; left:18%; width:22px; height:65px; background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 60%,#0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ane-fig-l 7s ease-in-out infinite; }
.scn-arming-the-nation-effectiveness .figure-right { position:absolute; bottom:12%; right:18%; width:22px; height:65px; background:linear-gradient(180deg,#3a3a2a 0%,#2a2a1a 60%,#1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ane-fig-r 7s ease-in-out infinite; }
.scn-arming-the-nation-effectiveness .discuss-glow { position:absolute; top:35%; left:50%; width:30px; height:30px; background:radial-gradient(circle, #fff5e0 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation:ane-glow 4s ease-in-out infinite alternate; }
@keyframes ane-beam { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } }
@keyframes ane-scale { 0% { opacity:0.8; transform:rotate(0deg); } 25% { opacity:1; transform:rotate(3deg); } 50% { opacity:0.9; transform:rotate(-2deg); } 75% { opacity:1; transform:rotate(2deg); } 100% { opacity:0.8; transform:rotate(0deg); } }
@keyframes ane-fig-l { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(5px) rotate(2deg); } }
@keyframes ane-fig-r { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-5px) rotate(-2deg); } }
@keyframes ane-glow { 0% { opacity:0.3; transform:translateX(-50%) scale(0.8); } 50% { opacity:0.6; transform:translateX(-50%) scale(1.2); } 100% { opacity:0.4; transform:translateX(-50%) scale(0.9); } }

.scn-positive-object-conquest-example {
  background: linear-gradient(180deg, #2a1f1a 0%, #1e1510 40%, #140e0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-positive-object-conquest-example .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #3a2a1f 0%, transparent 70%);
  animation: poce-wall 20s ease-in-out infinite alternate;
}
.scn-positive-object-conquest-example .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3525 0%, #2a1f15 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,0.6);
  animation: poce-table 30s ease-in-out infinite;
}
.scn-positive-object-conquest-example .map {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #c8a87a 0%, #a68a60 50%, #d4b48a 100%);
  border-radius: 4px; transform: rotate(-3deg);
  animation: poce-map 25s ease-in-out infinite alternate;
}
.scn-positive-object-conquest-example .candle {
  position: absolute; bottom: 38%; left: 22%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #8a7040 0%, #c8a860 40%, #8a6a30 100%);
  border-radius: 4px 4px 2px 2px;
  animation: poce-candle 10s ease-in-out infinite;
}
.scn-positive-object-conquest-example .flame {
  position: absolute; bottom: 55%; left: 22.5%; width: 6px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px #ffa040, 0 0 60px rgba(255,160,64,0.3);
  animation: poce-flame 2s ease-in-out infinite alternate;
}
.scn-positive-object-conquest-example .hand {
  position: absolute; bottom: 24%; left: 15%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #c8a080 0%, #8a6040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 80% 100%;
  animation: poce-hand 8s ease-in-out infinite;
}
.scn-positive-object-conquest-example .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: poce-shadow 15s ease-in-out infinite alternate;
}
@keyframes poce-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes poce-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes poce-map { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(4px); } 100% { transform: rotate(-4deg) translateX(-2px); } }
@keyframes poce-candle { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(1px); } }
@keyframes poce-flame { 0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; } 50% { transform: scaleY(1.2) scaleX(1); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(0.85); opacity: 0.7; } }
@keyframes poce-hand { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } }
@keyframes poce-shadow { 0%,100% { opacity: 0.6; } 50% { opacity: 0.9; } }

.scn-unbroken-continuity-extreme {
  background: linear-gradient(180deg, #1c2028 0%, #141820 40%, #0a0e14 100%), radial-gradient(ellipse at 50% 100%, #2a3440 0%, transparent 70%);
}
.scn-unbroken-continuity-extreme .bg-column {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #2a3440 0%, transparent 70%);
  animation: unbr-bg 25s ease-in-out infinite alternate;
}
.scn-unbroken-continuity-extreme .column-base {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3848 50%, #1a2a3a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-unbroken-continuity-extreme .column-shaft {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 60%;
  background: linear-gradient(90deg, #2a3848 0%, #4a5a6a 30%, #3a4a5a 70%, #1a2a3a 100%);
  border-radius: 4px;
  animation: unbr-shaft 6s ease-in-out infinite;
}
.scn-unbroken-continuity-extreme .column-top {
  position: absolute; bottom: 92%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3848 100%);
  border-radius: 4px 4px 0 0;
  animation: unbr-top 8s ease-in-out infinite alternate;
}
.scn-unbroken-continuity-extreme .light-ray {
  position: absolute; top: 0%; left: 45%; width: 10%; height: 0;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: unbr-ray 4s ease-in-out infinite;
}
.scn-unbroken-continuity-extreme .glow-point {
  position: absolute; top: 0%; left: 47%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c0d8ff 0%, #8098c0 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px #8098c0, 0 0 80px rgba(128,152,192,0.3);
  animation: unbr-glow 3s ease-in-out infinite alternate;
}
@keyframes unbr-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes unbr-shaft { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-1px); } }
@keyframes unbr-top { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(1.02); } 100% { transform: translateX(2px) scaleX(0.98); } }
@keyframes unbr-ray { 0%,100% { height: 0; opacity: 0; } 50% { height: 60%; opacity: 0.5; } }
@keyframes unbr-glow { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.7; } }

.scn-many-wars-inaction {
  background: linear-gradient(180deg, #1e1a18 0%, #16120e 40%, #0e0c08 100%), radial-gradient(ellipse at 50% 80%, #2a221c 0%, transparent 70%);
}
.scn-many-wars-inaction .room-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #2a221c 0%, #1a1410 100%);
}
.scn-many-wars-inaction .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120c 100%);
  border-radius: 10% 10% 0 0;
}
.scn-many-wars-inaction .chair {
  position: absolute; bottom: 15%; left: 30%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: many-chair 15s ease-in-out infinite;
}
.scn-many-wars-inaction .figure-sitting {
  position: absolute; bottom: 25%; left: 38%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a140e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: many-figure 20s ease-in-out infinite;
}
.scn-many-wars-inaction .window-frame {
  position: absolute; top: 15%; right: 15%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-many-wars-inaction .diffuse-light {
  position: absolute; top: 18%; right: 18%; width: 29%; height: 39%;
  background: radial-gradient(circle, rgba(200,180,140,0.15) 0%, transparent 100%);
  animation: many-light 30s ease-in-out infinite alternate;
}
.scn-many-wars-inaction .curtain-left {
  position: absolute; top: 15%; right: 45%; width: 6%; height: 45%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 100%);
  border-radius: 0 4px 4px 0;
  animation: many-curtain-l 12s ease-in-out infinite;
}
.scn-many-wars-inaction .curtain-right {
  position: absolute; top: 15%; right: 12%; width: 6%; height: 45%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 100%);
  border-radius: 4px 0 0 4px;
  animation: many-curtain-r 14s ease-in-out infinite;
}
@keyframes many-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes many-figure { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } }
@keyframes many-light { 0%,100% { opacity: 0.1; } 50% { opacity: 0.3; } }
@keyframes many-curtain-l { 0%,100% { transform: translateX(0) skewY(0deg); } 50% { transform: translateX(-4px) skewY(1deg); } }
@keyframes many-curtain-r { 0%,100% { transform: translateX(0) skewY(0deg); } 50% { transform: translateX(4px) skewY(-1deg); } }

.scn-polarity-brought-into-requisition {
  background: linear-gradient(180deg, #1a1e22 0%, #12161a 40%, #0a0e12 100%), radial-gradient(ellipse at 50% 100%, #2a3238 0%, transparent 70%);
}
.scn-polarity-brought-into-requisition .dark-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #2a3238 0%, #1a1e22 100%);
}
.scn-polarity-brought-into-requisition .left-profile {
  position: absolute; bottom: 25%; left: 18%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a302a 0%, #2a1e16 100%);
  border-radius: 60% 20% 30% 40% / 80% 30% 50% 60%;
  transform-origin: center bottom;
  animation: polar-left 12s ease-in-out infinite;
}
.scn-polarity-brought-into-requisition .right-profile {
  position: absolute; bottom: 25%; right: 18%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #3a302a 0%, #2a1e16 100%);
  border-radius: 20% 60% 40% 30% / 30% 80% 60% 50%;
  transform-origin: center bottom;
  animation: polar-right 12s ease-in-out infinite reverse;
}
.scn-polarity-brought-into-requisition .center-line {
  position: absolute; top: 0%; left: 49%; width: 2%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #809090 20%, transparent 80%);
  opacity: 0.4;
  animation: polar-line 8s ease-in-out infinite;
}
.scn-polarity-brought-into-requisition .overhead-light {
  position: absolute; top: 0%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,200,220,0.1) 0%, transparent 100%);
  animation: polar-light 10s ease-in-out infinite alternate;
}
.scn-polarity-brought-into-requisition .ground-shadow {
  position: absolute; bottom: 0%; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: polar-shadow 15s ease-in-out infinite alternate;
}
.scn-polarity-brought-into-requisition .aura {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse, rgba(140,160,180,0.05) 0%, transparent 100%);
  animation: polar-aura 20s ease-in-out infinite;
}
@keyframes polar-left { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(5px); } }
@keyframes polar-right { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-5px); } }
@keyframes polar-line { 0%,100% { opacity: 0.2; } 50% { opacity: 0.5; } }
@keyframes polar-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes polar-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.8; } }
@keyframes polar-aura { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } }

.scn-defence-of-streams-considerations {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 60%, #d4b896 100%), radial-gradient(ellipse at 50% 20%, #fff0dc 0%, transparent 60%);
}
.scn-defence-of-streams-considerations .wall-light { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 30%, rgba(255,235,200,.25) 0%, transparent 70%); animation: ds1-ambient 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-considerations .desk { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #8b6f47 0%, #6b5333 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); transform: perspective(600px) rotateX(10deg); }
.scn-defence-of-streams-considerations .map-scroll { position:absolute; bottom:18%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #f0ddc0 0%, #dcc4a0 100%); border-radius: 0 0 40% 40% / 0 0 100% 100%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ds1-breathe 6s ease-in-out infinite; }
.scn-defence-of-streams-considerations .candle-holder { position:absolute; bottom:28%; left:70%; width:8px; height:20px; background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%); border-radius: 20% 20% 0 0; }
.scn-defence-of-streams-considerations .candle-flame { position:absolute; bottom:48%; left:70%; width:6px; height:14px; background: radial-gradient(ellipse at 50% 0%, #ffeaa0 0%, #f0c060 50%, #c08030 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(240,200,100,.6); animation: ds1-flicker 2s ease-in-out infinite alternate; }
.scn-defence-of-streams-considerations .inkwell { position:absolute; bottom:22%; left:20%; width:16px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; }
.scn-defence-of-streams-considerations .feather { position:absolute; bottom:28%; left:22%; width:24px; height:6px; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 0 100% 100% 0; transform: rotate(-20deg); animation: ds1-sway 5s ease-in-out infinite alternate; }
.scn-defence-of-streams-considerations .shadow-layer { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: ds1-shadow-pulse 10s ease-in-out infinite alternate; }
@keyframes ds1-ambient { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes ds1-breathe { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes ds1-flicker { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 25% { transform: scaleY(1.15) scaleX(0.9); opacity:1 } 50% { transform: scaleY(0.95) scaleX(1.05); opacity:.8 } 75% { transform: scaleY(1.1) scaleX(0.95); opacity:.95 } 100% { transform: scaleY(0.98) scaleX(1.02); opacity:.85 } }
@keyframes ds1-sway { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-12deg) } }
@keyframes ds1-shadow-pulse { 0%,100% { opacity:.4 } 50% { opacity:.6 } }

.scn-defence-of-streams-cordon-system {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a488 40%, #8a7a64 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-defence-of-streams-cordon-system .map-bg { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(180deg, #c8b89a 0%, #a09070 100%); border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.2); }
.scn-defence-of-streams-cordon-system .map-table { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6b5535 0%, #4a3a20 100%); border-radius: 10% 10% 0 0; }
.scn-defence-of-streams-cordon-system .red-pin { position:absolute; bottom:35%; left:40%; width:6px; height:14px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 0 0; animation: ds2-pin-throb 1.5s ease-in-out infinite; }
.scn-defence-of-streams-cordon-system .blue-pin { position:absolute; bottom:32%; left:55%; width:6px; height:14px; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 50% 50% 0 0; animation: ds2-pin-throb 1.8s ease-in-out infinite 0.3s; }
.scn-defence-of-streams-cordon-system .pointing-arm { position:absolute; bottom:22%; left:50%; width:12px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 30% 30% 20% 20%; transform-origin: 50% 90%; animation: ds2-point 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-cordon-system .lantern-glow { position:absolute; top:15%; left:70%; width:20px; height:20px; background: radial-gradient(circle, #f0d080 0%, #c0a050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(240,200,100,.4); animation: ds2-flicker 2s ease-in-out infinite alternate; }
.scn-defence-of-streams-cordon-system .shadow-blob { position:absolute; bottom:0; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 60%); }
@keyframes ds2-pin-throb { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }
@keyframes ds2-point { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes ds2-flicker { 0%,100% { opacity:.7 } 50% { opacity:1 } }

.scn-defence-of-streams-portion-between-extremes {
  background: linear-gradient(180deg, #e8ddd0 0%, #d5c8b8 50%, #b8a894 100%), radial-gradient(ellipse at 50% 0%, #fffaf0 0%, transparent 60%);
}
.scn-defence-of-streams-portion-between-extremes .window-frame { position:absolute; top:10%; left:20%; right:20%; bottom:20%; border: 12px solid #6a5030; border-radius: 8px; background: transparent; box-shadow: inset 0 0 0 6px #4a3820; }
.scn-defence-of-streams-portion-between-extremes .window-glass { position:absolute; top:10%; left:20%; right:20%; bottom:20%; background: linear-gradient(180deg, #b0d0e0 0%, #90b0c0 100%); border-radius: 4px; opacity:.6; animation: ds3-glass-shift 12s ease-in-out infinite alternate; }
.scn-defence-of-streams-portion-between-extremes .river-view { position:absolute; top:40%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #a0d0e0 0%, #80b0c0 100%); border-radius: 0 0 50% 50%; animation: ds3-river-flow 20s linear infinite; }
.scn-defence-of-streams-portion-between-extremes .far-bank { position:absolute; bottom:23%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #6a8050 0%, #4a6030 100%); border-radius: 40% 40% 0 0; }
.scn-defence-of-streams-portion-between-extremes .near-tree { position:absolute; bottom:18%; left:18%; width:16px; height:24%; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ds3-tree-breathe 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-portion-between-extremes .curtain-left { position:absolute; top:5%; left:5%; width:20%; height:90%; background: linear-gradient(180deg, #c0a080 0%, #908060 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; transform-origin: left; animation: ds3-curtain-sway 10s ease-in-out infinite alternate; }
.scn-defence-of-streams-portion-between-extremes .curtain-right { position:absolute; top:5%; right:5%; width:20%; height:90%; background: linear-gradient(180deg, #c0a080 0%, #908060 100%); border-radius: 30% 0 0 30% / 20% 0 0 20%; transform-origin: right; animation: ds3-curtain-sway 10s ease-in-out infinite alternate-reverse; }
.scn-defence-of-streams-portion-between-extremes .ledge-book { position:absolute; bottom:22%; left:38%; width:24%; height:4%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
@keyframes ds3-glass-shift { 0%,100% { opacity:.5 } 50% { opacity:.7 } }
@keyframes ds3-river-flow { 0% { background-position: 0 0; transform: translateX(0) } 100% { background-position: 100% 0; transform: translateX(10px) } }
@keyframes ds3-tree-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes ds3-curtain-sway { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

.scn-defence-of-streams-avoid-deviation {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b49a 100%), radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 50%);
}
.scn-defence-of-streams-avoid-deviation .chart-paper { position:absolute; top:15%; left:15%; right:15%; bottom:15%; background: linear-gradient(180deg, #f0e0c8 0%, #e0d0b0 100%); border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,.15); transform: rotate(2deg); }
.scn-defence-of-streams-avoid-deviation .compass-ring { position:absolute; top:30%; left:50%; width:80px; height:80px; margin-left:-40px; margin-top:-40px; border: 6px solid #6a5030; border-radius: 50%; background: radial-gradient(circle, #f0e0c0 0%, #d0b890 100%); box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: ds4-compass-rotate 15s linear infinite; }
.scn-defence-of-streams-avoid-deviation .compass-needle { position:absolute; top:50%; left:50%; width:4px; height:50px; margin-left:-2px; margin-top:-25px; background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%); border-radius: 2px 2px 0 0; transform-origin: center 60%; animation: ds4-needle-swing 4s ease-in-out infinite alternate; }
.scn-defence-of-streams-avoid-deviation .route-line { position:absolute; top:45%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, transparent 0%, #4a6a8a 30%, #4a6a8a 70%, transparent 100%); border-radius: 2px; opacity:.5; animation: ds4-route-pulse 6s ease-in-out infinite alternate; }
.scn-defence-of-streams-avoid-deviation .river-mark { position:absolute; top:55%; left:35%; width:30%; height:20%; border: 2px dashed #6a8a5a; border-radius: 0 0 60% 60% / 0 0 100% 100%; opacity:.4; animation: ds4-mark-fade 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-avoid-deviation .hand-silhouette { position:absolute; bottom:20%; right:20%; width:20px; height:28px; background: #2a1a0a; border-radius: 0 50% 50% 50% / 0 60% 60% 60%; transform: rotate(-30deg); animation: ds4-hand-point 5s ease-in-out infinite alternate; }
.scn-defence-of-streams-avoid-deviation .lamp-overhang { position:absolute; top:0; left:50%; width:40px; height:10px; margin-left:-20px; background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%); border-radius: 0 0 30% 30%; box-shadow: 0 10px 30px rgba(180,140,80,.3); }
@keyframes ds4-compass-rotate { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ds4-needle-swing { 0% { transform: rotate(-8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-5deg) } }
@keyframes ds4-route-pulse { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes ds4-hand-point { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(4px) } 100% { transform: rotate(-35deg) translateX(0) } }
@keyframes ds4-mark-fade { 0%,100% { opacity:.2 } 50% { opacity:.5 } }

/* of-bodily-exertion-title */
.scn-of-bodily-exertion-title {
  background:
    linear-gradient(180deg, #1a1a24 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-of-bodily-exertion-title .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); animation: be-wall 8s ease-in-out infinite alternate; }
.scn-of-bodily-exertion-title .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 60% 0 0 / 50% 40% 0 0; }
.scn-of-bodily-exertion-title .window-bar { position:absolute; top:15%; left:60%; width:50px; height:70px; border:4px solid #4a4a5a; border-radius:10% 10% 0 0; background: radial-gradient(circle at 50% 30%, rgba(180,160,120,0.3) 0%, transparent 60%); animation: be-window 12s ease-in-out infinite alternate; }
.scn-of-bodily-exertion-title .soldier-sit { position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-sit 6s ease-in-out infinite; }
.scn-of-bodily-exertion-title .candle-flame { position:absolute; bottom:28%; left:50%; width:8px; height:16px; background: radial-gradient(circle at 50% 30%, #f0d090 0%, #c08040 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 4px #c08040, 0 0 40px 8px rgba(192,128,64,0.3); animation: be-candle 2s ease-in-out infinite alternate; }
.scn-of-bodily-exertion-title .dust-mote-a { position:absolute; top:25%; left:20%; width:4px; height:4px; background: rgba(200,180,160,0.3); border-radius:50%; filter: blur(1px); animation: be-dust 18s linear infinite; }
.scn-of-bodily-exertion-title .dust-mote-b { position:absolute; top:40%; left:70%; width:3px; height:3px; background: rgba(200,180,160,0.2); border-radius:50%; filter: blur(1px); animation: be-dust 22s linear infinite reverse; }
.scn-of-bodily-exertion-title .shade { position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 60%); pointer-events:none; }
@keyframes be-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes be-window { 0% { box-shadow: inset 0 0 10px rgba(180,160,120,0.2); } 50% { box-shadow: inset 0 0 20px rgba(180,160,120,0.4); } 100% { box-shadow: inset 0 0 10px rgba(180,160,120,0.2); } }
@keyframes be-sit { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes be-candle { 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 be-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 30% { opacity:0.5; } 70% { opacity:0.3; } 100% { transform: translate(30px,-40px) scale(0.5); opacity:0; } }

/* bodily-effort-coefficient */
.scn-bodily-effort-coefficient {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 40% 50%, #3a3a4a 0%, transparent 60%);
}
.scn-bodily-effort-coefficient .bg-ec { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); }
.scn-bodily-effort-coefficient .ground-ec { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 80% 0 0 / 60% 40% 0 0; }
.scn-bodily-effort-coefficient .figure-strain { position:absolute; bottom:20%; left:40%; width:34px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ec-strain 4s ease-in-out infinite; }
.scn-bodily-effort-coefficient .load-stone { position:absolute; bottom:28%; left:36%; width:50px; height:20px; background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:20% 20% 10% 10%; transform:rotate(-15deg); box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: ec-load 4s ease-in-out infinite; }
.scn-bodily-effort-coefficient .sweat-drop-a { position:absolute; top:30%; left:45%; width:4px; height:6px; background: radial-gradient(circle at 50% 30%, rgba(100,120,140,0.6) 0%, transparent 70%); border-radius:50% 50% 30% 30%; animation: ec-sweat 3s ease-in-out infinite; }
.scn-bodily-effort-coefficient .sweat-drop-b { position:absolute; top:35%; left:55%; width:3px; height:5px; background: radial-gradient(circle at 50% 30%, rgba(100,120,140,0.6) 0%, transparent 70%); border-radius:50% 50% 30% 30%; animation: ec-sweat 3.7s ease-in-out infinite 1.3s; }
.scn-bodily-effort-coefficient .lamp-light { position:absolute; bottom:30%; right:20%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #e0b060 0%, #b08040 70%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 30px 6px #b08040, 0 0 60px 12px rgba(176,128,64,0.3); animation: ec-lamp 3s ease-in-out infinite alternate; }
@keyframes ec-strain { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg) scaleY(1.02); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ec-load { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(2px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes ec-sweat { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(10px) scale(1.2); opacity:0.8; } 100% { transform: translateY(20px) scale(0.8); opacity:0; } }
@keyframes ec-lamp { 0% { box-shadow: 0 0 20px 4px #b08040; opacity:0.8; } 50% { box-shadow: 0 0 40px 8px #d09050; opacity:1; } 100% { box-shadow: 0 0 25px 5px #b08040; opacity:0.85; } }

/* fetters-on-mind */
.scn-fetters-on-mind {
  background:
    linear-gradient(180deg, #0a0a12 0%, #151520 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, transparent 70%);
}
.scn-fetters-on-mind .bg-fm { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #151520 0%, #1a1a2a 50%, #151520 100%); }
.scn-fetters-on-mind .wall-fm { position:absolute; top:10%; left:20%; right:20%; height:60%; border:2px solid #2a2a3a; border-bottom:none; background: linear-gradient(90deg, #151520 0%, transparent 50%, #151520 100%); }
.scn-fetters-on-mind .floor-fm { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); }
.scn-fetters-on-mind .figure-fm { position:absolute; bottom:25%; left:50%; width:32px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fm-figure 8s ease-in-out infinite; }
.scn-fetters-on-mind .chain-left { position:absolute; bottom:55%; left:42%; width:2px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:1px; transform-origin: top center; animation: fm-chain 5s ease-in-out infinite alternate; }
.scn-fetters-on-mind .chain-right { position:absolute; bottom:55%; right:42%; width:2px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:1px; transform-origin: top center; animation: fm-chain 5s ease-in-out infinite alternate-reverse; }
.scn-fetters-on-mind .crack-light { position:absolute; top:12%; left:48%; width:8px; height:4px; background: rgba(200,180,160,0.2); border-radius:50%; filter: blur(3px); animation: fm-crack 12s ease-in-out infinite alternate; }
@keyframes fm-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(2px); } }
@keyframes fm-chain { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes fm-crack { 0% { opacity:0.4; width:6px; } 50% { opacity:0.8; width:12px; } 100% { opacity:0.3; width:8px; } }

/* personal-exertion-of-commanders */
.scn-personal-exertion-of-commanders {
  background:
    linear-gradient(180deg, #1e1e2a 0%, #2e2e3e 50%, #3e3e4e 100%),
    radial-gradient(ellipse at 60% 40%, #3e3e4e 0%, transparent 60%);
}
.scn-personal-exertion-of-commanders .tent-pe { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3e3e4e 0%, #1e1e2a 80%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: pe-tent 14s ease-in-out infinite alternate; }
.scn-personal-exertion-of-commanders .ground-pe { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-personal-exertion-of-commanders .table-pe { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:8px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,0.5); }
.scn-personal-exertion-of-commanders .map-pe { position:absolute; bottom:17%; left:50%; transform:translateX(-50%) rotate(5deg); width:70px; height:50px; background: linear-gradient(135deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%); border:1px solid #5a5a6a; border-radius:4px; animation: pe-map 8s ease-in-out infinite alternate; }
.scn-personal-exertion-of-commanders .commander-pe { position:absolute; bottom:20%; right:30%; width:28px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-commander 6s ease-in-out infinite; }
.scn-personal-exertion-of-commanders .candle-pe { position:absolute; bottom:30%; left:45%; width:6px; height:14px; background: linear-gradient(180deg, #d09050 0%, #b07040 100%); border-radius:50% 50% 20% 20%; animation: pe-candle 2s ease-in-out infinite alternate; }
.scn-personal-exertion-of-commanders .candle-glow { position:absolute; bottom:28%; left:44%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,160,100,0.15) 0%, transparent 70%); border-radius:50%; animation: pe-glow 3s ease-in-out infinite alternate; }
@keyframes pe-tent { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pe-map { 0% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(7deg); } 100% { transform: translateX(-50%) rotate(3deg); } }
@keyframes pe-commander { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pe-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.15); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.85; } }
@keyframes pe-glow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.3); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }

.scn-as-long-as-men-fight-zeal {
  background: 
    linear-gradient(180deg, #2b221a 0%, #1a1410 40%, #241c14 100%),
    radial-gradient(ellipse at 60% 80%, #3a2c1e 0%, transparent 70%);
}
.scn-as-long-as-men-fight-zeal .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-as-long-as-men-fight-zeal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-as-long-as-men-fight-zeal .table {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: rotateX(8deg);
}
.scn-as-long-as-men-fight-zeal .map {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #7a6a54 0%, #5a4a38 100%);
  border-radius: 2% 2% 8% 8%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: azl-map 8s ease-in-out infinite alternate;
}
.scn-as-long-as-men-fight-zeal .candle {
  position: absolute; bottom: 46%; left: 48%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #c8a87844;
  animation: azl-candle 3s ease-in-out infinite;
}
.scn-as-long-as-men-fight-zeal .figure-chief {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: azl-chief 6s ease-in-out infinite;
}
.scn-as-long-as-men-fight-zeal .shadow-chief {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  border-radius: 50%;
  transform: scaleX(1.2);
  animation: azl-shadow 6s ease-in-out infinite;
}
.scn-as-long-as-men-fight-zeal .dust {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: azl-dust 20s linear infinite;
}
@keyframes azl-map { 0% { opacity:0.7; transform:rotate(1deg); } 50% { opacity:1; transform:rotate(-1deg); } 100% { opacity:0.8; transform:rotate(0deg); } }
@keyframes azl-candle { 0% { transform:scaleY(1); opacity:0.9; } 25% { transform:scaleY(0.95) translateY(1px); opacity:1; } 75% { transform:scaleY(1.05) translateY(-1px); opacity:0.95; } 100% { transform:scaleY(1); opacity:0.9; } }
@keyframes azl-chief { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes azl-shadow { 0% { opacity:0.4; transform:scaleX(1.2); } 50% { opacity:0.7; transform:scaleX(1.3); } 100% { opacity:0.4; transform:scaleX(1.2); } }
@keyframes azl-dust { 0% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-60px) translateX(40px); } }

.scn-energy-in-action-strength-of-motive {
  background: 
    linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e14 0%, transparent 60%);
}
.scn-energy-in-action-strength-of-motive .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-energy-in-action-strength-of-motive .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 90%;
  background: linear-gradient(180deg, rgba(220,200,160,0.08) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: esm-light 12s ease-in-out infinite alternate;
}
.scn-energy-in-action-strength-of-motive .brazier {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #a07040;
}
.scn-energy-in-action-strength-of-motive .flame {
  position: absolute; bottom: 50%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #ff7030 40%, #c84830 80%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: esm-flame 2s ease-in-out infinite;
}
.scn-energy-in-action-strength-of-motive .figure-standing {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esm-figure 7s ease-in-out infinite;
}
.scn-energy-in-action-strength-of-motive .shadow-standing {
  position: absolute; bottom: 20%; left: 36%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  border-radius: 50%;
  transform: rotateX(20deg);
  animation: esm-shadow 7s ease-in-out infinite;
}
.scn-energy-in-action-strength-of-motive .embers {
  position: absolute; bottom: 32%; left: 44%; width: 6px; height: 6px;
  background: #ff8030;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ff8040, 0 0 24px 8px #ff6020;
  animation: esm-ember 1.5s ease-in-out infinite;
}
@keyframes esm-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes esm-flame { 0% { transform:translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform:translateX(-50%) scaleY(1.15) rotate(3deg); } 50% { transform:translateX(-50%) scaleY(0.9) rotate(-2deg); } 75% { transform:translateX(-50%) scaleY(1.1) rotate(2deg); } 100% { transform:translateX(-50%) scaleY(1) rotate(0deg); } }
@keyframes esm-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes esm-shadow { 0% { opacity:0.4; } 30% { opacity:0.7; } 60% { opacity:0.3; } 100% { opacity:0.4; } }
@keyframes esm-ember { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.6; transform:scale(0.8); } }

.scn-thirst-for-honour-renown {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 70% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-thirst-for-honour-renown .night-window {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 100%);
  border-radius: 10% 10% 0 0;
  border: 4px solid #2a221a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  overflow: hidden;
}
.scn-thirst-for-honour-renown .windowsill {
  position: absolute; bottom: 30%; left: 18%; width: 64%; height: 6px;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e12 100%);
  border-radius: 2px;
}
.scn-thirst-for-honour-renown .figure-silhouette {
  position: absolute; bottom: 32%; left: 40%; width: 30px; height: 60px;
  background: #0e0e1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: thr-figure 10s ease-in-out infinite;
}
.scn-thirst-for-honour-renown .sword {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a8a9a 0%, #4a4a5a 100%);
  border-radius: 0 0 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 6px rgba(200,200,220,0.3);
  animation: thr-sword 6s ease-in-out infinite;
}
.scn-thirst-for-honour-renown .wreath-glow {
  position: absolute; top: 18%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8a860 0%, #a07030 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(4px);
  animation: thr-wreath 8s ease-in-out infinite alternate;
}
.scn-thirst-for-honour-renown .curtain-left {
  position: absolute; top: 8%; left: 18%; width: 12%; height: 65%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 0 30% 30% 0;
  animation: thr-curtain-l 12s ease-in-out infinite alternate;
}
.scn-thirst-for-honour-renown .curtain-right {
  position: absolute; top: 8%; right: 18%; width: 12%; height: 65%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 30% 0 0 30%;
  animation: thr-curtain-r 12s ease-in-out infinite alternate-reverse;
}
@keyframes thr-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 thr-sword { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(15deg); } }
@keyframes thr-wreath { 0% { opacity:0.5; 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 thr-curtain-l { 0% { transform: translateX(0); } 100% { transform: translateX(-15px); } }
@keyframes thr-curtain-r { 0% { transform: translateX(0); } 100% { transform: translateX(15px); } }

.scn-honour-essential-to-commander {
  background: 
    linear-gradient(180deg, #1e1814 0%, #0e0a08 40%, #1e1814 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-honour-essential-to-commander .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-honour-essential-to-commander .desk {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0;
  transform: rotateX(10deg);
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-honour-essential-to-commander .documents {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(135deg, #7a6a54 0%, #5a4a38 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: hec-docs 10s ease-in-out infinite alternate;
}
.scn-honour-essential-to-commander .lamp {
  position: absolute; bottom: 36%; left: 55%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a6a48 0%, #5a3a28 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c8a060;
  transform: rotate(-5deg);
}
.scn-honour-essential-to-commander .lamp-glow {
  position: absolute; bottom: 30%; left: 52%; width: 40px; height: 50px;
  background: radial-gradient(circle, rgba(200,160,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hec-glow 4s ease-in-out infinite alternate;
}
.scn-honour-essential-to-commander .figure-commander {
  position: absolute; bottom: 18%; left: 42%; width: 26px; 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: hec-commander 8s ease-in-out infinite;
}
.scn-honour-essential-to-commander .staff {
  position: absolute; bottom: 20%; left: 60%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: hec-staff 6s ease-in-out infinite;
}
@keyframes hec-docs { 0% { opacity:0.8; transform:rotate(1deg); } 50% { opacity:1; transform:rotate(-2deg); } 100% { opacity:0.7; transform:rotate(0deg); } }
@keyframes hec-glow { 0% { opacity:0.5; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.6; transform:scale(1); } }
@keyframes hec-commander { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hec-staff { 0% { transform: rotate(8deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(8deg); } }

.scn-war-starts-from-political-condition {
  background: linear-gradient(180deg, #1e1a14 0%, #2a241c 40%, #3a3026 100%), radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-war-starts-from-political-condition .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1610 0%, #2a221a 50%, #1e1a14 100%); animation: wp-bg 12s ease-in-out infinite alternate;
}
.scn-war-starts-from-political-condition .window {
  position: absolute; top: 8%; left: 10%; width: 30%; height: 45%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: wp-window 15s ease-in-out infinite alternate;
}
.scn-war-starts-from-political-condition .desk {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: wp-desk 20s ease-in-out infinite;
}
.scn-war-starts-from-political-condition .paper {
  position: absolute; bottom: 30%; left: 20%; width: 25%; height: 18%; background: linear-gradient(135deg, #c8b8a8 0%, #b0a090 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: wp-paper 8s ease-in-out infinite;
}
.scn-war-starts-from-political-condition .pen {
  position: absolute; bottom: 28%; left: 50%; width: 2px; height: 20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%; transform-origin: bottom center; transform: rotate(15deg); animation: wp-pen 6s ease-in-out infinite alternate;
}
.scn-war-starts-from-political-condition .lamp {
  position: absolute; bottom: 40%; right: 15%; width: 8%; height: 12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px rgba(200,170,100,0.3); animation: wp-lamp 4s ease-in-out infinite;
}
.scn-war-starts-from-political-condition .lamp-glow {
  position: absolute; bottom: 38%; right: 14%; width: 10%; height: 10%; background: radial-gradient(circle, #e0c080 0%, rgba(200,160,80,0.3) 60%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: wp-glow 4s ease-in-out infinite alternate;
}
@keyframes wp-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wp-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 wp-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wp-paper { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes wp-pen { 0% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(12deg) } }
@keyframes wp-lamp { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wp-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }

.scn-policy-interwoven {
  background: linear-gradient(180deg, #1a1816 0%, #282422 40%, #3c3630 100%), radial-gradient(ellipse at 70% 50%, #342e28 0%, transparent 70%);
}
.scn-policy-interwoven .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1a18 0%, #2c2824 50%, #1e1a18 100%); animation: pi-bg 15s ease-in-out infinite alternate;
}
.scn-policy-interwoven .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 20%; height: 70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: pi-shelf 20s ease-in-out infinite;
}
.scn-policy-interwoven .bookshelf::after {
  content: ''; position: absolute; top: 10%; left: 10%; width: 80%; height: 15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-policy-interwoven .candle {
  position: absolute; bottom: 20%; right: 25%; width: 4%; height: 20%; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: pi-candle 5s ease-in-out infinite;
}
.scn-policy-interwoven .flame {
  position: absolute; bottom: 38%; right: 24%; width: 3%; height: 8%; background: radial-gradient(circle, #f0c080 0%, #e0a050 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: pi-flame 3s ease-in-out infinite alternate;
}
.scn-policy-interwoven .scroll {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 15%; background: linear-gradient(180deg, #c8b8a0 0%, #b0a090 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-5deg); animation: pi-scroll 10s ease-in-out infinite;
}
.scn-policy-interwoven .inkwell {
  position: absolute; bottom: 22%; left: 65%; width: 6%; height: 8%; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: pi-ink 12s ease-in-out infinite;
}
.scn-policy-interwoven .quill {
  position: absolute; bottom: 25%; left: 68%; width: 1.5%; height: 18%; background: linear-gradient(180deg, #d0c0b0 0%, #806050 100%); border-radius: 50%; transform: rotate(30deg); transform-origin: bottom center; animation: pi-quill 7s ease-in-out infinite alternate;
}
@keyframes pi-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pi-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pi-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pi-flame { 0% { opacity: 0.8; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.85) } }
@keyframes pi-scroll { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pi-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pi-quill { 0% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }

.scn-war-continuation-of-policy {
  background: linear-gradient(180deg, #1c1814 0%, #2a241e 40%, #3c342c 100%), radial-gradient(ellipse at 40% 60%, #2c241c 0%, transparent 70%);
}
.scn-war-continuation-of-policy .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a16 0%, #2c2620 50%, #1e1a16 100%); animation: wc-bg 18s ease-in-out infinite alternate;
}
.scn-war-continuation-of-policy .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 25%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: wc-table 22s ease-in-out infinite;
}
.scn-war-continuation-of-policy .map {
  position: absolute; bottom: 22%; left: 15%; width: 40%; height: 25%; background: linear-gradient(135deg, #c8b8a0 0%, #b0a090 100%); border-radius: 4px; transform: rotate(2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.4); animation: wc-map 12s ease-in-out infinite;
}
.scn-war-continuation-of-policy .compass {
  position: absolute; bottom: 28%; right: 20%; width: 8%; height: 8%; background: radial-gradient(circle, #b0a090 0%, #706050 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: wc-compass 10s ease-in-out infinite alternate;
}
.scn-war-continuation-of-policy .seal {
  position: absolute; bottom: 24%; left: 60%; width: 6%; height: 6%; background: radial-gradient(circle, #c8a080 0%, #a08060 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: wc-seal 14s ease-in-out infinite;
}
.scn-war-continuation-of-policy .flag {
  position: absolute; top: 8%; right: 15%; width: 12%; height: 20%; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius: 0 0 30% 30%; animation: wc-flag 8s ease-in-out infinite alternate;
}
.scn-war-continuation-of-policy .candle {
  position: absolute; bottom: 32%; left: 8%; width: 3%; height: 18%; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius: 30% 30% 10% 10%; animation: wc-candle 5s ease-in-out infinite;
}
@keyframes wc-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes wc-map { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes wc-compass { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(15deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes wc-seal { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes wc-flag { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes wc-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }

.scn-diversity-in-nature-of-wars {
  background: linear-gradient(180deg, #1a1612 0%, #28221c 40%, #3a3228 100%), radial-gradient(ellipse at 50% 40%, #2a221c 0%, transparent 70%);
}
.scn-diversity-in-nature-of-wars .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1a16 0%, #2c2620 50%, #1e1a16 100%); animation: dn-bg 16s ease-in-out infinite alternate;
}
.scn-diversity-in-nature-of-wars .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 40% 40% 0 / 0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,.4); animation: dn-curtain 25s ease-in-out infinite alternate;
}
.scn-diversity-in-nature-of-wars .curtain::before {
  content: ''; position: absolute; top: 0; right: 0; width: 80%; height: 100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 40% 40% 0 / 0 20% 20% 0; opacity: 0.7;
}
.scn-diversity-in-nature-of-wars .globe {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 35%; background: radial-gradient(circle at 40% 35%, #6a8a7a 0%, #3a5a4a 60%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 20px rgba(0,0,0,.5); animation: dn-globe 20s ease-in-out infinite;
}
.scn-diversity-in-nature-of-wars .figure {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dn-figure 8s ease-in-out infinite alternate;
}
.scn-diversity-in-nature-of-wars .light-beam {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 60%; background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 80%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: dn-beam 14s ease-in-out infinite;
}
.scn-diversity-in-nature-of-wars .shadow {
  position: absolute; bottom: 14%; right: 15%; width: 20%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); border-radius: 50%; animation: dn-shadow 10s ease-in-out infinite alternate;
}
@keyframes dn-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dn-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes dn-globe { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes dn-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dn-beam { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.7; transform: scaleY(1.05) } 100% { opacity: 0.3; transform: scaleY(0.95) } }
@keyframes dn-shadow { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(0.9) } }

.scn-destroy-military-power { background: linear-gradient(180deg, #1a1510 0%, #2a2218 40%, #1a1510 80%), radial-gradient(ellipse at 50% 60%, #3a2a18 0%, transparent 70%); }
.scn-destroy-military-power .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1510 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); animation: dmp-wall 20s ease-in-out infinite; }
.scn-destroy-military-power .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #1a1210 0%, #2a2018 100%); border-radius: 20% 20% 0 0; }
.scn-destroy-military-power .table { position:absolute; bottom:12%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); transform: perspective(400px) rotateX(10deg); }
.scn-destroy-military-power .document { position:absolute; bottom:16%; left:38%; width:20%; height:5%; background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 50%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: dmp-doc 6s ease-in-out infinite alternate; }
.scn-destroy-military-power .candle { position:absolute; bottom:22%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 40%, #a08060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,160,100,0.3); animation: dmp-candle 4s ease-in-out infinite; }
.scn-destroy-military-power .flame { position:absolute; bottom:31%; left:48.5%; width:2.5%; height:6%; background: radial-gradient(circle, #ffd080 10%, #ffa040 40%, transparent 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 15px rgba(255,160,64,0.3); animation: dmp-flame 1.5s ease-in-out infinite alternate; }
.scn-destroy-military-power .shadow { position:absolute; bottom:8%; left:20%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(8px); animation: dmp-shadow 12s ease-in-out infinite alternate; }
@keyframes dmp-wall { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes dmp-doc { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes dmp-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dmp-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.2) translateY(-3px); opacity:1; } 100% { transform: scale(0.85) translateY(1px); opacity:0.7; } }
@keyframes dmp-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(10px) scale(1.05); opacity:0.7; } 100% { transform: translateX(-5px) scale(0.95); opacity:0.4; } }

.scn-will-of-enemy-subdued { background: linear-gradient(180deg, #141210 0%, #221a14 50%, #141210 100%), radial-gradient(ellipse at 50% 70%, #2a2218 0%, transparent 80%); }
.scn-will-of-enemy-subdued .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.8); animation: wes-room 30s ease-in-out infinite; }
.scn-will-of-enemy-subdued .table { position:absolute; bottom:15%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #403020 0%, #2a1a10 100%); border-radius: 6px; box-shadow: 0 6px 16px rgba(0,0,0,0.7); transform: perspective(500px) rotateX(15deg); }
.scn-will-of-enemy-subdued .broken-sword { position:absolute; bottom:20%; left:35%; width:8%; height:15%; background: linear-gradient(180deg, #706050 0%, #504030 60%, #302010 100%); border-radius: 20% 20% 5% 5%; clip-path: polygon(40% 0, 60% 0, 55% 80%, 50% 100%, 45% 80%); box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: wes-sword 8s ease-in-out infinite alternate; }
.scn-will-of-enemy-subdued .chains { position:absolute; bottom:18%; left:55%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 50%, #706050 0%, #403020 100%); border-radius: 0; clip-path: polygon(30% 0, 70% 0, 60% 40%, 40% 40%, 30% 100%, 40% 100%, 60% 60%, 40% 60%); box-shadow: 0 0 8px rgba(0,0,0,0.4); animation: wes-chains 12s ease-in-out infinite alternate; }
.scn-will-of-enemy-subdued .chain-link { position:absolute; bottom:30%; left:58%; width:3%; height:5%; background: #605040; border-radius: 30%; box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: wes-link 6s ease-in-out infinite; }
.scn-will-of-enemy-subdued .lantern { position:absolute; bottom:35%; left:60%; width:6%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 3px #c0a060; animation: wes-lantern 5s ease-in-out infinite alternate; }
.scn-will-of-enemy-subdued .wall-shadow { position:absolute; bottom:5%; left:15%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(12px); animation: wes-shadow 18s ease-in-out infinite alternate; }
@keyframes wes-room { 0% { opacity:0.85; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes wes-sword { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes wes-chains { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes wes-link { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wes-lantern { 0% { transform: rotate(-2deg) scale(1); box-shadow: 0 0 20px 3px #c0a060; } 50% { transform: rotate(1deg) scale(1.02); box-shadow: 0 0 30px 5px #d0b070; } 100% { transform: rotate(-2deg) scale(1); box-shadow: 0 0 20px 3px #c0a060; } }
@keyframes wes-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(8px) scale(1.08); opacity:0.7; } 100% { transform: translateX(-4px) scale(0.92); opacity:0.4; } }

.scn-peace-extinguishes-sparks { background: linear-gradient(180deg, #0e0a08 0%, #1a1210 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 80%, #2a1a12 0%, transparent 60%); }
.scn-peace-extinguishes-sparks .hearth { position:absolute; bottom:10%; left:20%; width:60%; height:25%; background: linear-gradient(0deg, #1a1008 0%, #2a1a0e 40%, #1a0e08 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
.scn-peace-extinguishes-sparks .embers { position:absolute; bottom:14%; left:30%; width:25%; height:12%; background: radial-gradient(circle at 30% 40%, #d06830 0%, #b04820 30%, #802010 60%, transparent 100%); box-shadow: 0 0 20px 5px #b04820; animation: pes-embers 4s ease-in-out infinite alternate; }
.scn-peace-extinguishes-sparks .smoke { position:absolute; bottom:25%; left:35%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, transparent 70%); filter: blur(8px); animation: pes-smoke 8s ease-in-out infinite; }
.scn-peace-extinguishes-sparks .bucket { position:absolute; bottom:12%; left:55%; width:10%; height:14%; background: linear-gradient(180deg, #504040 0%, #302020 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-peace-extinguishes-sparks .hand { position:absolute; bottom:24%; left:52%; width:8%; height:14%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pes-hand 5s ease-in-out infinite; }
.scn-peace-extinguishes-sparks .extinguish-glow { position:absolute; bottom:20%; left:50%; width:12%; height:10%; background: radial-gradient(circle, rgba(200,180,200,0.4) 0%, transparent 60%); filter: blur(6px); animation: pes-glow 3s ease-in-out infinite alternate; }
@keyframes pes-embers { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes pes-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-8px) scale(1.2); opacity:0.5; } 100% { transform: translateY(0) scale(0.9); opacity:0.2; } }
@keyframes pes-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pes-glow { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.1; } }

.scn-natural-order-destroy-then-conquer { background: linear-gradient(180deg, #12100e 0%, #1e1814 50%, #12100e 100%), radial-gradient(ellipse at 50% 50%, #2a221c 0%, transparent 70%); }
.scn-natural-order-destroy-then-conquer .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); animation: ndt-room 25s ease-in-out infinite; }
.scn-natural-order-destroy-then-conquer .desk { position:absolute; bottom:12%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); transform: perspective(300px) rotateX(12deg); }
.scn-natural-order-destroy-then-conquer .globe { position:absolute; bottom:20%; left:35%; width:15%; height:20%; background: radial-gradient(circle at 40% 40%, #a0a098 0%, #707068 40%, #404038 100%); border-radius: 50%; box-shadow: 0 0 20px 2px rgba(100,100,90,0.3); animation: ndt-globe 15s linear infinite; }
.scn-natural-order-destroy-then-conquer .map { position:absolute; bottom:22%; left:50%; width:18%; height:12%; background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 50%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(2deg); animation: ndt-map 8s ease-in-out infinite alternate; }
.scn-natural-order-destroy-then-conquer .quill { position:absolute; bottom:28%; left:55%; width:2%; height:20%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 40%, #a89880 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-15deg); transform-origin: bottom; animation: ndt-quill 6s ease-in-out infinite alternate; }
.scn-natural-order-destroy-then-conquer .inkwell { position:absolute; bottom:18%; left:60%; width:5%; height:8%; background: linear-gradient(180deg, #202020 0%, #101010 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-natural-order-destroy-then-conquer .shadow-hand { position:absolute; bottom:5%; left:30%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(10px); animation: ndt-hand 14s ease-in-out infinite alternate; }
@keyframes ndt-room { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes ndt-globe { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } }
@keyframes ndt-map { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ndt-quill { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ndt-hand { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(8px) scale(1.1); opacity:0.7; } 100% { transform: translateX(-4px) scale(0.9); opacity:0.3; } }

.scn-truth-weak-motive {
  background: linear-gradient(180deg, #2a1e16 0%, #1a1210 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-truth-weak-motive .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1e16 100%); }
.scn-truth-weak-motive .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); }
.scn-truth-weak-motive .desk { position:absolute; bottom:30%; left:50%; width:120px; height:15px; transform:translateX(-60px); background: linear-gradient(90deg, #4a3528 0%, #6a4a3a 50%, #4a3528 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-truth-weak-motive .lamp { position:absolute; bottom:45%; left:50%; width:20px; height:40px; transform:translateX(-40px); background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,160,100,0.3); animation: twm-lamp 6s ease-in-out infinite alternate; }
.scn-truth-weak-motive .book { position:absolute; bottom:35%; left:50%; width:40px; height:10px; transform:translateX(-50px) rotate(-5deg); background: linear-gradient(180deg, #5e4a3a 0%, #3a2a20 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: twm-book 10s ease-in-out infinite; }
.scn-truth-weak-motive .figure { position:absolute; bottom:30%; left:50%; width:24px; height:50px; transform:translateX(-20px); background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 8px rgba(0,0,0,0.5); animation: twm-figure 8s ease-in-out infinite; }
.scn-truth-weak-motive .window { position:absolute; top:10%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, rgba(60,40,30,0.6) 0%, rgba(30,20,15,0.9) 100%); border: 3px solid #4a3528; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
@keyframes twm-lamp { 0% { box-shadow: 0 0 20px 5px rgba(200,160,100,0.3); opacity:0.9; } 50% { box-shadow: 0 0 40px 12px rgba(200,160,100,0.6); opacity:1; } 100% { box-shadow: 0 0 25px 6px rgba(200,160,100,0.35); opacity:0.85; } }
@keyframes twm-book { 0%,100% { transform: translateX(-50px) rotate(-5deg); } 50% { transform: translateX(-48px) rotate(-3deg) translateY(-1px); } }
@keyframes twm-figure { 0%,100% { transform: translateX(-20px) rotate(0deg); } 50% { transform: translateX(-18px) rotate(-2deg) translateY(1px); } }

.scn-events-in-war-very-simple-appearance {
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 60%, #3a2e26 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-events-in-war-very-simple-appearance .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2e26 0%, #2a221c 100%); }
.scn-events-in-war-very-simple-appearance .table { position:absolute; bottom:35%; left:50%; width:140px; height:8px; transform:translateX(-70px); background: linear-gradient(90deg, #4a3a2e 0%, #6a4e3a 50%, #4a3a2e 100%); border-radius: 3px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-events-in-war-very-simple-appearance .map { position:absolute; bottom:40%; left:50%; width:100px; height:50px; transform:translateX(-50px); background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: ews-map 12s ease-in-out infinite alternate; }
.scn-events-in-war-very-simple-appearance .candle { position:absolute; bottom:40%; left:50%; width:10px; height:20px; transform:translateX(-60px); background: linear-gradient(180deg, #c8a040 0%, #a08030 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 0 40px 10px rgba(200,160,64,0.5); animation: ews-candle 5s ease-in-out infinite alternate; }
.scn-events-in-war-very-simple-appearance .hand { position:absolute; bottom:42%; left:50%; width:20px; height:30px; transform:translateX(-10px) rotate(20deg); background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 2px 4px 6px rgba(0,0,0,0.5); animation: ews-hand 9s ease-in-out infinite; }
.scn-events-in-war-very-simple-appearance .document { position:absolute; bottom:47%; left:50%; width:50px; height:20px; transform:translateX(30px) rotate(5deg); background: linear-gradient(180deg, #a08a6a 0%, #8a7050 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ews-doc 14s ease-in-out infinite; }
@keyframes ews-map { 0% { transform: translateX(-50px) scale(1); } 50% { transform: translateX(-48px) scale(1.02) rotate(-1deg); } 100% { transform: translateX(-52px) scale(0.98) rotate(1deg); } }
@keyframes ews-candle { 0% { box-shadow: 0 0 25px 6px rgba(200,160,64,0.4); height:20px; } 50% { box-shadow: 0 0 50px 15px rgba(200,160,64,0.7); height:22px; } 100% { box-shadow: 0 0 30px 8px rgba(200,160,64,0.45); height:19px; } }
@keyframes ews-hand { 0%,100% { transform: translateX(-10px) rotate(20deg); } 50% { transform: translateX(-8px) rotate(25deg) translateY(2px); } }
@keyframes ews-doc { 0%,100% { transform: translateX(30px) rotate(5deg); } 50% { transform: translateX(28px) rotate(3deg) translateY(-1px); } }

.scn-conclusion-kind-of-mind {
  background: linear-gradient(180deg, #1a1e2a 0%, #121420 40%, #0a0c14 100%), radial-gradient(ellipse at 50% 20%, #2a3040 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-conclusion-kind-of-mind .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3040 0%, #1a1e2a 100%); }
.scn-conclusion-kind-of-mind .window-frame { position:absolute; top:5%; left:30%; width:100px; height:130px; border: 4px solid #3a3e4a; border-radius: 4px; background: transparent; box-shadow: 0 0 30px rgba(0,0,0,0.6); }
.scn-conclusion-kind-of-mind .curtain { position:absolute; top:5%; left:30%; width:48px; height:130px; background: linear-gradient(90deg, #2a2e3a 0%, #3a3e4a 50%, #2a2e3a 100%); border-radius: 0 4px 4px 0; animation: ckm-curtain 18s ease-in-out infinite alternate; }
.scn-conclusion-kind-of-mind .chair { position:absolute; bottom:40%; left:40%; width:40px; height:40px; transform:translateX(-20px); background: linear-gradient(180deg, #3a2e28 0%, #1a1410 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 8px 12px rgba(0,0,0,0.5); }
.scn-conclusion-kind-of-mind .figure { position:absolute; bottom:42%; left:40%; width:20px; height:44px; transform:translateX(-10px); background: linear-gradient(180deg, #1a1e2a 0%, #0a0c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 6px rgba(0,0,0,0.4); animation: ckm-figure 10s ease-in-out infinite; }
.scn-conclusion-kind-of-mind .moon { position:absolute; top:10%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #c8d0e0 0%, #a0a8c0 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,208,224,0.3); animation: ckm-moon 20s ease-in-out infinite alternate; }
@keyframes ckm-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); opacity:0.9; } 100% { transform: translateX(0); } }
@keyframes ckm-figure { 0%,100% { transform: translateX(-10px) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-1deg) translateY(2px); } }
@keyframes ckm-moon { 0% { box-shadow: 0 0 30px 8px rgba(200,208,224,0.3); transform: scale(1); } 50% { box-shadow: 0 0 50px 15px rgba(200,208,224,0.5); transform: scale(1.05); } 100% { box-shadow: 0 0 35px 10px rgba(200,208,224,0.35); transform: scale(0.98); } }

.scn-of-danger-in-war-title {
  background: linear-gradient(180deg, #1a0e0a 0%, #120806 40%, #080402 100%), radial-gradient(ellipse at 50% 90%, #3a1a12 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-of-danger-in-war-title .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1410 0%, #1a0e0a 100%); }
.scn-of-danger-in-war-title .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #120806 0%, #080402 100%); }
.scn-of-danger-in-war-title .figure-soldier { position:absolute; bottom:25%; left:50%; width:28px; height:60px; transform:translateX(-20px); background: linear-gradient(180deg, #1a0e0a 0%, #080402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0% 0%, 100% 0%, 100% 30%, 80% 40%, 80% 100%, 20% 100%, 20% 40%, 0% 30%); /* silhouette with head, shoulders, trunk */ animation: dwi-figure 8s ease-in-out infinite; box-shadow: 0 8px 20px rgba(0,0,0,0.8); }
.scn-of-danger-in-war-title .helmet { position:absolute; bottom:75%; left:50%; width:22px; height:16px; transform:translateX(-14px); background: linear-gradient(180deg, #4a2a1a 0%, #2a140e 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: dwi-helmet 12s ease-in-out infinite; }
.scn-of-danger-in-war-title .rifle { position:absolute; bottom:25%; left:50%; width:60px; height:6px; transform:translateX(-40px) rotate(-15deg); background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: dwi-rifle 6s ease-in-out infinite alternate; }
.scn-of-danger-in-war-title .lantern { position:absolute; bottom:60%; left:20%; width:14px; height:20px; background: linear-gradient(180deg, #c88040 0%, #a06030 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 0 40px 12px rgba(200,128,64,0.4); animation: dwi-lantern 4s ease-in-out infinite alternate; }
@keyframes dwi-figure { 0%,100% { transform: translateX(-20px) rotate(0deg); } 50% { transform: translateX(-18px) rotate(2deg) translateY(-2px); } }
@keyframes dwi-helmet { 0% { transform: translateX(-14px) rotate(0deg); } 50% { transform: translateX(-12px) rotate(-3deg) translateY(1px); } 100% { transform: translateX(-16px) rotate(0deg); } }
@keyframes dwi-rifle { 0% { transform: translateX(-40px) rotate(-15deg); } 50% { transform: translateX(-38px) rotate(-12deg) scaleX(1.02); } 100% { transform: translateX(-42px) rotate(-18deg); } }
@keyframes dwi-lantern { 0% { box-shadow: 0 0 20px 5px rgba(200,128,64,0.3); } 50% { box-shadow: 0 0 60px 15px rgba(200,128,64,0.6); } 100% { box-shadow: 0 0 30px 8px rgba(200,128,64,0.35); } }

.scn-various-meanings-of-means { background: linear-gradient(180deg, #2c1a0e 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%); }
.scn-various-meanings-of-means .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2c1a0e 100%); animation: vmm-wall 20s ease-in-out infinite alternate; }
.scn-various-meanings-of-means .desk   { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
.scn-various-meanings-of-means .book   { position:absolute; bottom:15%; width:60px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-various-meanings-of-means .book-1 { left:25%; height:80px; width:50px; transform: rotate(-4deg); animation: vmm-book 12s ease-in-out infinite alternate; }
.scn-various-meanings-of-means .book-2 { left:35%; bottom:18%; height:65px; width:55px; transform: rotate(3deg); animation: vmm-book2 15s ease-in-out infinite alternate; }
.scn-various-meanings-of-means .lamp  { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #a08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,160,80,.5); animation: vmm-lamp 3s ease-in-out infinite alternate; }
.scn-various-meanings-of-means .globe { position:absolute; bottom:10%; left:65%; width:70px; height:70px; background: radial-gradient(circle at 40% 35%, #6a7a5a 0%, #3a4a2a 100%); border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: vmm-globe 30s linear infinite; }
.scn-various-meanings-of-means .figure { position:absolute; bottom:20%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vmm-figure 6s ease-in-out infinite; }
.scn-various-meanings-of-means .shadow { position:absolute; bottom:10%; left:15%; right:25%; height:20px; background: rgba(0,0,0,.4); filter: blur(8px); border-radius: 50%; animation: vmm-shadow 6s ease-in-out infinite; }
@keyframes vmm-wall    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes vmm-book    { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes vmm-book2   { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes vmm-lamp    { 0% { box-shadow: 0 0 20px 5px rgba(200,160,80,.4); opacity:.9 } 50% { box-shadow: 0 0 40px 15px rgba(200,160,80,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,.5); opacity:.95 } }
@keyframes vmm-globe   { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes vmm-figure  { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(10px) rotate(1deg) } 66% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vmm-shadow  { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }

.scn-invasion-not-for-keeping { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 40%, #3a2a1a 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%); }
.scn-invasion-not-for-keeping .bg-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); animation: inf-room 15s ease-in-out infinite alternate; }
.scn-invasion-not-for-keeping .table  { position:absolute; bottom:0; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-invasion-not-for-keeping .map    { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4%; border: 2px solid #4a3a2a; animation: inf-map 8s ease-in-out infinite alternate; }
.scn-invasion-not-for-keeping .candle { position:absolute; bottom:35%; left:30%; width:20px; height:35px; background: linear-gradient(180deg, #a08040 0%, #806030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,80,.6); animation: inf-candle 2s ease-in-out infinite alternate; }
.scn-invasion-not-for-keeping .figure-commander { position:absolute; bottom:15%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inf-commander 4s ease-in-out infinite; }
.scn-invasion-not-for-keeping .figure-aide { position:absolute; bottom:15%; right:25%; width:18px; height:42px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inf-aide 4s ease-in-out infinite alternate; }
.scn-invasion-not-for-keeping .dagger  { position:absolute; bottom:30%; left:55%; width:4px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 50% 50%; transform: rotate(45deg); box-shadow: 0 0 8px 2px rgba(200,100,50,.3); animation: inf-dagger 3s ease-in-out infinite; }
@keyframes inf-room       { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes inf-map        { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(0deg) } 100% { transform: scale(1) rotate(1deg) } }
@keyframes inf-candle     { 0% { box-shadow: 0 0 10px 2px rgba(200,160,80,.4); opacity:.8 } 50% { box-shadow: 0 0 25px 8px rgba(200,160,80,.8); opacity:1 } 100% { box-shadow: 0 0 15px 4px rgba(200,160,80,.5); opacity:.85 } }
@keyframes inf-commander  { 0% { transform: translateX(0) rotate(-3deg); } 33% { transform: translateX(8px) rotate(4deg); } 66% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes inf-aide       { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-10px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes inf-dagger     { 0% { transform: rotate(40deg) scaleY(1); } 50% { transform: rotate(50deg) scaleY(1.1); } 100% { transform: rotate(45deg) scaleY(1); } }

.scn-wearing-out-small-objects { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 60%); }
.scn-wearing-out-small-objects .bg-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: wso-bg 18s ease-in-out infinite alternate; }
.scn-wearing-out-small-objects .tabletop { position:absolute; bottom:0; left:8%; right:8%; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4); }
.scn-wearing-out-small-objects .coin { position:absolute; bottom:20%; left:40%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #c0a060 0%, #806030 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,200,.2); animation: wso-coin 4s ease-in-out infinite; }
.scn-wearing-out-small-objects .magnifier { position:absolute; bottom:25%; right:30%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, rgba(200,200,255,0.3) 0%, transparent 70%); border: 3px solid #6a5a4a; border-radius: 50%; box-shadow: 0 0 20px 4px rgba(200,200,255,0.1); animation: wso-mag 5s ease-in-out infinite alternate; }
.scn-wearing-out-small-objects .hand { position:absolute; bottom:15%; left:35%; width:20px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: wso-hand 3s ease-in-out infinite; }
.scn-wearing-out-small-objects .motes { position:absolute; top:20%; left:20%; right:20%; height:60%; background: radial-gradient(circle, rgba(255,255,200,0.1) 0%, transparent 40%); filter: blur(4px); animation: wso-motes 12s linear infinite; }
@keyframes wso-bg    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wso-coin  { 0% { transform: rotate(0deg) translateY(0) } 33% { transform: rotate(5deg) translateY(-2px) } 66% { transform: rotate(-3deg) translateY(1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes wso-mag   { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes wso-hand  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(5deg) } 75% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wso-motes { 0% { transform: translateY(0) scale(0.8); opacity:.3 } 50% { transform: translateY(-20px) scale(1); opacity:.5 } 100% { transform: translateY(0) scale(0.8); opacity:.3 } }

.scn-negative-object-less-effective-but-surier { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a3a3a 100%), radial-gradient(ellipse at 50% 50%, #3a3a3a 0%, transparent 70%); }
.scn-negative-object-less-effective-but-surier .bg-soot { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); animation: nol-bg 20s ease-in-out infinite alternate; }
.scn-negative-object-less-effective-but-surier .pedestal { position:absolute; bottom:0; left:35%; right:35%; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-negative-object-less-effective-but-surier .scale { position:absolute; bottom:35%; left:45%; width:80px; height:10px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: nol-scale 6s ease-in-out infinite alternate; }
.scn-negative-object-less-effective-but-surier .left-pan { position:absolute; bottom:25%; left:38%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: nol-left 6s ease-in-out infinite alternate; }
.scn-negative-object-less-effective-but-surier .right-pan { position:absolute; bottom:25%; right:38%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: nol-right 6s ease-in-out infinite alternate; }
.scn-negative-object-less-effective-but-surier .figure-sage { position:absolute; bottom:20%; left:20%; width:22px; height:45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nol-sage 8s ease-in-out infinite; }
.scn-negative-object-less-effective-but-surier .candle-light { position:absolute; bottom:40%; left:28%; width:16px; height:30px; background: linear-gradient(180deg, #c08040 0%, #806030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 15px 4px rgba(200,160,80,.4); animation: nol-candle 3s ease-in-out infinite alternate; }
@keyframes nol-bg     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nol-scale  { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes nol-left   { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes nol-right  { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(0) } }
@keyframes nol-sage   { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(8px) rotate(3deg) } 66% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nol-candle { 0% { box-shadow: 0 0 10px 2px rgba(200,160,80,.3); opacity:.8 } 50% { box-shadow: 0 0 20px 6px rgba(200,160,80,.6); opacity:1 } 100% { box-shadow: 0 0 12px 3px rgba(200,160,80,.4); opacity:.85 } }

.scn-extreme-tension-opposition {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1310 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-extreme-tension-opposition .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2e241c 0%, #3a2e26 40%, #2e241c 100%); }
.scn-extreme-tension-opposition .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1f150e 100%); border-radius: 60% 60% 0 0 / 80% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-extreme-tension-opposition .window { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse 40% 60%, rgba(180,140,100,.4) 0%, transparent 70%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 0 40px 10px rgba(180,140,100,.2); }
.scn-extreme-tension-opposition .figure-left { position:absolute; bottom:28%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #1f150e 0%, #0f0a07 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: eto-fig-left 5s ease-in-out infinite; }
.scn-extreme-tension-opposition .figure-right { position:absolute; bottom:28%; right:30%; width:24px; height:60px; background: linear-gradient(180deg, #1f150e 0%, #0f0a07 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: eto-fig-right 5s ease-in-out infinite 0.5s; }
.scn-extreme-tension-opposition .table { position:absolute; bottom:28%; left:38%; right:38%; height:8px; background: #3a2a1a; border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-extreme-tension-opposition .candle { position:absolute; bottom:35%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 4px rgba(200,160,96,.5); animation: eto-candle-glow 2s ease-in-out infinite alternate; }
.scn-extreme-tension-opposition .glow-ambient { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(200,160,96,.15) 0%, transparent 70%); pointer-events:none; animation: eto-ambient 8s ease-in-out infinite alternate; }
@keyframes eto-fig-left { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes eto-fig-right { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes eto-candle-glow { 0% { box-shadow: 0 0 8px 2px rgba(200,160,96,.4); } 50% { box-shadow: 0 0 18px 6px rgba(200,160,96,.6); } 100% { box-shadow: 0 0 10px 3px rgba(200,160,96,.45); } }
@keyframes eto-ambient { 0% { opacity:.6; } 50% { opacity:.85; } 100% { opacity:.7; } }

.scn-from-abstract-to-reality {
  background: linear-gradient(180deg, #2a221b 0%, #1b1410 60%, #120c0a 100%),
              radial-gradient(ellipse at 50% 30%, #3d3028 0%, transparent 60%);
}
.scn-from-abstract-to-reality .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2e241c 0%, #1f1712 100%); }
.scn-from-abstract-to-reality .desk { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #4a3628 0%, #2e1f15 100%); border-radius: 4% 4% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-from-abstract-to-reality .book { position:absolute; bottom:24%; left:35%; width:60px; height:40px; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a22 50%, #3a2518 100%); border-radius: 2% 2% 8% 8%; transform-origin: left center; animation: far-book 10s ease-in-out infinite; box-shadow: 2px 4px 8px rgba(0,0,0,.5); }
.scn-from-abstract-to-reality .inkwell { position:absolute; bottom:25%; right:30%; width:14px; height:16px; background: radial-gradient(circle at 30% 20%, #6a4a3a 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-from-abstract-to-reality .chair { position:absolute; bottom:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #2a1f15 0%, #1a100a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: far-chair 6s ease-in-out infinite; }
.scn-from-abstract-to-reality .lamp { position:absolute; top:10%; left:40%; width:12px; height:40px; background: linear-gradient(180deg, #a08060 0%, #6a503a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 30px 8px rgba(180,140,100,.4); animation: far-lamp-glow 3s ease-in-out infinite alternate; }
.scn-from-abstract-to-reality .lamp-glow { position:absolute; top:8%; left:38%; right:38%; height:80px; background: radial-gradient(ellipse 40% 60%, rgba(180,140,100,.2) 0%, transparent 70%); pointer-events:none; animation: far-lamp-ambient 6s ease-in-out infinite alternate; }
.scn-from-abstract-to-reality .page-shadow { position:absolute; bottom:24%; left:35%; width:55px; height:30px; background: rgba(0,0,0,.3); border-radius: 2%; transform: skewX(-10deg); animation: far-page-shade 10s ease-in-out infinite; }
@keyframes far-book { 0% { transform: rotateY(0) scaleX(1); } 48% { transform: rotateY(0) scaleX(1); } 50% { transform: rotateY(-30deg) scaleX(.8); } 52% { transform: rotateY(0) scaleX(1); } 100% { transform: rotateY(0) scaleX(1); } }
@keyframes far-chair { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes far-lamp-glow { 0% { box-shadow: 0 0 20px 4px rgba(180,140,100,.3); } 50% { box-shadow: 0 0 40px 12px rgba(200,160,120,.5); } 100% { box-shadow: 0 0 25px 6px rgba(180,140,100,.35); } }
@keyframes far-lamp-ambient { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes far-page-shade { 0% { opacity:.2; } 50% { opacity:.35; } 100% { opacity:.2; } }

.scn-war-never-isolated-act {
  background: linear-gradient(180deg, #1d1612 0%, #130e0a 50%, #0c0806 100%),
              radial-gradient(ellipse at 50% 50%, #2a1f18 0%, transparent 70%);
}
.scn-war-never-isolated-act .bg-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #221a14 0%, #16100c 100%); }
.scn-war-never-isolated-act .table { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #3d2b20 0%, #241812 100%); border-radius: 2% 2% 30% 30%; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-war-never-isolated-act .map-overlay { position:absolute; bottom:15%; left:15%; right:15%; top:5%; background: repeating-linear-gradient(0deg, rgba(100,80,60,.25) 0px, transparent 2px, transparent 10px), repeating-linear-gradient(90deg, rgba(100,80,60,.2) 0px, transparent 2px, transparent 10px); border-radius: 2%; opacity:.6; animation: wni-map-scale 20s ease-in-out infinite alternate; }
.scn-war-never-isolated-act .counter-a { position:absolute; bottom:25%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #7a5a3a 0%, #3a2518 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: wni-counter 8s ease-in-out infinite; }
.scn-war-never-isolated-act .counter-b { position:absolute; bottom:22%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #8a6a4a 0%, #4a3020 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: wni-counter 9s ease-in-out infinite 1s; }
.scn-war-never-isolated-act .counter-c { position:absolute; bottom:28%; left:70%; width:10px; height:10px; background: radial-gradient(circle, #6a4a2a 0%, #2a1810 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: wni-counter 7s ease-in-out infinite -0.5s; }
.scn-war-never-isolated-act .hand-reach { position:absolute; bottom:20%; right:25%; width:20px; height:30px; background: linear-gradient(180deg, #a08060 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wni-hand 5s ease-in-out infinite; }
.scn-war-never-isolated-act .map-grid { position:absolute; bottom:20%; left:20%; right:20%; top:10%; background: transparent; border: 1px solid rgba(160,130,100,.3); border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
@keyframes wni-map-scale { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes wni-counter { 0% { transform: translate(0,0); } 30% { transform: translate(4px,-2px) scale(1.1); } 60% { transform: translate(-2px,2px) scale(.95); } 100% { transform: translate(0,0); } }
@keyframes wni-hand { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }

.scn-war-not-single-blow {
  background: linear-gradient(180deg, #1a1410 0%, #100c0a 40%, #080604 100%),
              radial-gradient(ellipse at 50% 40%, #2a1f18 0%, transparent 60%);
}
.scn-war-not-single-blow .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%); }
.scn-war-not-single-blow .hourglass-frame { position:absolute; top:10%; left:50%; width:60px; height:160px; transform:translateX(-50%); background: transparent; border: 3px solid #5a3a2a; border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px rgba(100,80,60,.3); animation: wns-frame 20s linear infinite; }
.scn-war-not-single-blow .sand-upper { position:absolute; top:12%; left:51%; width:36px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #b89870 0%, #8a6a4a 100%); border-radius: 10% 10% 40% 40%; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: wns-sand-upper 12s ease-in-out infinite; }
.scn-war-not-single-blow .sand-lower { position:absolute; bottom:18%; left:51%; width:36px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #6a503a 100%); border-radius: 40% 40% 10% 10%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: wns-sand-lower 12s ease-in-out infinite; }
.scn-war-not-single-blow .sand-falling { position:absolute; top:46%; left:52%; width:2px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #b89870 0%, transparent 100%); animation: wns-fall 3s ease-in-out infinite; }
.scn-war-not-single-blow .candle-light { position:absolute; bottom:10%; left:45%; width:8px; height:25px; background: linear-gradient(180deg, #c0a070 0%, #7a5a3a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 25px 8px rgba(200,160,100,.4); animation: wns-candle 2s ease-in-out infinite alternate; }
.scn-war-not-single-blow .shadow-rim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, transparent 50%, rgba(0,0,0,.5) 100%); pointer-events:none; animation: wns-rim 10s ease-in-out infinite alternate; }
@keyframes wns-frame { 0%,100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(0.5deg); } 75% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes wns-sand-upper { 0% { height:60px; opacity:1; } 50% { height:30px; opacity:.8; } 100% { height:60px; opacity:1; } }
@keyframes wns-sand-lower { 0% { height:40px; } 50% { height:70px; } 100% { height:40px; } }
@keyframes wns-fall { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(15px) scaleY(.5); opacity:0; } 100% { transform: translateY(0) scaleY(1); opacity:.8; } }
@keyframes wns-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,160,100,.3); } 50% { box-shadow: 0 0 30px 10px rgba(200,160,100,.5); } 100% { box-shadow: 0 0 20px 6px rgba(200,160,100,.4); } }
@keyframes wns-rim { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }

.scn-frequent-application-of-methods-essential {
  background: linear-gradient(180deg, #2a1e14 0%, #1f150e 40%, #140f0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-frequent-application-of-methods-essential .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f150e 100%);
  animation: fa-wall 12s ease-in-out infinite alternate;
}
.scn-frequent-application-of-methods-essential .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e14 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: fa-desk 10s ease-in-out infinite alternate;
}
.scn-frequent-application-of-methods-essential .figure {
  position: absolute; bottom: 32%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fa-figure 6s ease-in-out infinite;
}
.scn-frequent-application-of-methods-essential .candle {
  position: absolute; bottom: 40%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c088 0%, #a07848 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 0 12px 2px #c09050;
  animation: fa-candle 5s ease-in-out infinite;
}
.scn-frequent-application-of-methods-essential .glow {
  position: absolute; bottom: 40%; left: 56%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,200,120,.6) 0%, rgba(240,200,120,.2) 40%, transparent 70%);
  animation: fa-glow 4s ease-in-out infinite alternate;
}
.scn-frequent-application-of-methods-essential .book-1 {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2e18 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: fa-book 8s ease-in-out infinite;
}
.scn-frequent-application-of-methods-essential .book-2 {
  position: absolute; bottom: 22%; left: 28%; width: 25px; height: 16px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: fa-book 10s ease-in-out infinite reverse;
}
.scn-frequent-application-of-methods-essential .paper {
  position: absolute; bottom: 30%; left: 48%; width: 22px; height: 14px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 1px;
  transform: rotate(-2deg);
  opacity: 0.6;
  animation: fa-paper 7s ease-in-out infinite alternate;
}
@keyframes fa-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes fa-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fa-figure { 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 fa-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fa-glow { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.1); opacity: .8 } 100% { transform: scale(0.95); opacity: .5 } }
@keyframes fa-book { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-1px) rotate(-4deg) } }
@keyframes fa-paper { 0% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-1px) rotate(1deg) } }

.scn-positive-advantage-of-method {
  background: linear-gradient(180deg, #1e1e2e 0%, #14141e 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 80%);
}
.scn-positive-advantage-of-method .floor {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  animation: pa-floor 15s ease-in-out infinite alternate;
}
.scn-positive-advantage-of-method .table {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #222236 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: pa-table 8s ease-in-out infinite;
}
.scn-positive-advantage-of-method .map {
  position: absolute; bottom: 36%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(135deg, #6a6a6a 0%, #4a4a4a 50%, #5a5a5a 100%);
  border-radius: 2px;
  opacity: 0.7;
  animation: pa-map 12s ease-in-out infinite;
}
.scn-positive-advantage-of-method .lamp {
  position: absolute; bottom: 40%; left: 82%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 8px 2px #c0a080;
  animation: pa-lamp 6s ease-in-out infinite alternate;
}
.scn-positive-advantage-of-method .lampglow {
  position: absolute; bottom: 36%; left: 76%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,140,.25) 0%, transparent 60%);
  animation: pa-lampglow 5s ease-in-out infinite alternate;
}
.scn-positive-advantage-of-method .piece-1 {
  position: absolute; bottom: 34%; left: 30%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pa-piece 7s ease-in-out infinite;
}
.scn-positive-advantage-of-method .piece-2 {
  position: absolute; bottom: 34%; left: 46%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pa-piece 7s ease-in-out infinite 2s;
}
.scn-positive-advantage-of-method .piece-3 {
  position: absolute; bottom: 34%; left: 62%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pa-piece 7s ease-in-out infinite 4s;
}
.scn-positive-advantage-of-method .frame {
  position: absolute; inset: 5%;
  border: 2px solid rgba(200,180,140,.15);
  border-radius: 8px;
  pointer-events: none;
  animation: pa-frame 20s ease-in-out infinite alternate;
}
@keyframes pa-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pa-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pa-map { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes pa-lamp { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes pa-lampglow { 0% { transform: scale(1); opacity: .5 } 100% { transform: scale(1.1); opacity: .7 } }
@keyframes pa-piece { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pa-frame { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .2 } }

.scn-method-more-used-downwards {
  background: linear-gradient(180deg, #1a1a28 0%, #12121c 30%, #0a0a12 100%), radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 80%);
}
.scn-method-more-used-downwards .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,10,20,.6) 100%);
  animation: md-bg 15s ease-in-out infinite alternate;
}
.scn-method-more-used-downwards .column-left {
  position: absolute; top: 0; left: 18%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%);
  box-shadow: inset -2px 0 8px rgba(0,0,0,.6);
  animation: md-column 12s ease-in-out infinite;
}
.scn-method-more-used-downwards .column-right {
  position: absolute; top: 0; right: 18%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a28 100%);
  box-shadow: inset 2px 0 8px rgba(0,0,0,.6);
  animation: md-column 12s ease-in-out infinite reverse;
}
.scn-method-more-used-downwards .figure-top {
  position: absolute; top: 12%; left: 50%; width: 28px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-fig-top 8s ease-in-out infinite;
}
.scn-method-more-used-downwards .figure-mid {
  position: absolute; top: 38%; left: 50%; width: 22px; height: 38px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-fig-mid 8s ease-in-out infinite 2s;
}
.scn-method-more-used-downwards .figure-low {
  position: absolute; top: 62%; left: 50%; width: 16px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-fig-low 8s ease-in-out infinite 4s;
}
.scn-method-more-used-downwards .stairs {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 6px, #1a1a28 6px, #1a1a28 12px);
  border-radius: 6px 6px 0 0;
  animation: md-stairs 14s ease-in-out infinite;
}
@keyframes md-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes md-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes md-fig-top { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes md-fig-mid { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes md-fig-low { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes md-stairs { 0%,100% { opacity: .8 } 50% { opacity: 1 } }

.scn-war-highest-aspects-separate-decisive-events {
  background: linear-gradient(180deg, #121218 0%, #0a0a10 50%, #08080c 100%), radial-gradient(ellipse at 50% 60%, #1a1a24 0%, transparent 70%);
}
.scn-war-highest-aspects-separate-decisive-events .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(30,30,50,.3) 0%, transparent 80%);
  animation: wh-bg 20s ease-in-out infinite alternate;
}
.scn-war-highest-aspects-separate-decisive-events .surface {
  position: absolute; bottom: 0; left: -5%; right: -5%; height: 50%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: wh-surface 12s ease-in-out infinite;
}
.scn-war-highest-aspects-separate-decisive-events .stone-1 {
  position: absolute; bottom: 30%; left: 22%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 30%, #3a3a4a 0%, #1a1a24 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: wh-stone 8s ease-in-out infinite;
}
.scn-war-highest-aspects-separate-decisive-events .stone-2 {
  position: absolute; bottom: 30%; left: 48%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 30%, #3a3a4a 0%, #1a1a24 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: wh-stone 8s ease-in-out infinite 2.5s;
}
.scn-war-highest-aspects-separate-decisive-events .stone-3 {
  position: absolute; bottom: 30%; left: 72%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 30%, #3a3a4a 0%, #1a1a24 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: wh-stone 8s ease-in-out infinite 5s;
}
.scn-war-highest-aspects-separate-decisive-events .glow-1 {
  position: absolute; bottom: 30%; left: 22%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,160,.15) 0%, transparent 70%);
  transform: translate(-16px, -16px);
  animation: wh-glow 6s ease-in-out infinite;
}
.scn-war-highest-aspects-separate-decisive-events .glow-2 {
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,160,.15) 0%, transparent 70%);
  transform: translate(-16px, -16px);
  animation: wh-glow 6s ease-in-out infinite 2s;
}
.scn-war-highest-aspects-separate-decisive-events .glow-3 {
  position: absolute; bottom: 30%; left: 72%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,160,.15) 0%, transparent 70%);
  transform: translate(-16px, -16px);
  animation: wh-glow 6s ease-in-out infinite 4s;
}
@keyframes wh-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes wh-surface { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wh-stone { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes wh-glow { 0%,100% { opacity: .3 } 50% { opacity: .6 } }

.scn-arming-the-nation-scatter-after-defeat {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d2a8 40%, #cba77a 100%), radial-gradient(ellipse at 50% 60%, #fef5e0 0%, transparent 60%);
}
.scn-arming-the-nation-scatter-after-defeat .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e3cea4 0%, #d4b88a 100%);
  box-shadow: inset 0 0 30px rgba(200,160,100,.4);
}
.scn-arming-the-nation-scatter-after-defeat .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a7a55 0%, #7a5a35 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-arming-the-nation-scatter-after-defeat .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #b89162 0%, #8c6a40 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-arming-the-nation-scatter-after-defeat .paper {
  position: absolute; bottom: 32%; width: 20%; height: 8%;
  background: #faf0d8; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.15);
  transform-origin: center bottom;
}
.scn-arming-the-nation-scatter-after-defeat .paper-1 {
  left: 30%; transform: rotate(-8deg);
  animation: atn1-paper1 8s ease-in-out infinite alternate;
}
.scn-arming-the-nation-scatter-after-defeat .paper-2 {
  left: 50%; transform: rotate(3deg);
  animation: atn1-paper2 10s ease-in-out infinite alternate;
}
.scn-arming-the-nation-scatter-after-defeat .paper-3 {
  left: 65%; transform: rotate(-4deg);
  animation: atn1-paper3 7s ease-in-out infinite alternate;
}
.scn-arming-the-nation-scatter-after-defeat .chair {
  position: absolute; bottom: 24%; left: 40%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 4px 0 10px rgba(0,0,0,.3);
  animation: atn1-chair 12s ease-in-out infinite;
}
.scn-arming-the-nation-scatter-after-defeat .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 12%; height: 18%;
  background: radial-gradient(circle, #ffe080 0%, #cc8833 60%, transparent 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 20px rgba(255,200,100,.4), 0 0 80px 40px rgba(255,200,100,.15);
  animation: atn1-lamp 5s ease-in-out infinite alternate;
}
@keyframes atn1-paper1 { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-6deg) } }
@keyframes atn1-paper2 { 0% { transform: rotate(3deg) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(5deg) } }
@keyframes atn1-paper3 { 0% { transform: rotate(-4deg) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes atn1-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes atn1-lamp { 0% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(255,200,100,.3), 0 0 60px 30px rgba(255,200,100,.1); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,200,100,.5), 0 0 100px 50px rgba(255,200,100,.2); } 100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(255,200,100,.35), 0 0 70px 35px rgba(255,200,100,.12); } }

.scn-arming-the-nation-destroy-roads {
  background: linear-gradient(135deg, #f0dbb6 0%, #d4b88a 50%, #b89162 100%), radial-gradient(ellipse at 60% 40%, #fff5e0 0%, transparent 70%);
}
.scn-arming-the-nation-destroy-roads .bg-desk {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e3cea4 0%, #d4b88a 100%);
  box-shadow: inset 0 0 40px rgba(180,140,80,.3);
}
.scn-arming-the-nation-destroy-roads .desk-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #b89162 0%, #8c6a40 100%);
  border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,.3);
}
.scn-arming-the-nation-destroy-roads .map-roll {
  position: absolute; bottom: 30%; left: 25%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #dbb884 0%, #b89162 100%);
  border-radius: 50%/100% 100% 0 0;
  transform: rotate(-15deg); box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: atn2-roll 6s ease-in-out infinite alternate;
}
.scn-arming-the-nation-destroy-roads .lantern {
  position: absolute; bottom: 40%; left: 55%; width: 12%; height: 20%;
  background: radial-gradient(circle, #ffe090 0%, #cc8833 60%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,.4);
  animation: atn2-lantern 4s ease-in-out infinite alternate;
}
.scn-arming-the-nation-destroy-roads .inkwell {
  position: absolute; bottom: 28%; left: 65%; width: 8%; height: 10%;
  background: radial-gradient(circle, #2a2a2a 0%, #111 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: atn2-ink 12s ease-in-out infinite;
}
.scn-arming-the-nation-destroy-roads .quill {
  position: absolute; bottom: 36%; left: 60%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #d4b88a 0%, #8c6a40 60%, #4a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 100% 100% 20% 20%;
  transform: rotate(20deg);
  animation: atn2-quill 3s ease-in-out infinite alternate;
}
.scn-arming-the-nation-destroy-roads .candle {
  position: absolute; bottom: 26%; left: 18%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #ffe0b0 0%, #e0b080 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.3);
  animation: atn2-candle 5s ease-in-out infinite alternate;
}
@keyframes atn2-roll { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-18deg) } }
@keyframes atn2-lantern { 0% { opacity: 0.9; box-shadow: 0 0 25px 12px rgba(255,200,100,.35); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,200,100,.5); } 100% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(255,200,100,.3); } }
@keyframes atn2-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes atn2-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(22deg) } }
@keyframes atn2-candle { 0% { opacity: 0.85; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.9; transform: scaleY(0.97); } }

.scn-arming-the-nation-nebulous {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #b8a88c 70%, #8a7a5e 100%), radial-gradient(ellipse at 50% 30%, #fff5e8 0%, transparent 70%);
}
.scn-arming-the-nation-nebulous .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
}
.scn-arming-the-nation-nebulous .window {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 50%;
  background: linear-gradient(180deg, #faf0e0 0%, #e8dcc8 100%);
  border: 6px solid #6a5a3e; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,240,200,.5), 0 0 20px rgba(200,180,140,.2);
  animation: atn3-window 10s ease-in-out infinite alternate;
}
.scn-arming-the-nation-nebulous .curtain {
  position: absolute; top: 8%; bottom: 48%; width: 18%;
  background: linear-gradient(180deg, #8a7a5e 0%, #6a5a3e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 2px 0 10px rgba(0,0,0,.2);
  animation: atn3-curtain 8s ease-in-out infinite alternate;
}
.scn-arming-the-nation-nebulous .curtain-left { left: 22%; }
.scn-arming-the-nation-nebulous .curtain-right { right: 22%; animation-delay: -4s; }
.scn-arming-the-nation-nebulous .mist {
  position: absolute; top: 20%; left: 10%; right: 10%; bottom: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,190,170,.4) 0%, transparent 70%);
  filter: blur(20px);
  animation: atn3-mist 15s ease-in-out infinite alternate;
}
.scn-arming-the-nation-nebulous .figure {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: atn3-figure 6s ease-in-out infinite alternate;
}
.scn-arming-the-nation-nebulous .lamplight {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,160,.6) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: atn3-lamplight 5s ease-in-out infinite alternate;
}
@keyframes atn3-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes atn3-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }
@keyframes atn3-mist { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes atn3-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes atn3-lamplight { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-arming-the-nation-regular-support {
  background: linear-gradient(180deg, #f0e0c8 0%, #dcc8a8 40%, #c0a884 100%), radial-gradient(ellipse at 40% 60%, #fff5e8 0%, transparent 60%);
}
.scn-arming-the-nation-regular-support .command-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #c0a884 100%);
}
.scn-arming-the-nation-regular-support .command-table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #b89162 0%, #8c6a40 100%);
  border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-arming-the-nation-regular-support .flag {
  position: absolute; bottom: 38%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);  /* terracotta, not red */
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transform-origin: bottom center;
}
.scn-arming-the-nation-regular-support .flag-1 { left: 25%; animation: atn4-flag1 6s ease-in-out infinite; }
.scn-arming-the-nation-regular-support .flag-2 { left: 45%; animation: atn4-flag2 6s ease-in-out infinite 2s; }
.scn-arming-the-nation-regular-support .flag-3 { left: 65%; animation: atn4-flag3 6s ease-in-out infinite 4s; }
.scn-arming-the-nation-regular-support .hand {
  position: absolute; bottom: 36%; left: 35%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #c8a884 0%, #a8886a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: atn4-hand 4s ease-in-out infinite alternate;
}
.scn-arming-the-nation-regular-support .candle {
  position: absolute; bottom: 26%; left: 55%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #ffe0b0 0%, #e0b080 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 10px rgba(255,200,100,.3);
  animation: atn4-candle 5s ease-in-out infinite alternate;
}
.scn-arming-the-nation-regular-support .glow {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,160,.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: atn4-glow 8s ease-in-out infinite alternate;
}
@keyframes atn4-flag1 { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes atn4-flag2 { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } }
@keyframes atn4-flag3 { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } }
@keyframes atn4-hand { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-15deg) } }
@keyframes atn4-candle { 0% { opacity: 0.85; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(0.98); } }
@keyframes atn4-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* war-wonderful-trinity */
.scn-war-wonderful-trinity {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a2a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-war-wonderful-trinity .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0e0c08 100%); }
.scn-war-wonderful-trinity .shadow-arch { position:absolute; top:0; left:15%; right:15%; height:50%; background: radial-gradient(ellipse 70% 80% at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: wwt-shadow 12s ease-in-out infinite alternate; }
.scn-war-wonderful-trinity .pillar { position:absolute; bottom:0; width:6%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 0 12px rgba(0,0,0,0.5); }
.scn-war-wonderful-trinity .pillar-l { left:20%; animation: wwt-pillar-l 8s ease-in-out infinite; }
.scn-war-wonderful-trinity .pillar-r { right:20%; animation: wwt-pillar-r 8s ease-in-out infinite; }
.scn-war-wonderful-trinity .altar { position:absolute; bottom:10%; left:40%; right:40%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-war-wonderful-trinity .flame { position:absolute; bottom:18%; left:50%; width:14px; height:28px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #c06020 50%, #802010 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px #b05020; animation: wwt-flame 2s ease-in-out infinite alternate; }
.scn-war-wonderful-trinity .orb { position:absolute; width:16px; height:16px; border-radius:50%; background: radial-gradient(circle, #e8c060 0%, #a08030 70%); box-shadow: 0 0 12px 4px rgba(200,160,80,0.4); animation: wwt-orb 6s ease-in-out infinite; }
.scn-war-wonderful-trinity .orb-1 { top:30%; left:30%; animation-delay:0s; }
.scn-war-wonderful-trinity .orb-2 { top:30%; left:50%; animation-delay:2s; }
.scn-war-wonderful-trinity .orb-3 { top:30%; right:30%; animation-delay:4s; }
@keyframes wwt-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes wwt-pillar-l { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes wwt-pillar-r { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.01) } }
@keyframes wwt-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg) } }
@keyframes wwt-orb { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }

/* three-phases-people-general-government */
.scn-three-phases-people-general-government {
  background: linear-gradient(180deg, #1c1a16 0%, #2a241c 40%, #3a3020 100%), radial-gradient(ellipse at 50% 100%, #3a3020 0%, transparent 70%);
}
.scn-three-phases-people-general-government .bg-horizon { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a241c 0%, #3a3020 100%); }
.scn-three-phases-people-general-government .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a1208 100%); border-radius: 30% 0 0 0 / 40% 0 0 0; }
.scn-three-phases-people-general-government .light-haze { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(180,140,80,0.15) 0%, transparent 100%); animation: tpg-haze 15s ease-in-out infinite alternate; }
.scn-three-phases-people-general-government .figure { position:absolute; bottom:30%; width:10%; height:45%; background: linear-gradient(180deg, #3a3020 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 6px rgba(0,0,0,0.4); animation: tpg-figure 10s ease-in-out infinite; }
.scn-three-phases-people-general-government .figure-1 { left:20%; animation-delay:0s; }
.scn-three-phases-people-general-government .figure-2 { left:45%; width:12%; height:48%; animation-delay:1s; }
.scn-three-phases-people-general-government .figure-3 { right:20%; width:9%; height:42%; animation-delay:2s; }
.scn-three-phases-people-general-government .column { position:absolute; bottom:30%; width:4%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 0 8px rgba(0,0,0,0.5); }
.scn-three-phases-people-general-government .column-l { left:14%; animation: tpg-column 20s ease-in-out infinite; }
.scn-three-phases-people-general-government .column-r { right:14%; animation: tpg-column 20s ease-in-out infinite reverse; }
@keyframes tpg-haze { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes tpg-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tpg-column { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }

/* three-tendencies-theory */
.scn-three-tendencies-theory {
  background: linear-gradient(135deg, #1a1814 0%, #2a221a 40%, #1c1812 100%), radial-gradient(ellipse at 50% 50%, #2a221a 0%, transparent 80%);
}
.scn-three-tendencies-theory .canvas { position:absolute; inset:10% 5% 10% 5%; background: linear-gradient(135deg, rgba(60,50,40,0.3) 0%, transparent 50%, rgba(60,50,40,0.3) 100%); border-radius:8px; border:1px solid rgba(100,80,60,0.2); }
.scn-three-tendencies-theory .brush-stroke { position:absolute; height:6%; background: linear-gradient(90deg, transparent, rgba(180,140,80,0.4) 50%, transparent); border-radius:50%; filter: blur(3px); }
.scn-three-tendencies-theory .stroke-a { top:25%; left:10%; right:10%; animation: ttt-stroke 14s ease-in-out infinite; }
.scn-three-tendencies-theory .stroke-b { top:45%; left:15%; right:15%; animation: ttt-stroke 18s ease-in-out infinite reverse; }
.scn-three-tendencies-theory .stroke-c { top:65%; left:5%; right:5%; animation: ttt-stroke 22s ease-in-out infinite; }
.scn-three-tendencies-theory .convergence-dot { position:absolute; top:50%; left:50%; width:20px; height:20px; transform:translate(-50%,-50%); background: radial-gradient(circle, #c0a060 0%, #806030 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(192,160,96,0.5); animation: ttt-dot 4s ease-in-out infinite; }
.scn-three-tendencies-theory .ripple { position:absolute; top:50%; left:50%; width:60px; height:60px; transform:translate(-50%,-50%); border:2px solid rgba(200,180,140,0.2); border-radius:50%; }
.scn-three-tendencies-theory .ripple-1 { animation: ttt-ripple 6s ease-out infinite; }
.scn-three-tendencies-theory .ripple-2 { animation: ttt-ripple 6s ease-out infinite 3s; }
@keyframes ttt-stroke { 0% { transform: translateX(-20px) scaleX(0.8) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-20px) scaleX(0.8) } }
@keyframes ttt-dot { 0% { transform: translate(-50%,-50%) scale(1) } 50% { transform: translate(-50%,-50%) scale(1.3) } 100% { transform: translate(-50%,-50%) scale(1) } }
@keyframes ttt-ripple { 0% { width:20px; height:20px; opacity:0.8 } 50% { width:80px; height:80px; opacity:0.3 } 100% { width:120px; height:120px; opacity:0 } }

/* theory-poised-between-three */
.scn-theory-poised-between-three {
  background: linear-gradient(180deg, #1e1a16 0%, #2e221c 50%, #1a1410 100%), radial-gradient(ellipse at 50% 40%, #2e221c 0%, transparent 70%);
}
.scn-theory-poised-between-three .vault { position:absolute; top:5%; left:15%; right:15%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(80,60,40,0.3) 0%, transparent 80%); border-radius:50% 50% 0 0 / 60% 60% 0 0; }
.scn-theory-poised-between-three .pedestal { position:absolute; bottom:15%; left:35%; right:35%; 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-theory-poised-between-three .mass { position:absolute; width:12%; height:16%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 12px rgba(0,0,0,0.5); }
.scn-theory-poised-between-three .mass-left { bottom:30%; left:18%; animation: tpb-mass 12s ease-in-out infinite; }
.scn-theory-poised-between-three .mass-center { bottom:40%; left:44%; width:14%; height:20%; animation: tpb-mass 12s ease-in-out infinite 2s; }
.scn-theory-poised-between-three .mass-right { bottom:30%; right:18%; animation: tpb-mass 12s ease-in-out infinite 4s; }
.scn-theory-poised-between-three .beam { position:absolute; bottom:38%; left:15%; right:15%; height:2%; background: linear-gradient(90deg, transparent, #8a7a6a 20%, #8a7a6a 80%, transparent); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-theory-poised-between-three .pendulum { position:absolute; bottom:10%; left:50%; width:6px; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:2px; animation: tpb-pendulum 4s ease-in-out infinite; }
.scn-theory-poised-between-three .dust { position:absolute; width:4px; height:4px; background: rgba(200,180,160,0.3); border-radius:50%; filter: blur(2px); }
.scn-theory-poised-between-three .dust-a { top:25%; left:30%; animation: tpb-dust 18s linear infinite; }
.scn-theory-poised-between-three .dust-b { top:60%; left:70%; animation: tpb-dust 22s linear infinite reverse; }
@keyframes tpb-mass { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes tpb-pendulum { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(8deg) } 100% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes tpb-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 50% { transform: translate(30px,-20px) scale(1.5); opacity:0.1 } 100% { transform: translate(60px,-40px) scale(0.5); opacity:0 } }

.scn-arrested-battle-turned-victory {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b87a 30%, #b8925a 60%, #7a5a3a 100%),
    radial-gradient(ellipse at 30% 40%, #ffe080 0%, transparent 60%);
}
.scn-arrested-battle-turned-victory .ab-sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f0d080 100%);
  animation: ab-skyglow 8s ease-in-out infinite alternate;
}
.scn-arrested-battle-turned-victory .ab-sun {
  position:absolute; top:10%; left:70%; width:60px; height:60px;
  background: radial-gradient(circle, #fff4c0 0%, #ffc040 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px #ffc040;
  animation: ab-sunpulse 6s ease-in-out infinite;
}
.scn-arrested-battle-turned-victory .ab-ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4d3a2a 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ab-groundshift 14s ease-in-out infinite;
}
.scn-arrested-battle-turned-victory .ab-figure {
  position:absolute; bottom:30%; left:45%; width:24px; height:48px;
  background: linear-gradient(180deg, #d4a06a 0%, #a07840 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-figcharge 4s ease-in-out infinite;
}
.scn-arrested-battle-turned-victory .ab-banner {
  position:absolute; bottom:45%; left:48%; width:30px; height:40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  animation: ab-bannerwave 3s ease-in-out infinite alternate;
}
.scn-arrested-battle-turned-victory .ab-spear {
  position:absolute; bottom:28%; left:46%; width:4px; height:70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ab-spearsway 5s ease-in-out infinite;
}
.scn-arrested-battle-turned-victory .ab-dust {
  position:absolute; bottom:40%; left:20%; width:80px; height:30px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ab-dustdrift 12s linear infinite;
}
@keyframes ab-skyglow { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes ab-sunpulse { 0%{transform:scale(1); box-shadow:0 0 60px 20px #ffc040} 50%{transform:scale(1.1); box-shadow:0 0 80px 30px #ffc040} 100%{transform:scale(1); box-shadow:0 0 60px 20px #ffc040} }
@keyframes ab-groundshift { 0%{transform:translateY(0) scaleX(1)} 50%{transform:translateY(-4px) scaleX(1.02)} 100%{transform:translateY(0) scaleX(1)} }
@keyframes ab-figcharge { 0%{transform:translateX(0) rotate(0deg)} 30%{transform:translateX(10px) rotate(5deg)} 60%{transform:translateX(20px) rotate(-5deg)} 100%{transform:translateX(30px) rotate(0deg)} }
@keyframes ab-bannerwave { 0%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }
@keyframes ab-spearsway { 0%{transform:rotate(-10deg)} 50%{transform:rotate(-6deg)} 100%{transform:rotate(-10deg)} }
@keyframes ab-dustdrift { 0%{transform:translateX(-30px) scale(0.8); opacity:0.3} 50%{opacity:0.6} 100%{transform:translateX(100vw) scale(1.2); opacity:0} }

.scn-magic-victory-curse-defeat {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a1510 40%, #2a2018 100%),
    radial-gradient(ellipse at 50% 80%, #8b5a2b 0%, transparent 60%);
}
.scn-magic-victory-curse-defeat .mv-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
  animation: mv-wallflicker 12s ease-in-out infinite alternate;
}
.scn-magic-victory-curse-defeat .mv-table {
  position:absolute; bottom:20%; left:25%; right:25%; height:15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: mv-tablebreathe 10s ease-in-out infinite;
}
.scn-magic-victory-curse-defeat .mv-candle {
  position:absolute; bottom:38%; left:48%; width:10px; height:30px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 3px 3px 0 0;
  transform-origin: bottom center;
  animation: mv-candleflicker 2s ease-in-out infinite alternate;
}
.scn-magic-victory-curse-defeat .mv-glow {
  position:absolute; bottom:35%; left:43%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0.2) 30%, transparent 70%);
  border-radius:50%;
  animation: mv-glowpulse 4s ease-in-out infinite alternate;
}
.scn-magic-victory-curse-defeat .mv-figure {
  position:absolute; bottom:22%; left:35%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mv-figuresway 5s ease-in-out infinite;
}
.scn-magic-victory-curse-defeat .mv-swirl {
  position:absolute; top:10%; left:30%; width:120px; height:120px;
  background: conic-gradient(from 0deg, #8b5a2b, #c8943a, #a0661a, #8b5a2b);
  border-radius:50%;
  filter: blur(12px);
  opacity:0.3;
  animation: mv-swirlspin 20s linear infinite;
}
@keyframes mv-wallflicker { 0%{opacity:0.7} 50%{opacity:0.9} 100%{opacity:0.8} }
@keyframes mv-tablebreathe { 0%{transform:scale(1)} 50%{transform:scale(1.01)} 100%{transform:scale(1)} }
@keyframes mv-candleflicker { 0%{transform:scaleY(1) translateY(0)} 50%{transform:scaleY(0.9) translateY(1px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes mv-glowpulse { 0%{transform:scale(0.8); opacity:0.5} 50%{transform:scale(1.1); opacity:0.8} 100%{transform:scale(0.8); opacity:0.5} }
@keyframes mv-figuresway { 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 mv-swirlspin { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(1.1)} 100%{transform:rotate(360deg) scale(1)} }

.scn-daun-leignitz-example {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a2018 100%),
    radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 50%);
}
.scn-daun-leignitz-example .dl-tent {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  opacity:0.5;
  animation: dl-tentbreathe 15s ease-in-out infinite;
}
.scn-daun-leignitz-example .dl-table {
  position:absolute; bottom:15%; left:20%; right:30%; height:20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dl-tablesettle 12s ease-in-out infinite;
}
.scn-daun-leignitz-example .dl-map {
  position:absolute; bottom:18%; left:22%; right:32%; height:14%;
  background: linear-gradient(135deg, #a09070 0%, #c0a080 30%, #b09060 70%, #a08050 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: dl-maprustle 8s ease-in-out infinite;
}
.scn-daun-leignitz-example .dl-candle {
  position:absolute; bottom:38%; left:45%; width:8px; height:28px;
  background: linear-gradient(180deg, #e0b080 0%, #a08040 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dl-candleglow 3s ease-in-out infinite alternate;
}
.scn-daun-leignitz-example .dl-commander {
  position:absolute; bottom:20%; left:45%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dl-commanderstand 6s ease-in-out infinite;
}
.scn-daun-leignitz-example .dl-shadow {
  position:absolute; bottom:10%; left:40%; width:40px; height:60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: dl-shadowmove 10s ease-in-out infinite alternate;
}
@keyframes dl-tentbreathe { 0%{opacity:0.4} 50%{opacity:0.6} 100%{opacity:0.5} }
@keyframes dl-tablesettle { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes dl-maprustle { 0%{transform:rotate(-1deg) scaleX(1)} 25%{transform:rotate(1deg) scaleX(1.01)} 50%{transform:rotate(-0.5deg) scaleX(0.99)} 75%{transform:rotate(0.5deg) scaleX(1)} 100%{transform:rotate(-1deg) scaleX(1)} }
@keyframes dl-candleglow { 0%{transform:scaleY(1); opacity:0.8} 50%{transform:scaleY(0.95); opacity:1} 100%{transform:scaleY(1); opacity:0.9} }
@keyframes dl-commanderstand { 0%{transform:translateX(0) rotate(-1deg)} 30%{transform:translateX(3px) rotate(1deg)} 60%{transform:translateX(-2px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes dl-shadowmove { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(10px) scaleX(1.2)} 100%{transform:translateX(-5px) scaleX(0.9)} }

.scn-item-advance-guard-avoid {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a1008 30%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a18 0%, transparent 50%);
}
.scn-item-advance-guard-avoid .ag-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
  animation: ag-wallshake 0.5s ease-in-out infinite alternate;
}
.scn-item-advance-guard-avoid .ag-table {
  position:absolute; bottom:20%; left:15%; right:25%; height:18%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2a18 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ag-tabletremble 0.3s ease-in-out infinite alternate;
}
.scn-item-advance-guard-avoid .ag-map {
  position:absolute; bottom:22%; left:18%; right:28%; height:12%;
  background: linear-gradient(135deg, #7a5a40 0%, #9a7050 30%, #8a6040 70%, #7a5040 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
  animation: ag-mapflicker 1s steps(2) infinite;
}
.scn-item-advance-guard-avoid .ag-lantern {
  position:absolute; bottom:42%; left:48%; width:12px; height:20px;
  background: radial-gradient(circle at 50% 30%, #ffc040 0%, #a06020 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,192,64,0.5);
  animation: ag-lanternjitter 0.15s ease-in-out infinite alternate;
}
.scn-item-advance-guard-avoid .ag-officer {
  position:absolute; bottom:18%; left:40%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ag-officertwitch 0.8s ease-in-out infinite;
}
.scn-item-advance-guard-avoid .ag-movingshadow {
  position:absolute; bottom:10%; left:10%; width:50px; height:80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ag-shadowdart 2s ease-in-out infinite alternate;
}
@keyframes ag-wallshake { 0%{transform:translateX(0)} 100%{transform:translateX(2px)} }
@keyframes ag-tabletremble { 0%{transform:rotate(-0.5deg)} 100%{transform:rotate(0.5deg)} }
@keyframes ag-mapflicker { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ag-lanternjitter { 0%{transform:translateY(0) rotate(0deg)} 100%{transform:translateY(1px) rotate(2deg)} }
@keyframes ag-officertwitch { 0%{transform:translateX(0) rotate(-3deg)} 25%{transform:translateX(5px) rotate(2deg)} 50%{transform:translateX(-3px) rotate(-4deg)} 75%{transform:translateX(4px) rotate(1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ag-shadowdart { 0%{transform:translateX(-20px) scaleX(1)} 50%{transform:translateX(30px) scaleX(1.3)} 100%{transform:translateX(-10px) scaleX(0.8)} }

/* operating-against-flank-conditions-local */
.scn-operating-against-flank-conditions-local { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c2a8 100%), radial-gradient(ellipse at 70% 100%, #d4c2a8 0%, transparent 80%); }
.scn-operating-against-flank-conditions-local .wall    { position:absolute; inset:0; background: linear-gradient(135deg, #f0e2cc 0%, #e2d0b4 100%); }
.scn-operating-against-flank-conditions-local .window  { position:absolute; top:8%; left:55%; width:28%; height:38%; background: linear-gradient(180deg, #cfe4f0 0%, #9bb8d0 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,255,.3), 0 4px 20px rgba(0,0,0,.1); animation: opfl1-window 12s ease-in-out infinite alternate; }
.scn-operating-against-flank-conditions-local .desk    { position:absolute; bottom:12%; left:10%; right:10%; height:28%; background: linear-gradient(180deg, #a08060 0%, #7a5e42 100%); border-radius:6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.2); }
.scn-operating-against-flank-conditions-local .map     { position:absolute; bottom:24%; left:18%; width:45%; height:20%; background: linear-gradient(135deg, #f0e6c0 0%, #d8c8a0 40%, #c0a880 100%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,.15); transform: rotate(-2deg); animation: opfl1-map 8s ease-in-out infinite alternate; }
.scn-operating-against-flank-conditions-local .globe   { position:absolute; bottom:18%; right:15%; width:12%; height:17%; background: radial-gradient(circle at 40% 35%, #80c0e0 0%, #5090b0 50%, #307090 100%); border-radius:50%; box-shadow: -2px 2px 10px rgba(0,0,0,.3), inset -4px -4px 20px rgba(0,0,0,.2); animation: opfl1-globe 6s ease-in-out infinite; }
.scn-operating-against-flank-conditions-local .lamp    { position:absolute; bottom:40%; left:8%; width:8%; height:24%; background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%); border-radius:4px 4px 0 0; transform: skewX(-5deg); box-shadow: 0 0 20px 8px rgba(255,200,120,.3); }
.scn-operating-against-flank-conditions-local .light-spot { position:absolute; bottom:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,120,.15) 0%, transparent 70%); animation: opfl1-light 4s ease-in-out infinite alternate; }
.scn-operating-against-flank-conditions-local .books   { position:absolute; bottom:38%; left:22%; width:20%; height:10%; background: linear-gradient(90deg, #6a3a1a 0%, #8a5a3a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
@keyframes opfl1-window { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes opfl1-map    { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2.5deg) translateY(0) } }
@keyframes opfl1-globe  { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes opfl1-light  { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.45 } }

/* operating-against-flank-practice */
.scn-operating-against-flank-practice { background: linear-gradient(180deg, #f0e8d8 0%, #ddd0ba 50%, #c8b8a0 100%), radial-gradient(ellipse at 60% 0%, #f0e8d8 0%, transparent 60%); }
.scn-operating-against-flank-practice .table    { position:absolute; bottom:8%; left:8%; right:8%; height:30%; background: linear-gradient(180deg, #b09878 0%, #8a6e50 100%); border-radius:8px; box-shadow: 0 -6px 30px rgba(0,0,0,.2); }
.scn-operating-against-flank-practice .chessboard { position:absolute; bottom:18%; left:50%; width:36%; height:24%; transform: translateX(-50%); background: repeating-conic-gradient(#3a2a1a 0% 25%, #f0e6d0 0% 50%) 0 0 / 25% 25%; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); border: 4px solid #5a3a2a; animation: opfl2-board 10s ease-in-out infinite alternate; }
.scn-operating-against-flank-practice .pieces   { position:absolute; bottom:20%; left:45%; width:8%; height:8%; background: radial-gradient(circle, #f0e6d0 0%, #c0a880 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: opfl2-pieces 6s ease-in-out infinite; }
.scn-operating-against-flank-practice .figure   { position:absolute; bottom:22%; right:20%; width:12%; height:28%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: opfl2-figure 8s ease-in-out infinite; }
.scn-operating-against-flank-practice .chair    { position:absolute; bottom:16%; right:16%; width:14%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-operating-against-flank-practice .window   { position:absolute; top:6%; left:10%; width:35%; height:40%; background: linear-gradient(180deg, #c8dce8 0%, #a0bcc8 100%); border-radius:8px; box-shadow: inset 0 0 40px rgba(255,255,255,.2); }
.scn-operating-against-flank-practice .sunbeam  { position:absolute; top:0; left:5%; width:25%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 100%); opacity:.5; transform: rotate(-12deg); animation: opfl2-sunbeam 14s ease-in-out infinite alternate; }
@keyframes opfl2-board   { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes opfl2-pieces  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes opfl2-figure  { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes opfl2-sunbeam { 0% { opacity:.2; transform: rotate(-12deg) } 50% { opacity:.6; transform: rotate(-9deg) } 100% { opacity:.3; transform: rotate(-14deg) } }

/* operating-against-flank-second-condition */
.scn-operating-against-flank-second-condition { background: linear-gradient(180deg, #eaddc0 0%, #d4c2a0 50%, #bfaa88 100%), radial-gradient(ellipse at 50% 100%, #bfaa88 0%, transparent 70%); }
.scn-operating-against-flank-second-condition .board    { position:absolute; top:15%; left:10%; right:10%; height:50%; background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%); border-radius:8px; box-shadow: 0 8px 25px rgba(0,0,0,.2); border: 3px solid #8a6e4a; }
.scn-operating-against-flank-second-condition .diagram  { position:absolute; top:18%; left:15%; width:70%; height:44%; background: linear-gradient(90deg, transparent 0%, rgba(60,60,40,.1) 20%, transparent 40%, rgba(60,60,40,.1) 60%, transparent 80%); border: 1px dashed #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.05); animation: opfl3-diagram 20s ease-in-out infinite alternate; }
.scn-operating-against-flank-second-condition .arrow1   { position:absolute; top:30%; left:20%; width:20%; height:4px; background: #8a6e4a; transform: rotate(25deg); border-radius:2px; animation: opfl3-arrow1 5s ease-in-out infinite; }
.scn-operating-against-flank-second-condition .arrow2   { position:absolute; top:45%; right:25%; width:15%; height:3px; background: #6a5a3a; transform: rotate(-15deg); border-radius:2px; animation: opfl3-arrow2 7s ease-in-out infinite; }
.scn-operating-against-flank-second-condition .pointer  { position:absolute; top:35%; left:45%; width:6%; height:6%; background: radial-gradient(circle, #c0a040 0%, #a08030 100%); border-radius:50%; box-shadow: 0 0 16px 4px rgba(192,160,64,.4); animation: opfl3-pointer 3s ease-in-out infinite alternate; }
.scn-operating-against-flank-second-condition .hand     { position:absolute; top:38%; left:42%; width:10%; height:14%; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: opfl3-hand 4s ease-in-out infinite; }
.scn-operating-against-flank-second-condition .desk     { position:absolute; bottom:8%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #a08060 0%, #7a5e42 100%); border-radius:4px; box-shadow: 0 -4px 15px rgba(0,0,0,.2); }
@keyframes opfl3-diagram { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes opfl3-arrow1  { 0% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(30deg) translateX(5px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes opfl3-arrow2  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes opfl3-pointer { 0% { box-shadow: 0 0 12px 2px rgba(192,160,64,.3); opacity:.8 } 50% { box-shadow: 0 0 20px 6px rgba(192,160,64,.6); opacity:1 } 100% { box-shadow: 0 0 14px 3px rgba(192,160,64,.35); opacity:.85 } }
@keyframes opfl3-hand    { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* operating-against-flank-silesian-example */
.scn-operating-against-flank-silesian-example { background: linear-gradient(180deg, #e0d2b8 0%, #c8b498 50%, #b09a7a 100%), radial-gradient(ellipse at 30% 100%, #b09a7a 0%, transparent 60%); }
.scn-operating-against-flank-silesian-example .table    { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #a88868 0%, #8a6e50 100%); border-radius:10px 10px 0 0; box-shadow: 0 -6px 30px rgba(0,0,0,.2); }
.scn-operating-against-flank-silesian-example .map      { position:absolute; bottom:20%; left:12%; width:50%; height:22%; background: linear-gradient(135deg, #f0e4c8 0%, #d8c8a0 40%, #c0a880 100%); border-radius:2px; box-shadow: 0 2px 10px rgba(0,0,0,.15); transform: rotate(1deg); animation: opfl4-map 9s ease-in-out infinite alternate; }
.scn-operating-against-flank-silesian-example .miniatures{ position:absolute; bottom:22%; left:22%; width:6%; height:5%; background: radial-gradient(circle, #c0a080 0%, #806040 100%); border-radius:50%; box-shadow: 0 1px 4px rgba(0,0,0,.3); animation: opfl4-mini 5s ease-in-out infinite; }
.scn-operating-against-flank-silesian-example .candle   { position:absolute; bottom:30%; right:20%; width:4%; height:18%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius:2px 2px 0 0; box-shadow: 0 0 10px 2px rgba(255,200,100,.2); }
.scn-operating-against-flank-silesian-example .flame    { position:absolute; bottom:46%; right:20.5%; width:3%; height:6%; background: radial-gradient(ellipse at 50% 100%, #ffdd80 0%, #ffb040 60%, transparent 100%); border-radius:50%; animation: opfl4-flame 1.5s ease-in-out infinite alternate; }
.scn-operating-against-flank-silesian-example .figure   { position:absolute; bottom:22%; left:40%; width:14%; height:28%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: opfl4-figure 6s ease-in-out infinite; }
.scn-operating-against-flank-silesian-example .lantern  { position:absolute; bottom:32%; left:22%; width:6%; height:8%; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:30%; box-shadow: 0 0 20px 6px rgba(255,208,128,.4); animation: opfl4-lantern 4s ease-in-out infinite alternate; }
@keyframes opfl4-map    { 0% { transform: rotate(1deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(1.5deg) } }
@keyframes opfl4-mini   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes opfl4-flame  { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.85 } }
@keyframes opfl4-figure { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes opfl4-lantern{ 0% { opacity:.7; box-shadow: 0 0 12px 3px rgba(255,208,128,.3) } 50% { opacity:1; box-shadow: 0 0 24px 8px rgba(255,208,128,.6) } 100% { opacity:.75; box-shadow: 0 0 14px 4px rgba(255,208,128,.35) } }

.scn-defence-of-streams-islands-important {
  background: linear-gradient(180deg, #d4c3a3 0%, #b59a7a 40%, #8b7355 100%), radial-gradient(circle at 50% 100%, #c9b38c 0%, transparent 70%);
}
.scn-defence-of-streams-islands-important .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0a57a 0%, #a08560 100%); }
.scn-defence-of-streams-islands-important .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b5035 0%, #4a3520 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-defence-of-streams-islands-important .window { position:absolute; top:8%; right:12%; width:80px; height:100px; border:6px solid #8b6f4e; background: linear-gradient(180deg, #e8dcc8 0%, #d4c3a3 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(255,240,200,.3); }
.scn-defence-of-streams-islands-important .table { position:absolute; bottom:28%; left:50%; width:200px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5c3a 0%, #5e4428 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-defence-of-streams-islands-important .map { position:absolute; bottom:34%; left:50%; width:160px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #f7edce 0%, #e6d2a8 50%, #cfb782 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: si1-map 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-islands-important .candle { position:absolute; bottom:36%; left:45%; width:10px; height:30px; background: linear-gradient(180deg, #f0d080 0%, #c09950 100%); border-radius:3px; transform:rotate(-5deg); }
.scn-defence-of-streams-islands-important .glow { position:absolute; bottom:38%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%); border-radius:50%; animation: si1-glow 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-islands-important .figure { position:absolute; bottom:30%; left:32%; width:24px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #1f1814 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si1-figure 6s ease-in-out infinite; }
@keyframes si1-map { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) rotate(0.5deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes si1-glow { 0% { opacity:.6; transform:scale(.8); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }
@keyframes si1-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-defence-of-streams-removal-of-crossings {
  background: linear-gradient(180deg, #d9c7a8 0%, #b79a7a 40%, #8c7355 100%), radial-gradient(circle at 30% 50%, #e3d4bb 0%, transparent 70%);
}
.scn-defence-of-streams-removal-of-crossings .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #bca37a 0%, #9f8660 100%); }
.scn-defence-of-streams-removal-of-crossings .table { position:absolute; bottom:25%; left:38%; width:180px; height:30px; background: linear-gradient(180deg, #6d523a 0%, #543e28 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-defence-of-streams-removal-of-crossings .paper { position:absolute; bottom:30%; left:40%; width:100px; height:70px; background: linear-gradient(135deg, #f1e4c4 0%, #dfcdab 100%); border-radius:2px; transform:rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: si2-paper 16s ease-in-out infinite alternate; }
.scn-defence-of-streams-removal-of-crossings .inkwell { position:absolute; bottom:32%; left:32%; width:16px; height:20px; background: #3a2a1a; border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-defence-of-streams-removal-of-crossings .quill { position:absolute; bottom:38%; left:28%; width:6px; height:40px; background: linear-gradient(180deg, #e8dcc8 0%, #c4b096 100%); transform:rotate(30deg); transform-origin: bottom; animation: si2-quill 4s ease-in-out infinite; }
.scn-defence-of-streams-removal-of-crossings .model-boat { position:absolute; bottom:30%; right:20%; width:50px; height:20px; background: linear-gradient(180deg, #5e4428 0%, #3a2a1a 100%); clip-path: polygon(0% 50%, 20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%); animation: si2-boat 8s ease-in-out infinite; }
.scn-defence-of-streams-removal-of-crossings .window { position:absolute; top:10%; right:8%; width:70px; height:90px; border:5px solid #7a5c3a; background: linear-gradient(180deg, #ebddc5 0%, #d6c2a2 100%); border-radius:4px; }
.scn-defence-of-streams-removal-of-crossings .candle { position:absolute; bottom:30%; left:50%; width:8px; height:28px; background: linear-gradient(180deg, #f0ce80 0%, #c0944a 100%); border-radius:2px; }
.scn-defence-of-streams-removal-of-crossings .glow { position:absolute; bottom:32%; left:50%; width:36px; height:36px; background: radial-gradient(circle, #ffd570 0%, #f0b040 40%, transparent 70%); border-radius:50%; animation: si2-glow 3s ease-in-out infinite alternate; }
@keyframes si2-paper { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes si2-quill { 0% { transform: rotate(28deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(28deg); } }
@keyframes si2-boat { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes si2-glow { 0% { opacity:.7; transform:scale(.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }

.scn-defence-of-streams-fortresses-role {
  background: linear-gradient(180deg, #c8b492 0%, #ab8d6a 40%, #8b7355 100%), radial-gradient(circle at 70% 20%, #dac9af 0%, transparent 70%);
}
.scn-defence-of-streams-fortresses-role .shelf { position:absolute; top:12%; left:5%; right:5%; height:6px; background: #5e4428; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-defence-of-streams-fortresses-role .books { position:absolute; top:6%; left:8%; width:120px; height:30px; background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 8px, #7a5c3a 8px, #7a5c3a 16px, #5a3a2a 16px, #5a3a2a 24px); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-defence-of-streams-fortresses-role .fortress-model { position:absolute; bottom:28%; left:38%; width:80px; height:70px; background: linear-gradient(180deg, #8a6e50 0%, #6a4e32 100%); clip-path: polygon(0% 100%, 10% 70%, 20% 70%, 20% 40%, 30% 40%, 30% 20%, 40% 20%, 40% 0%, 60% 0%, 60% 20%, 70% 20%, 70% 40%, 80% 40%, 80% 70%, 90% 70%, 100% 100%); animation: si3-fortress 12s ease-in-out infinite alternate; }
.scn-defence-of-streams-fortresses-role .candle { position:absolute; bottom:40%; right:20%; width:8px; height:26px; background: linear-gradient(180deg, #f0ce80 0%, #c0944a 100%); border-radius:2px; }
.scn-defence-of-streams-fortresses-role .glow { position:absolute; bottom:42%; right:20%; width:34px; height:34px; background: radial-gradient(circle, #ffd570 0%, #f0b040 40%, transparent 70%); border-radius:50%; animation: si3-glow 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-fortresses-role .window { position:absolute; top:6%; left:60%; width:70px; height:90px; border:5px solid #7a5c3a; background: linear-gradient(180deg, #efe3ce 0%, #dacbb0 100%); border-radius:4px; }
.scn-defence-of-streams-fortresses-role .map { position:absolute; bottom:36%; right:8%; width:100px; height:60px; background: linear-gradient(135deg, #edddb8 0%, #dcc99e 100%); border-radius:3px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
@keyframes si3-fortress { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-3px); } 100% { transform: scale(1) translateY(0); } }
@keyframes si3-glow { 0% { opacity:.6; transform:scale(.8); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }

.scn-defence-of-streams-role-in-campaign {
  background: linear-gradient(180deg, #d0be9d 0%, #b19472 40%, #8c7355 100%), radial-gradient(circle at 50% 30%, #e2d2b8 0%, transparent 70%);
}
.scn-defence-of-streams-role-in-campaign .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0a57a 0%, #a08560 100%); }
.scn-defence-of-streams-role-in-campaign .map-large { position:absolute; top:6%; left:10%; right:10%; bottom:35%; background: linear-gradient(135deg, #e9dabf 0%, #d7c3a0 50%, #c0a880 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-defence-of-streams-role-in-campaign .pins { position:absolute; top:15%; left:20%; width:4px; height:14px; background: #b06030; border-radius:2px; box-shadow: 0 0 4px #b06030; animation: si4-pin 8s ease-in-out infinite; }
.scn-defence-of-streams-role-in-campaign .figure-profile { position:absolute; bottom:30%; left:15%; width:22px; height:48px; background: linear-gradient(180deg, #3a3028 0%, #1f1814 100%); border-radius:60% 40% 40% 60% / 60% 50% 50% 40%; transform-origin: bottom center; animation: si4-figure 7s ease-in-out infinite; }
.scn-defence-of-streams-role-in-campaign .candle { position:absolute; bottom:32%; left:45%; width:8px; height:28px; background: linear-gradient(180deg, #f0ce80 0%, #c0944a 100%); border-radius:2px; }
.scn-defence-of-streams-role-in-campaign .glow { position:absolute; bottom:34%; left:45%; width:36px; height:36px; background: radial-gradient(circle, #ffd570 0%, #f0b040 40%, transparent 70%); border-radius:50%; animation: si4-glow 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-role-in-campaign .window { position:absolute; top:8%; right:6%; width:70px; height:90px; border:5px solid #7a5c3a; background: linear-gradient(180deg, #f0e5d0 0%, #ddccb2 100%); border-radius:4px; }
.scn-defence-of-streams-role-in-campaign .table { position:absolute; bottom:20%; left:30%; right:20%; height:30px; background: linear-gradient(180deg, #6d523a 0%, #543e28 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
@keyframes si4-pin { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes si4-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes si4-glow { 0% { opacity:.7; transform:scale(.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(.9); } }

.scn-brief-memoir-brandt-theology-opinion {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a20 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%);
}
.scn-brief-memoir-brandt-theology-opinion .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1c14 0%, #3a2820 50%, #1a0e08 100%);
  border-radius: 0 0 20% 20%;
  animation: bto-wall 12s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-theology-opinion .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-brief-memoir-brandt-theology-opinion .book {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #5e3a28, #3a2014);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.5);
  animation: bto-book 6s ease-in-out infinite;
}
.scn-brief-memoir-brandt-theology-opinion .figure-bt {
  position: absolute; bottom: 22%; left: 22%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1a1210, #0e0a08);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bto-figure1 4s ease-in-out infinite;
}
.scn-brief-memoir-brandt-theology-opinion .figure-cw {
  position: absolute; bottom: 22%; right: 22%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #181210, #0c0806);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bto-figure2 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-theology-opinion .candle {
  position: absolute; bottom: 24%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c8a060, #a08040);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,96,.5), 0 0 40px 16px rgba(200,160,96,.2);
  transform: translateX(-50%);
  animation: bto-candle 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-theology-opinion .shadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: bto-shadow 8s ease-in-out infinite;
}
@keyframes bto-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bto-book { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } }
@keyframes bto-figure1 { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-1px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bto-figure2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes bto-candle { 0% { opacity: .8; box-shadow: 0 0 15px 6px rgba(200,160,96,.4) } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,160,96,.6) } 100% { opacity: .85; box-shadow: 0 0 20px 8px rgba(200,160,96,.5) } }
@keyframes bto-shadow { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }

.scn-brief-memoir-clausewitz-judgment {
  background: linear-gradient(180deg, #1c1412 0%, #2a1e18 40%, #3a2a20 100%), radial-gradient(ellipse at 50% 30%, #4a3220 0%, transparent 70%);
}
.scn-brief-memoir-clausewitz-judgment .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a1c14, #38241c);
  border-radius: 0 0 30% 30%;
  animation: cj-room 14s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-judgment .desk-cj {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #503828, #2a1a10);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.6);
}
.scn-brief-memoir-clausewitz-judgment .chair {
  position: absolute; bottom: 10%; left: 38%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #3a281c, #1a0e08);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: cj-chair 6s ease-in-out infinite;
}
.scn-brief-memoir-clausewitz-judgment .figure-cj {
  position: absolute; bottom: 18%; left: 42%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #181210, #0c0806);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cj-figure 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-judgment .map-scroll {
  position: absolute; bottom: 18%; left: 20%; width: 15%; height: 12%;
  background: linear-gradient(135deg, #c8b080, #a08860);
  border-radius: 20% 10% 10% 20%;
  transform: rotate(8deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: cj-scroll 10s ease-in-out infinite;
}
.scn-brief-memoir-clausewitz-judgment .lamp {
  position: absolute; bottom: 26%; right: 28%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e0b870, #c08850);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 12px rgba(224,184,112,.5), 0 0 60px 20px rgba(224,184,112,.2);
  animation: cj-lamp 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-clausewitz-judgment .inkwell {
  position: absolute; bottom: 18%; left: 60%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #1a1210, #0e0806);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: cj-ink 8s ease-in-out infinite;
}
@keyframes cj-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes cj-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cj-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(-2deg) } 70% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cj-scroll { 0% { opacity: .7; transform: rotate(8deg) } 50% { opacity: .9; transform: rotate(10deg) } 100% { opacity: .7; transform: rotate(8deg) } }
@keyframes cj-lamp { 0% { box-shadow: 0 0 20px 8px rgba(224,184,112,.4); opacity: .85 } 50% { box-shadow: 0 0 40px 16px rgba(224,184,112,.7); opacity: 1 } 100% { box-shadow: 0 0 25px 10px rgba(224,184,112,.5); opacity: .9 } }
@keyframes cj-ink { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

.scn-brief-memoir-brandt-on-clausewitz-abilities {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 20%, #4a3228 0%, transparent 70%);
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .wall-boca {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a1c14, #38281c);
  border-radius: 0 0 20% 20%;
  animation: boca-wall 10s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .table-boca {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #503828, #2a1a10);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .map-boca {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 16%;
  background: linear-gradient(135deg, #d4b890, #b09870);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-2deg);
  box-shadow: 0 6px 18px rgba(0,0,0,.4);
  animation: boca-map 12s ease-in-out infinite;
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .figures-boca.left {
  position: absolute; bottom: 22%; left: 12%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #181210, #0c0806);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: boca-fig1 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .figures-boca.right {
  position: absolute; bottom: 22%; right: 12%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #1a1210, #0e0806);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: boca-fig2 6s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .candle-boca {
  position: absolute; bottom: 24%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0a860, #b08840);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 25px 10px rgba(208,168,96,.5), 0 0 50px 20px rgba(208,168,96,.2);
  transform: translateX(-50%);
  animation: boca-candle 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-clausewitz-abilities .shadow-boca {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.5));
  animation: boca-shadow 9s ease-in-out infinite;
}
@keyframes boca-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes boca-map { 0% { opacity: .7; transform: rotate(-2deg) } 50% { opacity: .9; transform: rotate(0deg) } 100% { opacity: .7; transform: rotate(-2deg) } }
@keyframes boca-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 40% { transform: translateX(3px) rotate(2deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes boca-fig2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes boca-candle { 0% { opacity: .8; box-shadow: 0 0 15px 6px rgba(208,168,96,.4) } 50% { opacity: 1; box-shadow: 0 0 35px 14px rgba(208,168,96,.6) } 100% { opacity: .85; box-shadow: 0 0 20px 8px rgba(208,168,96,.5) } }
@keyframes boca-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .65 } }

.scn-brief-memoir-brandt-on-strategist {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2820 100%), radial-gradient(ellipse at 50% 20%, #4a3228 0%, transparent 70%);
}
.scn-brief-memoir-brandt-on-strategist .bg-str {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1c14, #38241c);
  border-radius: 0 0 25% 25%;
  animation: bstr-bg 13s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-strategist .table-str {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #503828, #2a1a10);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.6);
}
.scn-brief-memoir-brandt-on-strategist .paper-str {
  position: absolute; bottom: 18%; left: 28%; width: 30%; height: 14%;
  background: linear-gradient(135deg, #dcc8a0, #c0a880);
  border-radius: 4px;
  transform: rotate(3deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: bstr-paper 8s ease-in-out infinite;
}
.scn-brief-memoir-brandt-on-strategist .figure-str {
  position: absolute; bottom: 22%; left: 40%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #181210, #0c0806);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bstr-figure 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-strategist .chair-str {
  position: absolute; bottom: 10%; left: 36%; width: 18%; height: 26%;
  background: linear-gradient(180deg, #3a281c, #1a0e08);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bstr-chair 7s ease-in-out infinite;
}
.scn-brief-memoir-brandt-on-strategist .lamp-str {
  position: absolute; bottom: 26%; right: 20%; width: 8px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #d8b060, #b08840);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 28px 10px rgba(216,176,96,.5), 0 0 56px 18px rgba(216,176,96,.2);
  animation: bstr-lamp 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-brandt-on-strategist .shadow-str {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.5));
  animation: bstr-shadow 10s ease-in-out infinite;
}
@keyframes bstr-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bstr-paper { 0% { opacity: .7; transform: rotate(3deg) } 50% { opacity: .9; transform: rotate(5deg) } 100% { opacity: .7; transform: rotate(3deg) } }
@keyframes bstr-figure { 0% { transform: translateX(0) rotate(-1deg) } 35% { transform: translateX(2px) rotate(2deg) } 70% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bstr-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bstr-lamp { 0% { box-shadow: 0 0 20px 8px rgba(216,176,96,.4); opacity: .85 } 50% { box-shadow: 0 0 40px 16px rgba(216,176,96,.7); opacity: 1 } 100% { box-shadow: 0 0 25px 10px rgba(216,176,96,.5); opacity: .9 } }
@keyframes bstr-shadow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .65 } }

.scn-civilised-wars-less-cruel {
  background:
    linear-gradient(180deg, #2b1e14 0%, #3d2a1c 40%, #4a3422 100%),
    radial-gradient(ellipse at 50% 100%, #4a3422 0%, transparent 70%);
}
.scn-civilised-wars-less-cruel .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1510 0%, #2b1e14 100%);
  animation: cwc-wall 20s ease-in-out infinite alternate;
}
.scn-civilised-wars-less-cruel .desk {
  position: absolute; bottom: 10%; left: 38%; width: 45%; height: 25%;
  background: linear-gradient(180deg, #5e3f2b 0%, #3d2a1c 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  animation: cwc-desk 8s ease-in-out infinite alternate;
}
.scn-civilised-wars-less-cruel .book {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 16%;
  background: linear-gradient(135deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 8% 8%; transform: rotate(-4deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: cwc-book 6s ease-in-out infinite;
}
.scn-civilised-wars-less-cruel .globe {
  position: absolute; bottom: 18%; left: 52%; width: 14%; height: 20%;
  background: radial-gradient(circle at 40% 35%, #6b6b4b 0%, #3a3a2a 40%, #2a2a1a 100%);
  border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cwc-globe 15s ease-in-out infinite alternate;
}
.scn-civilised-wars-less-cruel .candle {
  position: absolute; bottom: 25%; left: 42%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e8c080 0%, #a06840 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px #d09050;
  animation: cwc-candle 3s ease-in-out infinite alternate;
}
.scn-civilised-wars-less-cruel .window-sill {
  position: absolute; top: 40%; left: 70%; width: 18%; height: 30%;
  background: linear-gradient(90deg, #2a1e14 0%, #3a2a1c 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: cwc-sill 12s ease-in-out infinite;
}
.scn-civilised-wars-less-cruel .window-light {
  position: absolute; top: 38%; left: 72%; width: 14%; height: 26%;
  background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 100%);
  filter: blur(6px); animation: cwc-light 4s ease-in-out infinite alternate;
}
@keyframes cwc-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cwc-desk { 0% { transform: translateX(0) } 50% { transform: translateX(2%) scale(1.01) } 100% { transform: translateX(0) } }
@keyframes cwc-book { 0%,100% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3%) } }
@keyframes cwc-globe { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes cwc-candle { 0% { opacity: 0.7; box-shadow: 0 0 14px 4px #d09050 } 50% { opacity: 1; box-shadow: 0 0 28px 8px #f0b070 } 100% { opacity: 0.8; box-shadow: 0 0 18px 5px #d09050 } }
@keyframes cwc-sill { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cwc-light { 0% { opacity: 0.3; filter: blur(4px) } 50% { opacity: 0.5; filter: blur(8px) } 100% { opacity: 0.4; filter: blur(5px) } }

.scn-two-motives-to-war {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a6e 0%, transparent 70%);
}
.scn-two-motives-to-war .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2240 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0; animation: tmw-floor 15s ease-in-out infinite alternate;
}
.scn-two-motives-to-war .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 40%, #3a2a54 0%, #1a1a32 100%);
  animation: tmw-backdrop 20s ease-in-out infinite;
}
.scn-two-motives-to-war .table {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1e 100%);
  border-radius: 6%; box-shadow: 0 4px 16px rgba(0,0,0,0.6);
  animation: tmw-table 10s ease-in-out infinite alternate;
}
.scn-two-motives-to-war .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tmw-figure-left 6s ease-in-out infinite;
}
.scn-two-motives-to-war .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a2a44 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tmw-figure-right 6s ease-in-out infinite reverse;
}
.scn-two-motives-to-war .overhead-light {
  position: absolute; top: 8%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle, #c09860 0%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: tmw-light 3s ease-in-out infinite alternate;
}
.scn-two-motives-to-war .shadow-pool {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: tmw-shadow 8s ease-in-out infinite alternate;
}
@keyframes tmw-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tmw-backdrop { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes tmw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3%) } 100% { transform: translateY(0) } }
@keyframes tmw-figure-left { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2%) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tmw-figure-right { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2%) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tmw-light { 0% { opacity: 0.5; filter: blur(4px) } 50% { opacity: 0.8; filter: blur(2px) } 100% { opacity: 0.6; filter: blur(5px) } }
@keyframes tmw-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }

.scn-fallacy-algebraic-action {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%);
}
.scn-fallacy-algebraic-action .study-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1c1410 0%, #2a1e18 50%, #1c1410 100%);
  animation: faa-wall 18s ease-in-out infinite alternate;
}
.scn-fallacy-algebraic-action .writing-desk {
  position: absolute; bottom: 8%; left: 28%; width: 44%; height: 22%;
  background: linear-gradient(180deg, #5e3f2b 0%, #3d2a1c 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: faa-desk 12s ease-in-out infinite;
}
.scn-fallacy-algebraic-action .paper-sheet {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #d0c4a0 0%, #b8a88a 100%);
  border-radius: 2%; transform: rotate(2deg);
  box-shadow: 1px 1px 6px rgba(0,0,0,0.4);
  animation: faa-paper 8s ease-in-out infinite alternate;
}
.scn-fallacy-algebraic-action .inkwell {
  position: absolute; bottom: 16%; left: 54%; width: 6%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: faa-inkwell 5s ease-in-out infinite;
}
.scn-fallacy-algebraic-action .quill {
  position: absolute; bottom: 18%; left: 52%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #b8a06a 0%, #6a5040 100%);
  border-radius: 40% 40% 10% 10%; transform: rotate(30deg);
  transform-origin: bottom center; animation: faa-quill 2s ease-in-out infinite alternate;
}
.scn-fallacy-algebraic-action .scholar-silhouette {
  position: absolute; bottom: 12%; left: 30%; width: 16%; height: 48%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: faa-scholar 4s ease-in-out infinite;
}
.scn-fallacy-algebraic-action .candle-glow {
  position: absolute; bottom: 24%; left: 42%; width: 6%; height: 8%;
  background: radial-gradient(circle, #e0a060 0%, #c08040 40%, transparent 100%);
  filter: blur(4px); animation: faa-candle 3s ease-in-out infinite alternate;
}
@keyframes faa-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes faa-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(0) } }
@keyframes faa-paper { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.01) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes faa-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(0) } }
@keyframes faa-quill { 0% { transform: rotate(30deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(28deg) } }
@keyframes faa-scholar { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1%) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes faa-candle { 0% { opacity: 0.6; filter: blur(4px) } 50% { opacity: 1; filter: blur(2px) } 100% { opacity: 0.7; filter: blur(5px) } }

.scn-theory-drift-until-last-war {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a2444 30%, #3c345c 100%),
    radial-gradient(ellipse at 70% 90%, #3c345c 0%, transparent 70%);
}
.scn-theory-drift-until-last-war .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1630 0%, #2a2440 100%);
  animation: tdl-bg 20s ease-in-out infinite alternate;
}
.scn-theory-drift-until-last-war .window-frame {
  position: absolute; top: 24%; left: 60%; width: 28%; height: 50%;
  background: linear-gradient(90deg, #3a2a1e 0%, #2a1e14 100%);
  border-radius: 6%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: tdl-frame 14s ease-in-out infinite;
}
.scn-theory-drift-until-last-war .outside-sky {
  position: absolute; top: 26%; left: 62%; width: 24%; height: 44%;
  background: linear-gradient(180deg, #4a406a 0%, #3a3060 60%, #2a2650 100%);
  border-radius: 4%; animation: tdl-sky 25s linear infinite alternate;
}
.scn-theory-drift-until-last-war .drifting-clouds {
  position: absolute; top: 30%; left: 58%; width: 20%; height: 10%;
  background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%);
  filter: blur(8px); border-radius: 50%;
  animation: tdl-clouds 40s linear infinite;
}
.scn-theory-drift-until-last-war .scholar-at-window {
  position: absolute; bottom: 18%; left: 58%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1828 0%, #0a0818 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: tdl-scholar 6s ease-in-out infinite;
}
.scn-theory-drift-until-last-war .lantern-hanging {
  position: absolute; top: 30%; left: 56%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 10%; animation: tdl-lantern 5s ease-in-out infinite;
}
.scn-theory-drift-until-last-war .lantern-light {
  position: absolute; top: 32%; left: 55%; width: 8%; height: 12%;
  background: radial-gradient(circle, #d09850 0%, transparent 100%);
  filter: blur(6px); animation: tdl-light 3s ease-in-out infinite alternate;
}
@keyframes tdl-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tdl-frame { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes tdl-sky { 0% { background-position: 0% 0% } 50% { background-position: 50% 10% } 100% { background-position: 100% 0% } }
@keyframes tdl-clouds { 0% { transform: translateX(-20px) } 100% { transform: translateX(120%) } }
@keyframes tdl-scholar { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1%) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tdl-lantern { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes tdl-light { 0% { opacity: 0.5; filter: blur(4px) } 50% { opacity: 0.8; filter: blur(8px) } 100% { opacity: 0.6; filter: blur(5px) } }

.scn-defence-mountains-line-question {
  background: 
    linear-gradient(180deg, #f4ecd8 0%, #e8dcc4 40%, #d4c8a8 100%),
    radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 60%);
}
.scn-defence-mountains-line-question .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8dbbf 0%, #d9cba8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
  animation: dmlq-wall 30s ease-in-out infinite;
}
.scn-defence-mountains-line-question .window {
  position: absolute; top: 8%; right: 10%; width: 120px; height: 150px;
  background: linear-gradient(135deg, #a8d8ea 0%, #cce8f0 60%, #e0f0f8 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 0 20px rgba(200,230,255,0.5);
  animation: dmlq-window 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-question .desk {
  position: absolute; bottom: 12%; left: 15%; width: 180px; height: 70px;
  background: linear-gradient(180deg, #b89a6a 0%, #8b6f44 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.scn-defence-mountains-line-question .lamp {
  position: absolute; bottom: 38%; left: 28%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%);
  border-radius: 6px 6px 2px 2px;
}
.scn-defence-mountains-line-question .lamp::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 22px; height: 14px;
  background: radial-gradient(circle, #fce8a0 0%, #e8c86a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(252,232,160,0.5);
  animation: dmlq-lamp 5s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-question .paper {
  position: absolute; bottom: 28%; left: 22%; width: 50px; height: 38px;
  background: linear-gradient(135deg, #f0e6d0 0%, #e0d0b0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
  animation: dmlq-paper 12s ease-in-out infinite;
}
.scn-defence-mountains-line-question .figure {
  position: absolute; bottom: 8%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmlq-figure 6s ease-in-out infinite;
}
@keyframes dmlq-wall {
  0% { opacity:0.95; transform:scale(1); }
  50% { opacity:1; transform:scale(1.005); }
  100% { opacity:0.96; transform:scale(1); }
}
@keyframes dmlq-window {
  0% { filter: brightness(0.9); box-shadow: inset 0 0 10px rgba(200,230,255,0.3); }
  50% { filter: brightness(1.1); box-shadow: inset 0 0 30px rgba(200,230,255,0.7); }
  100% { filter: brightness(0.95); box-shadow: inset 0 0 15px rgba(200,230,255,0.4); }
}
@keyframes dmlq-lamp {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.08); opacity:1; }
  100% { transform: scale(0.98); opacity:0.85; }
}
@keyframes dmlq-paper {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes dmlq-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-defence-mountains-flank-support-illusion {
  background: 
    linear-gradient(135deg, #c8d8e8 0%, #a8bcd0 50%, #8a9bb0 100%),
    radial-gradient(ellipse at 30% 80%, #d0e0f0 0%, transparent 70%);
}
.scn-defence-mountains-flank-support-illusion .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b0c4d4 0%, #8a9bb0 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
  animation: dmfs-wall 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-flank-support-illusion .window-bright {
  position: absolute; top: 5%; left: 5%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #e0f0ff 0%, #c0d8f0 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.4);
  animation: dmfs-window 3s ease-in-out infinite;
}
.scn-defence-mountains-flank-support-illusion .table-map {
  position: absolute; bottom: 15%; left: 10%; width: 160px; height: 70px;
  background: linear-gradient(180deg, #c4a878 0%, #a08858 100%);
  border-radius: 6px;
  transform: skewX(-3deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}
.scn-defence-mountains-flank-support-illusion .flags {
  position: absolute; bottom: 30%; left: 25%; width: 4px; height: 30px;
  background: #705a3a;
  border-radius: 1px;
  box-shadow: 12px -10px 0 -2px #c8553d, 24px -5px 0 -2px #6a8b4a;
  animation: dmfs-flags 4s ease-in-out infinite;
}
.scn-defence-mountains-flank-support-illusion .figure-tense {
  position: absolute; bottom: 8%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmfs-figure 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-flank-support-illusion .shadow-sharp {
  position: absolute; bottom: 0; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.25) 0%, transparent 80%);
  animation: dmfs-shadow 3s ease-in-out infinite alternate;
}
@keyframes dmfs-wall {
  0% { transform: scale(1); filter: brightness(0.9); }
  100% { transform: scale(1.01); filter: brightness(1); }
}
@keyframes dmfs-window {
  0% { filter: brightness(0.8) blur(0); }
  33% { filter: brightness(1.3) blur(0.5px); }
  66% { filter: brightness(0.9) blur(0); }
  100% { filter: brightness(1.1) blur(0.2px); }
}
@keyframes dmfs-flags {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dmfs-figure {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(5px) rotate(2deg); }
}
@keyframes dmfs-shadow {
  0% { width: 80px; opacity:0.8; }
  100% { width: 95px; opacity:1; }
}

.scn-defence-mountains-line-conditions-not-met {
  background: 
    linear-gradient(180deg, #c8b898 0%, #b0a080 40%, #908060 100%),
    radial-gradient(ellipse at 50% 30%, #d8c8a8 0%, transparent 70%);
}
.scn-defence-mountains-line-conditions-not-met .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0;
  animation: dmlc-floor 15s ease-in-out infinite;
}
.scn-defence-mountains-line-conditions-not-met .table-angled {
  position: absolute; bottom: 20%; left: 10%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #9a7a4a 0%, #7a5a2a 100%);
  border-radius: 4px;
  transform: rotate(-2deg) skewX(2deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-defence-mountains-line-conditions-not-met .model-posts {
  position: absolute; bottom: 32%; left: 20%; width: 80px; height: 8px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 4px, transparent 4px, transparent 8px);
  border-radius: 1px;
  animation: dmlc-posts 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-conditions-not-met .figure-pointing {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmlc-figure 3s ease-in-out infinite;
}
.scn-defence-mountains-line-conditions-not-met .figure-pointing::after {
  content: ''; position: absolute; top: 10px; left: 8px;
  width: 12px; height: 4px;
  background: #2a2a1a;
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: dmlc-point 1.5s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-conditions-not-met .lantern-swing {
  position: absolute; top: 15%; left: 50%; width: 6px; height: 6px;
  background: #f0c868;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #f0c868, 0 0 40px 10px rgba(240,200,104,0.4);
  animation: dmlc-lantern 4s ease-in-out infinite;
}
.scn-defence-mountains-line-conditions-not-met .paper-strewn {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #e8d8b8 0%, #d8c8a0 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.1);
  animation: dmlc-paper 10s ease-in-out infinite;
}
@keyframes dmlc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dmlc-posts {
  0% { opacity:0.7; transform: scaleY(1); }
  100% { opacity:1; transform: scaleY(1.2); }
}
@keyframes dmlc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmlc-point {
  0% { transform: rotate(20deg); }
  100% { transform: rotate(40deg); }
}
@keyframes dmlc-lantern {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(4deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmlc-paper {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

.scn-defence-mountains-relative-increases-not-with-mass {
  background: 
    linear-gradient(135deg, #e8dcc8 0%, #d0c4ac 50%, #b8ac94 100%),
    radial-gradient(ellipse at 40% 60%, #f0e8d8 0%, transparent 70%);
}
.scn-defence-mountains-relative-increases-not-with-mass .wall-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8ccb8 0%, #c8bca8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.06);
  animation: dmri-wall 25s ease-in-out infinite;
}
.scn-defence-mountains-relative-increases-not-with-mass .window-soft {
  position: absolute; top: 5%; right: 8%; width: 100px; height: 130px;
  background: linear-gradient(135deg, #d0e8f0 0%, #e0f0f8 80%);
  border-radius: 4px;
  opacity: 0.7;
  box-shadow: inset 0 0 20px rgba(200,230,255,0.3);
  animation: dmri-window 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-relative-increases-not-with-mass .desk-low {
  position: absolute; bottom: 10%; left: 12%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}
.scn-defence-mountains-relative-increases-not-with-mass .lamp-glow {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
}
.scn-defence-mountains-relative-increases-not-with-mass .lamp-glow::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 16px; height: 12px;
  background: radial-gradient(circle, #fce8a0 0%, #e8c86a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(252,232,160,0.4);
  animation: dmri-lamp 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-relative-increases-not-with-mass .chair {
  position: absolute; bottom: 10%; left: 55%; width: 30px; height: 34px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 2% 2%;
  transform-origin: bottom center;
  animation: dmri-chair 9s ease-in-out infinite;
}
.scn-defence-mountains-relative-increases-not-with-mass .figure-relaxed {
  position: absolute; bottom: 12%; left: 58%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmri-figure 8s ease-in-out infinite;
}
@keyframes dmri-wall {
  0% { opacity:0.95; transform:scale(1); }
  50% { opacity:1; transform:scale(1.003); }
  100% { opacity:0.96; transform:scale(1); }
}
@keyframes dmri-window {
  0% { filter: brightness(0.85) blur(0); }
  50% { filter: brightness(1.05) blur(0.3px); }
  100% { filter: brightness(0.9) blur(0); }
}
@keyframes dmri-lamp {
  0% { transform: scale(1); opacity:0.7; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.98); opacity:0.75; }
}
@keyframes dmri-chair {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmri-figure {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(3px) rotate(2deg) scale(1.02); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}

.scn-successive-acts-modify-extreme {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0e0e 100%);
}
.scn-successive-acts-modify-extreme .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
  animation: sam-desk 12s ease-in-out infinite alternate;
}
.scn-successive-acts-modify-extreme .candle {
  position:absolute; bottom:38%; left:45%; width:8px; height:20px;
  background: linear-gradient(180deg, #eeddcc 0%, #ccaa88 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: sam-candle 5s ease-in-out infinite;
}
.scn-successive-acts-modify-extreme .flame {
  position:absolute; bottom:56%; left:46%; width:6px; height:12px;
  background: radial-gradient(ellipse, #ffcc66 0%, #ff8800 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #ff8800, 0 0 40px 12px rgba(255,136,0,.4);
  animation: sam-flame 2s ease-in-out infinite alternate;
}
.scn-successive-acts-modify-extreme .books {
  position:absolute; bottom:35%; left:20%; width:40px; height:12px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a3020 50%, #5a3a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: sam-books 8s ease-in-out infinite;
}
.scn-successive-acts-modify-extreme .map {
  position:absolute; bottom:35%; left:55%; width:70px; height:40px;
  background: linear-gradient(135deg, #c8a882 0%, #a08060 50%, #887050 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: sam-map 15s ease-in-out infinite alternate;
}
.scn-successive-acts-modify-extreme .shadow {
  position:absolute; bottom:30%; left:40%; width:30px; height:6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%; animation: sam-shadow 6s ease-in-out infinite alternate;
}
@keyframes sam-desk    { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(-1px) } }
@keyframes sam-candle  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sam-flame   { 0% { transform: translateY(0) scale(1); opacity:.9 } 50% { transform: translateY(-2px) scale(1.1); opacity:1 } 100% { transform: translateY(1px) scale(.95); opacity:.85 } }
@keyframes sam-books   { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sam-map     { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes sam-shadow  { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(0.9) } }

.scn-real-world-preparation {
  background:
    radial-gradient(ellipse at 30% 60%, #2a1a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1220 0%, #2a1a20 50%, #1a0a10 100%);
}
.scn-real-world-preparation .armor-stand {
  position:absolute; bottom:15%; left:20%; width:50px; height:80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rwp-stand 15s ease-in-out infinite alternate;
}
.scn-real-world-preparation .table {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
  animation: rwp-table 10s ease-in-out infinite alternate;
}
.scn-real-world-preparation .weapon {
  position:absolute; bottom:32%; left:60%; width:6px; height:30px;
  background: linear-gradient(180deg, #887060 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(20deg);
  animation: rwp-weapon 4s ease-in-out infinite;
}
.scn-real-world-preparation .window {
  position:absolute; bottom:30%; right:10%; width:50px; height:60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  animation: rwp-window 20s ease-in-out infinite alternate;
}
.scn-real-world-preparation .curtain {
  position:absolute; bottom:30%; right:8%; width:12px; height:65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; animation: rwp-curtain 8s ease-in-out infinite alternate;
}
.scn-real-world-preparation .shadow {
  position:absolute; bottom:30%; left:60%; width:20px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%; animation: rwp-shadow 6s ease-in-out infinite alternate;
}
@keyframes rwp-stand   { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-0.5deg) translateY(0) } }
@keyframes rwp-table   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(.995) } }
@keyframes rwp-weapon  { 0% { transform: rotate(20deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(19deg) } }
@keyframes rwp-window  { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes rwp-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes rwp-shadow  { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(.8) } }

.scn-forces-not-all-at-once {
  background:
    radial-gradient(ellipse at 60% 70%, #2a1a2a 0%, transparent 60%),
    linear-gradient(180deg, #1a1220 0%, #2a1a2a 50%, #0e0e1a 100%);
}
.scn-forces-not-all-at-once .table {
  position:absolute; bottom:0; left:5%; right:5%; height:28%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.6);
  animation: fna-table 14s ease-in-out infinite alternate;
}
.scn-forces-not-all-at-once .map {
  position:absolute; bottom:28%; left:15%; width:100px; height:60px;
  background: linear-gradient(135deg, #b8a080 0%, #908060 50%, #706040 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: fna-map 20s ease-in-out infinite alternate;
}
.scn-forces-not-all-at-once .token-a {
  position:absolute; bottom:42%; left:30%; width:12px; height:12px;
  background: radial-gradient(circle, #c8553d 0%, #8a3a2a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(200,85,61,.5);
  animation: fna-token-a 8s ease-in-out infinite;
}
.scn-forces-not-all-at-once .token-b {
  position:absolute; bottom:42%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(90,122,74,.5);
  animation: fna-token-b 10s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-forces-not-all-at-once .token-c {
  position:absolute; bottom:42%; left:60%; width:12px; height:12px;
  background: radial-gradient(circle, #6a5a8a 0%, #4a3a6a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(106,90,138,.5);
  animation: fna-token-c 12s ease-in-out infinite;
  animation-delay: -6s;
}
.scn-forces-not-all-at-once .lamp {
  position:absolute; bottom:38%; left:80%; width:8px; height:16px;
  background: linear-gradient(180deg, #eeddcc 0%, #ccaa88 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(238,221,204,.3);
  animation: fna-lamp 5s ease-in-out infinite alternate;
}
.scn-forces-not-all-at-once .chair {
  position:absolute; bottom:0; left:70%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: fna-chair 16s ease-in-out infinite alternate;
}
@keyframes fna-table   { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(-1px) } }
@keyframes fna-map     { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(-0.5deg) scale(.99) } }
@keyframes fna-token-a { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fna-token-b { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fna-token-c { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fna-lamp    { 0% { opacity:.8; box-shadow: 0 0 10px 2px rgba(238,221,204,.2) } 50% { opacity:1; box-shadow: 0 0 16px 6px rgba(238,221,204,.4) } 100% { opacity:.85; box-shadow: 0 0 12px 3px rgba(238,221,204,.3) } }
@keyframes fna-chair   { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }

.scn-country-as-source-and-theatre {
  background:
    radial-gradient(ellipse at 40% 50%, #1a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #0e1a0e 0%, #1a2a1a 50%, #0a0e0a 100%);
}
.scn-country-as-source-and-theatre .terrain {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
  animation: cst-terrain 18s ease-in-out infinite alternate;
}
.scn-country-as-source-and-theatre .mountains {
  position:absolute; bottom:35%; left:10%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 0 0; clip-path: polygon(0% 100%, 30% 0%, 60% 40%, 100% 0%, 100% 100%);
  animation: cst-mountains 25s ease-in-out infinite alternate;
}
.scn-country-as-source-and-theatre .trees {
  position:absolute; bottom:38%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle at 50% 60%, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(74,106,58,.5);
  animation: cst-trees 12s ease-in-out infinite;
}
.scn-country-as-source-and-theatre .populace {
  position:absolute; bottom:42%; left:62%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: cst-populace 20s ease-in-out infinite alternate;
}
.scn-country-as-source-and-theatre .lamp {
  position:absolute; bottom:45%; left:20%; width:8px; height:14px;
  background: linear-gradient(180deg, #eeddcc 0%, #ccaa88 100%);
  border-radius: 2px; box-shadow: 0 0 16px 4px rgba(238,221,204,.3);
  animation: cst-lamp 6s ease-in-out infinite alternate;
}
.scn-country-as-source-and-theatre .shadow {
  position:absolute; bottom:38%; left:30%; width:40px; height:6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%; animation: cst-shadow 8s ease-in-out infinite alternate;
}
@keyframes cst-terrain    { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(.99) translateY(0) } }
@keyframes cst-mountains  { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } 100% { transform: translateX(-1px) scale(.98) } }
@keyframes cst-trees       { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes cst-populace   { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(.9) } }
@keyframes cst-lamp       { 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(238,221,204,.2) } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(238,221,204,.5) } 100% { opacity:.8; box-shadow: 0 0 14px 3px rgba(238,221,204,.3) } }
@keyframes cst-shadow     { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(.8) } }

.scn-political-object-standard-effort {
  background: linear-gradient(180deg, #2a2420 0%, #1f1a17 40%, #2a2018 100%), radial-gradient(ellipse at 50% 60%, #3a2e26 0%, #1f1a17 70%, transparent 100%);
  position: relative;
  overflow: hidden;
}
.scn-political-object-standard-effort .room-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1f1a17 0%, #2a2420 60%, #1a1512 100%);
  animation: pol-room 20s ease-in-out infinite alternate;
}
.scn-political-object-standard-effort .desk {
  position: absolute;
  bottom: 10%;
  left: 10%;
  right: 10%;
  height: 20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 40%, #2a1e14 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-political-object-standard-effort .lamp-base {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  animation: pol-lamp 6s ease-in-out infinite;
}
.scn-political-object-standard-effort .lamp-glow {
  position: absolute;
  bottom: 30%;
  left: 13%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: pol-glow 4s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(192,128,48,0.3);
}
.scn-political-object-standard-effort .book-stack {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 30px;
  height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pol-book 8s ease-in-out infinite;
}
.scn-political-object-standard-effort .paper {
  position: absolute;
  bottom: 22%;
  left: 52%;
  width: 40px;
  height: 28px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%);
  border-radius: 1px;
  transform-origin: left center;
  animation: pol-paper 12s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-political-object-standard-effort .inkwell {
  position: absolute;
  bottom: 18%;
  left: 32%;
  width: 16px;
  height: 14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes pol-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pol-lamp {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes pol-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes pol-book {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pol-paper {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(1deg); }
  66% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}

.scn-military-aim-equivalent {
  background: linear-gradient(180deg, #1e1a17 0%, #2a2420 40%, #1a1512 100%), radial-gradient(ellipse at 50% 80%, #2a2a20 0%, #1a1512 70%, transparent 100%);
  position: relative;
  overflow: hidden;
}
.scn-military-aim-equivalent .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1512 0%, #2a2420 50%, #1e1a17 100%);
  animation: mil-room 18s ease-in-out infinite alternate;
}
.scn-military-aim-equivalent .map-table {
  position: absolute;
  bottom: 12%;
  left: 8%;
  right: 8%;
  height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1e12 100%);
  border-radius: 8px 8px 0 0;
  transform: perspective(500px) rotateX(8deg);
  box-shadow: 0 -6px 16px rgba(0,0,0,0.6);
}
.scn-military-aim-equivalent .overhead-light {
  position: absolute;
  top: 4%;
  left: 50%;
  width: 14px;
  height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09870 0%, #705840 100%);
  border-radius: 50% 50% 10% 10%;
  animation: mil-light 8s ease-in-out infinite alternate;
}
.scn-military-aim-equivalent .light-cone {
  position: absolute;
  top: 8%;
  left: 30%;
  right: 30%;
  bottom: 30%;
  background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%);
  animation: mil-cone 6s ease-in-out infinite alternate;
}
.scn-military-aim-equivalent .figure-left {
  position: absolute;
  bottom: 20%;
  left: 18%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1512 40%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mil-figure-left 10s ease-in-out infinite;
}
.scn-military-aim-equivalent .figure-right {
  position: absolute;
  bottom: 20%;
  right: 18%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1512 40%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mil-figure-right 10s ease-in-out infinite;
}
.scn-military-aim-equivalent .map-detail {
  position: absolute;
  bottom: 20%;
  left: 35%;
  right: 35%;
  height: 4px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 2px;
  animation: mil-map 14s ease-in-out infinite alternate;
}
@keyframes mil-room {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mil-light {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes mil-cone {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.35; }
}
@keyframes mil-figure-left {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes mil-figure-right {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes mil-map {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.05); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

.scn-wars-of-all-degrees {
  background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3a 40%, #1a1e2a 100%), radial-gradient(ellipse at 50% 100%, #2a2e3a 0%, #1a1e2a 70%, transparent 100%);
  position: relative;
  overflow: hidden;
}
.scn-wars-of-all-degrees .horizon-sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2e4a 0%, #1a1e2a 50%, #2a2e3a 100%);
  animation: war-sky 25s ease-in-out infinite alternate;
}
.scn-wars-of-all-degrees .distant-wall {
  position: absolute;
  bottom: 30%;
  left: 15%;
  right: 15%;
  height: 18%;
  background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 50%, #1a1a1e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: war-wall 30s ease-in-out infinite alternate;
}
.scn-wars-of-all-degrees .wall-shadow {
  position: absolute;
  bottom: 25%;
  left: 10%;
  right: 20%;
  height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: war-shadow 20s ease-in-out infinite alternate;
}
.scn-wars-of-all-degrees .lantern-pole {
  position: absolute;
  bottom: 18%;
  left: 22%;
  width: 6px;
  height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-wars-of-all-degrees .lantern-glow {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: war-lantern 5s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(192,128,48,0.3);
}
.scn-wars-of-all-degrees .cloud-drift {
  position: absolute;
  top: 12%;
  left: -10%;
  width: 120px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(200,200,220,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: war-cloud-a 40s linear infinite;
}
.scn-wars-of-all-degrees .cloud-drift-2 {
  position: absolute;
  top: 22%;
  right: -10%;
  width: 100px;
  height: 16px;
  background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, rgba(200,200,220,0.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: war-cloud-b 50s linear infinite reverse;
}
@keyframes war-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes war-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes war-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.05); }
  100% { opacity: 0.35; transform: scaleX(1); }
}
@keyframes war-lantern {
  0% { opacity: 0.35; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes war-cloud-a {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes war-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-110vw); }
}

.scn-duration-of-transaction {
  background: linear-gradient(180deg, #1f1a17 0%, #2a2420 40%, #1a1512 100%), radial-gradient(ellipse at 50% 40%, #3a2e26 0%, #1f1a17 70%, transparent 100%);
  position: relative;
  overflow: hidden;
}
.scn-duration-of-transaction .hourglass-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1512 0%, #2a2420 50%, #1e1a17 100%);
  animation: dur-bg 22s ease-in-out infinite alternate;
}
.scn-duration-of-transaction .hourglass-frame {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 50px;
  height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 30% 30% 30% 30% / 20% 20% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-duration-of-transaction .sand-upper {
  position: absolute;
  top: 22%;
  left: 50%;
  width: 36px;
  height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a870 0%, #a88850 100%);
  border-radius: 40% 40% 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: dur-sand-top 4s ease-in-out infinite;
}
.scn-duration-of-transaction .sand-lower {
  position: absolute;
  top: 62%;
  left: 50%;
  width: 36px;
  height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a88850 0%, #c8a870 100%);
  border-radius: 20% 20% 40% 40%;
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: dur-sand-bottom 4s ease-in-out infinite;
}
.scn-duration-of-transaction .sand-stream {
  position: absolute;
  top: 49%;
  left: 50%;
  width: 4px;
  height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a870 0%, #a88850 100%);
  border-radius: 50%;
  animation: dur-stream 2s ease-in-out infinite;
}
.scn-duration-of-transaction .candle {
  position: absolute;
  bottom: 18%;
  left: 70%;
  width: 14px;
  height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 30%, #c8b898 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-duration-of-transaction .candle-flame {
  position: absolute;
  bottom: 47%;
  left: 70%;
  width: 10px;
  height: 18px;
  transform: translate(50%, 0);
  background: radial-gradient(ellipse at 50% 40%, #f0c060 0%, #e08030 40%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: dur-flame 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 10px rgba(224,128,48,0.4);
}
.scn-duration-of-transaction .wax-drip {
  position: absolute;
  bottom: 20%;
  left: 72%;
  width: 4px;
  height: 12px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: dur-drip 6s ease-in-out infinite;
}
@keyframes dur-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dur-sand-top {
  0%, 100% { opacity: 0.9; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
}
@keyframes dur-sand-bottom {
  0%, 100% { opacity: 0.9; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.05); }
}
@keyframes dur-stream {
  0% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.8); opacity: 0.7; }
}
@keyframes dur-flame {
  0% { transform: translateX(50%) scale(0.9) rotate(-2deg); opacity: 0.8; }
  33% { transform: translateX(50%) scale(1.1) rotate(0deg); opacity: 1; }
  66% { transform: translateX(50%) scale(0.95) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(50%) scale(1) rotate(0deg); opacity: 0.85; }
}
@keyframes dur-drip {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

.scn-all-use-of-knowledge-denied {
  background:
    radial-gradient(ellipse 70% 60% at 30% 80%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #2a1e15 40%, #1f1612 100%);
}
.scn-all-use-of-knowledge-denied .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-all-use-of-knowledge-denied .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1e15 100%);
  border-radius: 4% 4% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-all-use-of-knowledge-denied .lamp {
  position: absolute; bottom: 38%; left: 25%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #c8a060 0%, #8c6e3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 8px #b89840, 0 0 20px 6px rgba(200,160,96,0.3);
}
.scn-all-use-of-knowledge-denied .book {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3220 100%);
  border-radius: 6% 6% 4% 4% / 20% 20% 10% 10%;
  transform: rotate(-6deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: si1-book 6s ease-in-out infinite;
}
.scn-all-use-of-knowledge-denied .figure {
  position: absolute; bottom: 8%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #201a15 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: si1-figure 8s ease-in-out infinite alternate;
}
.scn-all-use-of-knowledge-denied .hand-deny {
  position: absolute; bottom: 42%; left: 48%; width: 10px; height: 16px;
  background: #2a1e15;
  border-radius: 60% 40% 30% 70% / 80% 60% 40% 50%;
  transform: rotate(35deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: si1-hand 4s ease-in-out infinite alternate;
}
.scn-all-use-of-knowledge-denied .shadow-floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #0e0a08 0%, transparent 80%);
  opacity: 0.6;
}
@keyframes si1-book {
  0% { transform: rotate(-6deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(1px); }
}
@keyframes si1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes si1-hand {
  0% { transform: rotate(35deg) scaleY(1); }
  50% { transform: rotate(40deg) scaleY(1.1); }
  100% { transform: rotate(30deg) scaleY(0.95); }
}

.scn-knowledge-suitable-to-position {
  background:
    radial-gradient(ellipse 80% 50% at 50% 90%, #2a1e15 0%, transparent 70%),
    linear-gradient(180deg, #1a1210 0%, #221812 50%, #160e0a 100%);
}
.scn-knowledge-suitable-to-position .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-knowledge-suitable-to-position .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2% 2% 0 0 / 15% 15% 0 0;
  box-shadow: 0 -6px 14px rgba(0,0,0,0.4);
}
.scn-knowledge-suitable-to-position .map {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(90deg, #d4c0a0 0%, #bfaa88 50%, #d4c0a0 100%);
  border-radius: 4% 4% 10% 10% / 20% 20% 30% 30%;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: si2-map 10s ease-in-out infinite alternate;
}
.scn-knowledge-suitable-to-position .commander {
  position: absolute; bottom: 14%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: si2-commander 7s ease-in-out infinite alternate;
}
.scn-knowledge-suitable-to-position .subordinate {
  position: absolute; bottom: 14%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-sub 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-knowledge-suitable-to-position .candle {
  position: absolute; bottom: 30%; left: 70%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8c860 0%, #c8a040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(232,200,96,0.3);
  animation: si2-candle 4s ease-in-out infinite alternate;
}
.scn-knowledge-suitable-to-position .glow {
  position: absolute; bottom: 30%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(232,200,96,0.25) 0%, transparent 70%);
  transform: translate(-12px, -12px);
}
@keyframes si2-map {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(12deg) translateY(-3px); }
  100% { transform: perspective(200px) rotateX(8deg) translateY(2px); }
}
@keyframes si2-commander {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes si2-sub {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(2px) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-1px) rotate(-1deg) scale(0.98); }
}
@keyframes si2-candle {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-3px) scale(1.05); opacity: 1; }
  100% { transform: translateY(1px) scale(0.95); opacity: 0.8; }
}

.scn-knowledge-simple-not-easy {
  background:
    radial-gradient(ellipse 60% 70% at 40% 80%, #2a221a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #241e18 40%, #140e0a 100%);
}
.scn-knowledge-simple-not-easy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.4);
}
.scn-knowledge-simple-not-easy .chair {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 6% 6% 30% 30% / 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-knowledge-simple-not-easy .book-simple {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%;
  transform: rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: si3-book 5s ease-in-out infinite alternate;
}
.scn-knowledge-simple-not-easy .reader {
  position: absolute; bottom: 10%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: si3-reader 8s ease-in-out infinite alternate;
}
.scn-knowledge-simple-not-easy .chain-left {
  position: absolute; bottom: 35%; left: 20%; width: 2px; height: 30px;
  background: #5a4a3a;
  border-radius: 50%;
  transform: rotate(10deg);
  box-shadow: 0 0 2px #2a1a10;
  animation: si3-chain-l 4s ease-in-out infinite alternate;
}
.scn-knowledge-simple-not-easy .chain-right {
  position: absolute; bottom: 35%; right: 20%; width: 2px; height: 30px;
  background: #5a4a3a;
  border-radius: 50%;
  transform: rotate(-10deg);
  box-shadow: 0 0 2px #2a1a10;
  animation: si3-chain-r 4s ease-in-out infinite alternate;
}
.scn-knowledge-simple-not-easy .shadow {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0a0806 0%, transparent 80%);
  opacity: 0.5;
}
@keyframes si3-book {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(4deg) translateY(1px); }
}
@keyframes si3-reader {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes si3-chain-l {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(2px); }
  100% { transform: rotate(8deg) translateY(-1px); }
}
@keyframes si3-chain-r {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(2px); }
  100% { transform: rotate(-8deg) translateY(-1px); }
}

.scn-of-the-nature-of-this-knowledge {
  background:
    radial-gradient(ellipse 70% 60% at 60% 70%, #2a1e15 0%, transparent 70%),
    linear-gradient(180deg, #1a1210 0%, #221818 40%, #140e0a 100%);
}
.scn-of-the-nature-of-this-knowledge .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%);
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.5);
}
.scn-of-the-nature-of-this-knowledge .globe {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 40%, #a08060 0%, #705a40 60%, #4a3828 100%);
  border-radius: 50%;
  box-shadow: -4px 4px 10px rgba(0,0,0,0.5), inset -2px -2px 6px rgba(0,0,0,0.3);
  animation: si4-globe 12s ease-in-out infinite alternate;
}
.scn-of-the-nature-of-this-knowledge .stand {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 20%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e15 100%);
  transform: translateX(-50%);
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.scn-of-the-nature-of-this-knowledge .scroll-left {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #d4b888 0%, #bfa670 100%);
  border-radius: 20% 10% 10% 20% / 40% 20% 20% 40%;
  transform: rotate(-15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: si4-scroll-l 6s ease-in-out infinite alternate;
}
.scn-of-the-nature-of-this-knowledge .scroll-right {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #d4b888 0%, #bfa670 100%);
  border-radius: 10% 20% 20% 10% / 20% 40% 40% 20%;
  transform: rotate(10deg);
  box-shadow: -2px 2px 4px rgba(0,0,0,0.2);
  animation: si4-scroll-r 6s ease-in-out infinite alternate;
}
.scn-of-the-nature-of-this-knowledge .commander {
  position: absolute; bottom: 12%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: si4-commander 5s ease-in-out infinite alternate;
}
.scn-of-the-nature-of-this-knowledge .candle {
  position: absolute; bottom: 32%; left: 68%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8c860 0%, #c8a040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 14px 4px rgba(232,200,96,0.2);
  animation: si4-candle 3s ease-in-out infinite alternate;
}
.scn-of-the-nature-of-this-knowledge .light-halo {
  position: absolute; bottom: 28%; left: 64%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(232,200,96,0.15) 0%, transparent 70%);
  transform: translate(-20px, -20px);
  pointer-events: none;
}
@keyframes si4-globe {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(0.98); }
}
@keyframes si4-scroll-l {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-3px); }
  100% { transform: rotate(-18deg) translateY(2px); }
}
@keyframes si4-scroll-r {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(2px); }
  100% { transform: rotate(13deg) translateY(-2px); }
}
@keyframes si4-commander {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes si4-candle {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-2px) scale(1.03); opacity: 1; }
  100% { transform: translateY(1px) scale(0.97); opacity: 0.85; }
}

/* Scene 1: fourth-class-deep-feelings */
.scn-fourth-class-deep-feelings {
  background: 
    linear-gradient(135deg, #1a0f0a 0%, #2b1a12 40%, #1f1410 100%),
    radial-gradient(ellipse at 30% 70%, #4a2518 0%, transparent 60%);
}
.scn-fourth-class-deep-feelings .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #251610 0%, #1a0e08 100%); opacity:0.8;
}
.scn-fourth-class-deep-feelings .forge {
  position:absolute; bottom:5%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-fourth-class-deep-feelings .embers {
  position:absolute; bottom:10%; left:35%; width:30%; height:20%;
}
.scn-fourth-class-deep-feelings .core {
  background: radial-gradient(circle at 50% 60%, #c8553d 0%, #a0461a 40%, #5e1a1d 80%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,85,61,0.5), 0 0 80px 30px rgba(160,70,26,0.3); animation: s1-pulse 4s ease-in-out infinite alternate;
}
.scn-fourth-class-deep-feelings .glow {
  background: radial-gradient(circle at 50% 60%, rgba(200,85,61,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: s1-glows 4s ease-in-out infinite alternate 0.5s;
}
.scn-fourth-class-deep-feelings .anvil {
  position:absolute; bottom:8%; left:25%; width:15%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-fourth-class-deep-feelings .hammer {
  position:absolute; bottom:12%; left:22%; width:3%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; transform: rotate(20deg); transform-origin: bottom center; animation: s1-hammer 2s ease-in-out infinite;
}
.scn-fourth-class-deep-feelings .spark {
  position:absolute; width:4px; height:4px; background: #f0c0a0; border-radius:50%; filter: blur(1px);
}
.scn-fourth-class-deep-feelings .spark-a {
  bottom:25%; left:30%; animation: s1-spark 2.5s linear infinite;
}
.scn-fourth-class-deep-feelings .spark-b {
  bottom:20%; left:40%; animation: s1-spark 3s linear infinite 0.8s;
}
@keyframes s1-pulse { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes s1-glows { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes s1-hammer { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(25deg) translateY(-2px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(20deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes s1-spark { 0% { opacity:1; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-30px) scale(0.5); } 100% { opacity:0; transform: translateY(-60px) scale(0.2); } }

/* Scene 2: equanimity-still-can-be-lost */
.scn-equanimity-still-can-be-lost {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #121220 60%, #0a0a18 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-equanimity-still-can-be-lost .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1e3a 0%, #141428 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-equanimity-still-can-be-lost .table {
  position:absolute; bottom:22%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-equanimity-still-can-be-lost .scale-arm {
  position:absolute; bottom:30%; left:40%; width:20%; height:2%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10px;
}
.scn-equanimity-still-can-be-lost .left { transform: rotate(-10deg); transform-origin: right center; animation: s2-arm 6s ease-in-out infinite alternate; }
.scn-equanimity-still-can-be-lost .right { transform: rotate(10deg); transform-origin: left center; animation: s2-arm 6s ease-in-out infinite alternate 0.5s; }
.scn-equanimity-still-can-be-lost .scale-pan {
  position:absolute; bottom:28%; width:12%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
}
.scn-equanimity-still-can-be-lost .left-pan { left:28%; animation: s2-pan 3s ease-in-out infinite alternate; }
.scn-equanimity-still-can-be-lost .right-pan { right:28%; animation: s2-pan 3s ease-in-out infinite alternate 1s; }
.scn-equanimity-still-can-be-lost .weight {
  position:absolute; bottom:30%; left:28%; width:8%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: s2-weight 4s ease-in-out infinite alternate;
}
.scn-equanimity-still-can-be-lost .candle {
  position:absolute; bottom:26%; left:45%; width:4%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; 
}
.scn-equanimity-still-can-be-lost .flame {
  position:absolute; bottom:42%; left:46.5%; width:3%; height:5%; background: radial-gradient(circle at 50% 80%, #f0d080 0%, #c88040 60%, transparent 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; box-shadow: 0 0 20px 8px rgba(200,128,64,0.4); animation: s2-flame 2s ease-in-out infinite alternate;
}
@keyframes s2-arm { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes s2-pan { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes s2-weight { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes s2-flame { 0% { opacity:0.8; transform: scaleY(0.9) rotate(-3deg); } 50% { opacity:1; transform: scaleY(1.1) rotate(3deg); } 100% { opacity:0.85; transform: scaleY(0.95) rotate(0); } }

/* Scene 3: strong-mind-serenity-in-storm */
.scn-strong-mind-serenity-in-storm {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12122a 50%, #0d0d1e 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a4e 0%, transparent 60%);
}
.scn-strong-mind-serenity-in-storm .room-wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #141428 50%, #1a1a2e 100%);
}
.scn-strong-mind-serenity-in-storm .window-frame {
  position:absolute; top:10%; left:10%; width:40%; height:50%; border: 6px solid #3a3a4e; border-radius: 10px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-strong-mind-serenity-in-storm .storm-bg {
  position:absolute; top:10%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4e 40%, #1a1a3a 100%); border-radius: 6px; overflow: hidden;
}
.scn-strong-mind-serenity-in-storm .lightning {
  position:absolute; top:15%; left:20%; width:4%; height:30%; background: linear-gradient(180deg, #e0e0ff 0%, transparent 100%); filter: blur(2px); opacity:0.3; animation: s3-flash 8s ease-in-out infinite;
}
.scn-strong-mind-serenity-in-storm .flash {
  box-shadow: 0 0 30px 10px rgba(200,200,255,0.2); animation: s3-flash 8s ease-in-out infinite 0.2s;
}
.scn-strong-mind-serenity-in-storm .figure-seated {
  position:absolute; bottom:20%; left:58%; width:16%; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: s3-figure 12s ease-in-out infinite alternate;
}
.scn-strong-mind-serenity-in-storm .book {
  position:absolute; bottom:22%; left:56%; width:8%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 10% 10%; transform: rotate(-10deg); animation: s3-book 10s ease-in-out infinite;
}
.scn-strong-mind-serenity-in-storm .lamp {
  position:absolute; bottom:35%; left:65%; width:6%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; 
}
.scn-strong-mind-serenity-in-storm .shadow {
  position:absolute; bottom:0; left:45%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: s3-shadow 8s ease-in-out infinite alternate;
}
@keyframes s3-flash { 0% { opacity:0.2; } 10% { opacity:0.8; } 15% { opacity:0.2; } 100% { opacity:0.2; } }
@keyframes s3-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes s3-book { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes s3-shadow { 0% { opacity:0.5; transform: scaleX(0.9); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }

/* Scene 4: strength-of-character-conviction */
.scn-strength-of-character-conviction {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12122a 40%, #0e0e20 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a4e 0%, transparent 50%);
}
.scn-strength-of-character-conviction .chamber {
  position:absolute; inset:0; background: linear-gradient(135deg, #16162a 0%, #1a1a30 50%, #12122a 100%);
}
.scn-strength-of-character-conviction .pillar {
  position:absolute; left:45%; width:10%; background: linear-gradient(900deg, #3a3a4e 0%, #2a2a3a 100%); border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,0.4);
}
.scn-strength-of-character-conviction .base {
  bottom:15%; height:10%; border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; 
}
.scn-strength-of-character-conviction .shaft {
  bottom:25%; height:40%; width:8%; left:46%; background: linear-gradient(900deg, #4a4a5e 0%, #2a2a3e 100%); 
}
.scn-strength-of-character-conviction .capital {
  bottom:65%; height:8%; border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; 
}
.scn-strength-of-character-conviction .figure-kneeling {
  position:absolute; bottom:10%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: s4-kneel 6s ease-in-out infinite alternate;
}
.scn-strength-of-character-conviction .orb {
  position:absolute; bottom:32%; left:47%; width:6%; height:6%; background: radial-gradient(circle at 40% 40%, #c0c0e0 0%, #7a7a9e 50%, #3a3a5e 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,200,230,0.3); animation: s4-orb 10s ease-in-out infinite alternate;
}
.scn-strength-of-character-conviction .chain {
  position:absolute; bottom:20%; width:2%; height:20%; background: repeating-linear-gradient(180deg, #5a5a6e 0%, #5a5a6e 10%, #3a3a4e 10%, #3a3a4e 20%); border-radius: 2px;
}
.scn-strength-of-character-conviction .chain-left { left:42%; transform: rotate(10deg); animation: s4-chain 8s ease-in-out infinite alternate; }
.scn-strength-of-character-conviction .chain-right { left:56%; transform: rotate(-10deg); animation: s4-chain 8s ease-in-out infinite alternate 0.5s; }
@keyframes s4-kneel { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes s4-orb { 0% { opacity:0.6; transform: scale(0.9) translate(0,0); } 50% { opacity:0.9; transform: scale(1.1) translate(2px,-2px); } 100% { opacity:0.7; transform: scale(1) translate(0,0); } }
@keyframes s4-chain { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(10deg) scaleY(1); } }

.scn-defence-of-theatre-continued-intro {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #b59b7a 100%),
              radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 60%);
}
.scn-defence-of-theatre-continued-intro .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dac0 0%, #c4b090 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.05);
}
.scn-defence-of-theatre-continued-intro .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6b5030 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: dit1-desk 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-continued-intro .lamp {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a85c 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
  animation: dit1-lamp 6s ease-in-out infinite;
}
.scn-defence-of-theatre-continued-intro .papers {
  position: absolute; bottom: 16%; left: 30%; right: 20%; height: 6%;
  background: linear-gradient(90deg, #f0e8c0 0%, #e0d0a0 50%, #f8f0d0 100%);
  border-radius: 2px; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
  animation: dit1-papers 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-continued-intro .chair {
  position: absolute; bottom: 8%; left: 50%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #705840 0%, #4a3828 100%);
  border-radius: 20% 20% 8% 8%; transform: translateX(-60%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-defence-of-theatre-continued-intro .figure-sit {
  position: absolute; bottom: 18%; left: 44%; width: 24px; 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: dit1-sit 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-continued-intro .window {
  position: absolute; top: 8%; right: 10%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #c8d8e8 0%, #e0ecf5 100%);
  border: 6px solid #8b7355; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: dit1-win 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-continued-intro .curtain {
  position: absolute; top: 5%; right: 6%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #b87878 0%, #a06050 100%);
  border-radius: 0 4px 4px 0; filter: drop-shadow(2px 0 4px rgba(0,0,0,0.2));
  animation: dit1-curtain 15s ease-in-out infinite alternate;
}
@keyframes dit1-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dit1-lamp { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes dit1-papers { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(0.98); } }
@keyframes dit1-sit { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dit1-win { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dit1-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

.scn-defence-of-theatre-identity {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a088 40%, #8c7a62 100%),
              radial-gradient(ellipse at 30% 70%, #f0d8b0 0%, transparent 50%);
}
.scn-defence-of-theatre-identity .wall-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b8a088 0%, #a08a70 100%);
}
.scn-defence-of-theatre-identity .map {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 30%;
  background: linear-gradient(135deg, #d4c8a0 0%, #c0b088 50%, #d8ccaa 100%);
  border: 4px solid #6b5540; border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: dit2-map 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-identity .pointer {
  position: absolute; top: 20%; left: 45%; width: 4px; height: 20px;
  background: #3a2a1a; border-radius: 2px;
  transform-origin: bottom center;
  animation: dit2-pointer 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-identity .book-left {
  position: absolute; bottom: 8%; left: 5%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a04040 0%, #7a2a2a 100%);
  border-radius: 2px; transform: rotate(-8deg);
}
.scn-defence-of-theatre-identity .book-right {
  position: absolute; bottom: 10%; right: 8%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #4a6040 0%, #2a4028 100%);
  border-radius: 2px; transform: rotate(5deg);
}
.scn-defence-of-theatre-identity .candle {
  position: absolute; bottom: 12%; left: 12%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 20% 20% 4% 4%;
  animation: dit2-candle 5s ease-in-out infinite;
}
.scn-defence-of-theatre-identity .candle-glow {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 60%, transparent 100%);
  border-radius: 50%; transform: translateX(-40%);
  animation: dit2-glow 3s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-identity .figure-stand {
  position: absolute; bottom: 5%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #100800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: dit2-stand 6s ease-in-out infinite alternate;
}
@keyframes dit2-map { 0% { transform: scale(0.98); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes dit2-pointer { 0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes dit2-candle { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes dit2-glow { 0% { opacity: 0.7; transform: translateX(-40%) scale(0.9); } 50% { opacity: 1; transform: translateX(-40%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-40%) scale(0.95); } }
@keyframes dit2-stand { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }

.scn-defence-of-theatre-observation-majority {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 40%, #b8a490 100%),
              radial-gradient(ellipse at 40% 20%, #fff8e8 0%, transparent 60%);
}
.scn-defence-of-theatre-observation-majority .wall-light {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 100%);
}
.scn-defence-of-theatre-observation-majority .window-frame {
  position: absolute; top: 5%; left: 10%; width: 120px; height: 120px;
  background: linear-gradient(135deg, #a08a70 0%, #8c7658 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-defence-of-theatre-observation-majority .window-glass {
  position: absolute; top: 7%; left: 12%; width: 108px; height: 108px;
  background: linear-gradient(180deg, #c0d0e0 0%, #e0ecf5 60%, #f0f8ff 100%);
  border-radius: 4px; opacity: 0.7;
  animation: dit3-glass 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-observation-majority .telescope {
  position: absolute; bottom: 30%; left: 15%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #6b5540 0%, #8c7658 50%, #5a4530 100%);
  border-radius: 50% 10% 10% 50%; transform: rotate(-15deg);
  transform-origin: left center;
  animation: dit3-scope 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-observation-majority .figure-profile {
  position: absolute; bottom: 5%; left: 8%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 40% 40% 50% / 60% 55% 45% 40%; /* profile hint */
  transform: rotate(5deg);
  animation: dit3-profile 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-observation-majority .bookshelf {
  position: absolute; bottom: 10%; right: 8%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #705840 0%, #4a3828 100%);
  border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-observation-majority .lamp-side {
  position: absolute; bottom: 20%; right: 20%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #c8a85c 0%, #a08040 100%);
  border-radius: 20% 20% 4% 4%;
  animation: dit3-lamp 5s ease-in-out infinite;
}
@keyframes dit3-glass { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes dit3-scope { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-15deg); } }
@keyframes dit3-profile { 0% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(4px) rotate(6deg); } 100% { transform: translateX(0) rotate(3deg); } }
@keyframes dit3-lamp { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }

.scn-defence-of-theatre-decisive-case {
  background: linear-gradient(180deg, #d4bc9c 0%, #b89e7e 40%, #9a8266 100%),
              radial-gradient(ellipse at 50% 90%, #e0c8a8 0%, transparent 50%);
}
.scn-defence-of-theatre-decisive-case .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6b5540 0%, #4a3828 100%);
}
.scn-defence-of-theatre-decisive-case .table-top {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8c7658 0%, #705840 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: dit4-table 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-decisive-case .chessboard {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 18%;
  background: repeating-conic-gradient(#5a4530 0% 25%, #e8dcc8 0% 50%) 0 0 / 20% 20%;
  border: 3px solid #3a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: dit4-board 30s linear infinite;
}
.scn-defence-of-theatre-decisive-case .piece-white {
  position: absolute; bottom: 25%; left: 42%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 100%);
  border-radius: 40% 40% 10% 10%;
  animation: dit4-piece 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-decisive-case .piece-black {
  position: absolute; bottom: 25%; right: 42%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #1a1008 0%, #000000 100%);
  border-radius: 40% 40% 10% 10%;
  animation: dit4-piece 6s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-decisive-case .candle-two {
  position: absolute; bottom: 30%; left: 10%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%);
  border-radius: 20% 20% 4% 4%;
  animation: dit4-candle 7s ease-in-out infinite;
}
.scn-defence-of-theatre-decisive-case .glow-two {
  position: absolute; bottom: 35%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 60%, transparent 100%);
  border-radius: 50%; transform: translateX(-30%);
  animation: dit4-glow 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-decisive-case .figure-hands {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 10% 10%; transform: translateX(-50%);
  animation: dit4-hands 5s ease-in-out infinite alternate;
}
@keyframes dit4-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dit4-board { 0% { background-position: 0 0; } 100% { background-position: 10% 10%; } }
@keyframes dit4-piece { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes dit4-candle { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes dit4-glow { 0% { opacity: 0.6; transform: translateX(-30%) scale(0.9); } 50% { opacity: 1; transform: translateX(-30%) scale(1.1); } 100% { opacity: 0.7; transform: translateX(-30%) scale(0.95); } }
@keyframes dit4-hands { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }

.scn-defeat-nation-government-effect {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #3a2a50 100%), radial-gradient(ellipse at 30% 80%, #4a3a6e 0%, transparent 70%);
}
.scn-defeat-nation-government-effect .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2244 0%, #1a1a2e 100%);
}
.scn-defeat-nation-government-effect .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1e1a1a 0%, #2a2220 100%);
  border-radius: 0 0 0 0;
}
.scn-defeat-nation-government-effect .desk {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 3% 3% 1% 1%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-defeat-nation-government-effect .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(0deg, #6a5a3a 0%, #9a8a6a 60%, #c0b090 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
  animation: def-candle 4s ease-in-out infinite alternate;
}
@keyframes def-candle {
  0% { opacity: .8; transform: translateX(-50%) scaleY(1); }
  50% { opacity: .95; transform: translateX(-50%) scaleY(1.03); }
  100% { opacity: .85; transform: translateX(-50%) scaleY(.97); }
}
.scn-defeat-nation-government-effect .figure-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 60px; height: 90px;
  background: radial-gradient(ellipse 60% 100% at 50% 100%, #0a0a12 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: def-figure 8s ease-in-out infinite;
}
@keyframes def-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-5px) rotate(1deg); }
  60% { transform: translateY(2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-defeat-nation-government-effect .broken-window {
  position: absolute; top: 20%; left: 65%; width: 80px; height: 100px;
  border: 4px solid #4a4a5a;
  background: linear-gradient(135deg, #1a1a2a 30%, #2a2a4a 50%, #1a1a2a 70%);
  border-radius: 2px;
  animation: def-window 12s ease-in-out infinite alternate;
}
@keyframes def-window {
  0% { opacity: .6; border-color: #4a4a5a; }
  50% { opacity: .9; border-color: #5a5a6a; }
  100% { opacity: .7; border-color: #4a4a5a; }
}
.scn-defeat-nation-government-effect .shadow-sweep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: def-shadow 20s ease-in-out infinite alternate;
}
@keyframes def-shadow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.05); }
  100% { opacity: .6; transform: scale(1); }
}

.scn-consequence-victory-depends {
  background: linear-gradient(180deg, #2c2a24 0%, #3a342e 40%, #4a443a 100%), radial-gradient(ellipse at 60% 80%, #5a4e3e 0%, transparent 70%);
}
.scn-consequence-victory-depends .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2824 0%, #3a342e 100%);
}
.scn-consequence-victory-depends .table-map {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a4030 0%, #3a3020 100%);
  border-radius: 2% 2% 1% 1%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-consequence-victory-depends .lantern {
  position: absolute; top: 30%; left: 60%; width: 18px; height: 28px;
  background: radial-gradient(circle, #d4b86a 0%, #a08840 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px #b09050, 0 0 48px 16px rgba(176,144,80,.3);
  animation: vic-lantern 5s ease-in-out infinite alternate;
}
@keyframes vic-lantern {
  0% { box-shadow: 0 0 20px 6px #b09050; opacity: .85; }
  50% { box-shadow: 0 0 32px 12px #d4b86a; opacity: 1; }
  100% { box-shadow: 0 0 24px 8px #b09050; opacity: .9; }
}
.scn-consequence-victory-depends .general-silhouette {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 80px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #1a1a12 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vic-general 10s ease-in-out infinite;
}
@keyframes vic-general {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-consequence-victory-depends .inkwell {
  position: absolute; bottom: 18%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-consequence-victory-depends .curtain {
  position: absolute; top: 0; right: 0; height: 100%; width: 15%;
  background: linear-gradient(180deg, #4a4036 0%, #3a3026 100%);
  border-radius: 0 0 0 50% / 0 0 0 20%;
  animation: vic-curtain 15s ease-in-out infinite alternate;
}
@keyframes vic-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}
.scn-consequence-victory-depends .dust-mote {
  position: absolute; top: 20%; left: 10%; width: 4px; height: 4px;
  background: rgba(200,180,120,.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: vic-mote 30s linear infinite;
}
.scn-consequence-victory-depends .dust-mote-2 {
  position: absolute; top: 40%; left: 70%; width: 3px; height: 3px;
  background: rgba(200,180,120,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: vic-mote 25s linear infinite reverse;
  animation-delay: -10s;
}
@keyframes vic-mote {
  0% { transform: translate(0, 0) scale(.8); opacity: .2; }
  25% { transform: translate(30px, -20px) scale(1); opacity: .5; }
  50% { transform: translate(60px, 10px) scale(.9); opacity: .3; }
  75% { transform: translate(90px, -30px) scale(1.1); opacity: .6; }
  100% { transform: translate(120px, 0) scale(.8); opacity: .2; }
}

.scn-great-results-conditions {
  background: linear-gradient(180deg, #2a2820 0%, #3a342a 40%, #4a4436 100%), radial-gradient(ellipse at 40% 60%, #5a4e3e 0%, transparent 70%);
}
.scn-great-results-conditions .bg-shelves {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3228 0%, #2a241e 100%);
}
.scn-great-results-conditions .globe {
  position: absolute; bottom: 35%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #6a7a5a 0%, #3a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: res-globe 20s ease-in-out infinite alternate;
}
@keyframes res-globe {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(5deg) scale(1); }
}
.scn-great-results-conditions .map-pins {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 6px;
  background: #a08040;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,128,64,.6);
  animation: res-pin 6s ease-in-out infinite alternate;
}
@keyframes res-pin {
  0% { opacity: .7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
  100% { opacity: .8; transform: translateY(0); }
}
.scn-great-results-conditions .candle-stick {
  position: absolute; bottom: 28%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(0deg, #5a4a30 0%, #8a7a5a 100%);
  border-radius: 2px 2px 6px 6px;
  transform: translateX(-50%);
}
.scn-great-results-conditions .scroll {
  position: absolute; bottom: 18%; left: 35%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #b8a888 0%, #9a8870 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-2deg);
  animation: res-scroll 12s ease-in-out infinite alternate;
}
@keyframes res-scroll {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(0deg) scaleX(1.03); }
  100% { transform: rotate(-2deg) scaleX(1); }
}
.scn-great-results-conditions .figure-reading {
  position: absolute; bottom: 12%; left: 42%; width: 55px; height: 85px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #1a1a12 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: res-figure 14s ease-in-out infinite;
}
@keyframes res-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-great-results-conditions .shadow-pool {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: res-pool 18s ease-in-out infinite alternate;
}
@keyframes res-pool {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: .8; transform: scaleY(1.1); }
  100% { opacity: .7; transform: scaleY(1); }
}
.scn-great-results-conditions .flicker {
  position: absolute; top: 30%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,120,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: res-flicker 4s ease-in-out infinite alternate;
}
@keyframes res-flicker {
  0% { opacity: .5; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .6; transform: scale(.9); }
}

.scn-theory-necessary-effect {
  background: linear-gradient(180deg, #3a2a20 0%, #4a3428 40%, #5a3e2e 100%), radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 70%);
}
.scn-theory-necessary-effect .hearth {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-theory-necessary-effect .mantel {
  position: absolute; bottom: 28%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2e1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-theory-necessary-effect .fire-glow {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #e8a050 0%, #c07030 40%, transparent 80%);
  filter: blur(12px);
  animation: the-fire 6s ease-in-out infinite alternate;
}
@keyframes the-fire {
  0% { opacity: .7; transform: scaleY(1) translateY(0); }
  50% { opacity: 1; transform: scaleY(1.1) translateY(-5px); }
  100% { opacity: .8; transform: scaleY(.95) translateY(2px); }
}
.scn-theory-necessary-effect .armchair {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-theory-necessary-effect .figure-writing {
  position: absolute; bottom: 15%; left: 38%; width: 40px; height: 60px;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #1a1210 0%, #2a1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: the-writer 8s ease-in-out infinite;
}
@keyframes the-writer {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateY(-2px) rotate(2deg) scaleX(1.02); }
  50% { transform: translateY(1px) rotate(-1deg) scaleX(1); }
  75% { transform: translateY(-1px) rotate(1deg) scaleX(1.01); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
.scn-theory-necessary-effect .bookstack {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: the-books 20s ease-in-out infinite alternate;
}
@keyframes the-books {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(0deg) scaleY(1.02); }
  100% { transform: rotate(2deg) scaleY(1); }
}
.scn-theory-necessary-effect .quill {
  position: absolute; bottom: 28%; left: 45%; width: 3px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: the-quill 4s ease-in-out infinite alternate;
}
@keyframes the-quill {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(5px); }
  100% { transform: rotate(-30deg) translateX(0); }
}
.scn-theory-necessary-effect .shadows-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: the-shadows 15s ease-in-out infinite alternate;
}
@keyframes the-shadows {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

.scn-battle-war-concentrated {
  background: linear-gradient(180deg, #2b1e10 0%, #3a2816 40%, #4a3020 100%), radial-gradient(ellipse at 60% 40%, #6b4a2a 0%, transparent 70%);
}
.scn-battle-war-concentrated .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e140e 0%, #3a2818 50%, #2a1a10 100%); animation: bwc-bg 14s ease-in-out infinite alternate; }
.scn-battle-war-concentrated .desk { position:absolute; bottom:12%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3522 0%, #2a1a0e 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-battle-war-concentrated .lamp { position:absolute; bottom:40%; left:45%; width:22px; height:60px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: bwc-lamp 3s ease-in-out infinite; }
.scn-battle-war-concentrated .book-stack { position:absolute; bottom:18%; left:20%; width:80px; height:20px; background: linear-gradient(90deg, #3a2a1a, #4a3020, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-battle-war-concentrated .figure { position:absolute; bottom:12%; left:25%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bwc-figure 5s ease-in-out infinite; }
.scn-battle-war-concentrated .light-focus { position:absolute; top:15%; left:38%; width:100px; height:150px; background: radial-gradient(ellipse, rgba(200,150,80,0.3) 0%, transparent 70%); filter: blur(8px); animation: bwc-focus 6s ease-in-out infinite alternate; }
.scn-battle-war-concentrated .shadow-drape { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: bwc-shadow 10s ease-in-out infinite alternate; }
.scn-battle-war-concentrated .wall-panel { position:absolute; top:8%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #4a3020, #2a1a0e); border-radius: 8px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
@keyframes bwc-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bwc-lamp { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes bwc-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0); } }
@keyframes bwc-focus { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes bwc-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-positive-object-offensive-battle {
  background: linear-gradient(180deg, #1f1a16 0%, #2a221c 40%, #332a22 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-positive-object-offensive-battle .table-top { position:absolute; bottom:10%; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-positive-object-offensive-battle .map-scroll { position:absolute; bottom:25%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #c8b898 0%, #a88a6a 100%); border-radius: 4% 4% 10% 10%; transform: perspective(400px) rotateX(30deg); animation: poob-scroll 8s ease-in-out infinite; }
.scn-positive-object-offensive-battle .miniature { position:absolute; width:12px; height:18px; border-radius: 40% 40% 20% 20%; }
.scn-positive-object-offensive-battle .red-pin { bottom:30%; left:30%; background: #702243; box-shadow: 0 0 6px 2px rgba(112,34,67,0.5); animation: poob-red 4s ease-in-out infinite; }
.scn-positive-object-offensive-battle .blue-pin { bottom:28%; left:50%; background: #3a5a7a; box-shadow: 0 0 6px 2px rgba(58,90,122,0.5); animation: poob-blue 5s ease-in-out infinite reverse; }
.scn-positive-object-offensive-battle .figure-left { position:absolute; bottom:15%; left:10%; width:28px; height:70px; background: linear-gradient(180deg, #2a221a 0%, #1a120e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: poob-fig-l 6s ease-in-out infinite; }
.scn-positive-object-offensive-battle .figure-right { position:absolute; bottom:15%; right:10%; width:28px; height:70px; background: linear-gradient(180deg, #2a221a 0%, #1a120e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: poob-fig-r 7s ease-in-out infinite; }
.scn-positive-object-offensive-battle .candle-glow { position:absolute; bottom:35%; left:50%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,150,80,0.4) 0%, transparent 70%); filter: blur(10px); animation: poob-candle 3s ease-in-out infinite alternate; }
.scn-positive-object-offensive-battle .shadow-wave { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: poob-wave 12s ease-in-out infinite; }
@keyframes poob-scroll { 0%,100% { transform: perspective(400px) rotateX(30deg) translateY(0); } 50% { transform: perspective(400px) rotateX(30deg) translateY(-4px); } }
@keyframes poob-red { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes poob-blue { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes poob-fig-l { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes poob-fig-r { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(2px) rotate(-1deg); } 66% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes poob-candle { 0% { opacity:0.5; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes poob-wave { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-item-bloody-character-battle {
  background: linear-gradient(180deg, #100a08 0%, #1a0e0a 40%, #0a0604 100%), radial-gradient(ellipse at 50% 30%, #2a1210 0%, transparent 70%);
}
.scn-item-bloody-character-battle .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a0e0c 0%, #0a0402 100%); }
.scn-item-bloody-character-battle .body-silhouette { position:absolute; bottom:10%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0402 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ibcb-body 6s ease-in-out infinite; }
.scn-item-bloody-character-battle .blade { position:absolute; bottom:25%; left:45%; width:8px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-15deg); animation: ibcb-blade 4s ease-in-out infinite; }
.scn-item-bloody-character-battle .blood-pool { position:absolute; bottom:8%; left:20%; right:20%; height:12%; background: radial-gradient(ellipse, #5e1a1d 0%, #3a0e0a 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ibcb-blood 8s ease-in-out infinite alternate; }
.scn-item-bloody-character-battle .chain { position:absolute; bottom:45%; left:55%; width:4px; height:40px; background: #3a2a1a; border-radius: 50%; box-shadow: 0 0 0 4px #3a2a1a, 0 0 0 8px transparent; animation: ibcb-chain 3s ease-in-out infinite; }
.scn-item-bloody-character-battle .ember { position:absolute; top:20%; left:35%; width:10px; height:10px; background: radial-gradient(circle, #a0461a 0%, transparent 70%); border-radius: 50%; animation: ibcb-ember 2s ease-in-out infinite alternate; }
.scn-item-bloody-character-battle .distant-fire { position:absolute; bottom:40%; right:10%; width:40px; height:40px; background: radial-gradient(ellipse, rgba(160,70,26,0.4) 0%, transparent 70%); filter: blur(14px); animation: ibcb-fire 9s linear infinite; }
@keyframes ibcb-body { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ibcb-blade { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-3px); } 100% { transform: rotate(-14deg) translateY(0); } }
@keyframes ibcb-blood { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.9; } 100% { transform: scale(1); opacity:0.7; } }
@keyframes ibcb-chain { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes ibcb-ember { 0% { transform: translate(0,0) scale(0.8); opacity:0.3; } 100% { transform: translate(5px,-3px) scale(1.2); opacity:0.7; } }
@keyframes ibcb-fire { 0% { transform: scale(0.8); opacity:0.2; } 50% { transform: scale(1.2); opacity:0.5; } 100% { transform: scale(0.8); opacity:0.2; } }

.scn-statesmen-avoid-battle {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #1a100e 100%), radial-gradient(ellipse at 40% 60%, #3a2a22 0%, transparent 70%);
}
.scn-statesmen-avoid-battle .council-bg { position:absolute; inset:0; background: linear-gradient(135deg, #100e0c 0%, #2a1e1a 50%, #1a1410 100%); animation: sab-bg 12s ease-in-out infinite alternate; }
.scn-statesmen-avoid-battle .map-table { position:absolute; bottom:12%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-statesmen-avoid-battle .goblet { position:absolute; bottom:30%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; animation: sab-goblet 3s ease-in-out infinite; }
.scn-statesmen-avoid-battle .figure-center { position:absolute; bottom:15%; left:42%; width:28px; height:80px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sab-fig-c 5s ease-in-out infinite; }
.scn-statesmen-avoid-battle .figure-left { position:absolute; bottom:12%; left:15%; width:24px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sab-fig-l 6s ease-in-out infinite reverse; }
.scn-statesmen-avoid-battle .figure-right { position:absolute; bottom:12%; right:15%; width:24px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sab-fig-r 5.5s ease-in-out infinite; }
.scn-statesmen-avoid-battle .candle { position:absolute; bottom:38%; left:50%; width:16px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; animation: sab-candle 2s ease-in-out infinite alternate; }
.scn-statesmen-avoid-battle .shadow-flicker { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: sab-shadow 4s ease-in-out infinite alternate; }
@keyframes sab-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sab-goblet { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sab-fig-c { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sab-fig-l { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(2px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sab-fig-r { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sab-candle { 0% { transform: scaleY(0.95); opacity:0.8; } 100% { transform: scaleY(1.05); opacity:1; } }
@keyframes sab-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* lost-battle-picture */
.scn-lost-battle-picture {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #121212 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-lost-battle-picture .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: lbp-wall 20s ease-in-out infinite alternate;
}
.scn-lost-battle-picture .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-lost-battle-picture .map {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(135deg, #a08050 0%, #806040 30%, #706030 70%);
  border-radius: 2px; opacity: 0.7; transform: rotate(-2deg);
  animation: lbp-map 8s ease-in-out infinite alternate;
}
.scn-lost-battle-picture .candle {
  position: absolute; bottom: 35%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c09860 100%);
  border-radius: 2px 2px 4px 4px; transform: rotate(5deg);
}
.scn-lost-battle-picture .candle-glow {
  position: absolute; bottom: 32%; left: 33%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: lbp-glow 4s ease-in-out infinite alternate;
}
.scn-lost-battle-picture .figure-slump {
  position: absolute; bottom: 12%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) translateY(8px);
  animation: lbp-figure 6s ease-in-out infinite;
}
.scn-lost-battle-picture .scattered-pieces {
  position: absolute; bottom: 12%; left: 30%; width: 12px; height: 8px;
  background: #4a3a2a; border-radius: 20%; box-shadow: 4px -2px 0 #3a2a1a, 8px 2px 0 #5a4a3a;
  animation: lbp-scatter 12s linear infinite;
}
.scn-lost-battle-picture .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%);
  pointer-events: none;
}
@keyframes lbp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes lbp-map { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(1deg) scale(0.98) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes lbp-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 lbp-figure { 0%,100% { transform: rotate(-15deg) translateY(8px) } 50% { transform: rotate(-10deg) translateY(6px) scale(1.02) } }
@keyframes lbp-scatter { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

/* panic-vs-battle-loss */
.scn-panic-vs-battle-loss {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a1a1a 50%, #121212 100%),
    radial-gradient(ellipse at 40% 30%, #3a2a2a 0%, transparent 60%);
}
.scn-panic-vs-battle-loss .deep-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #262640 0%, #1a1a30 100%);
}
.scn-panic-vs-battle-loss .mass-soldiers {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, #2a2020 20%, #1a1212 100%);
  border-radius: 30% 30% 0 0; filter: blur(4px);
  animation: pbl-mass 10s ease-in-out infinite alternate;
}
.scn-panic-vs-battle-loss .soldier-1,
.scn-panic-vs-battle-loss .soldier-2,
.scn-panic-vs-battle-loss .soldier-3 {
  position: absolute; bottom: 12%; width: 16px; height: 40px; background: #2a1a1a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pbl-soldier-jitter 0.4s ease-in-out infinite alternate;
}
.scn-panic-vs-battle-loss .soldier-1 { left: 30%; animation-delay: -0.1s; }
.scn-panic-vs-battle-loss .soldier-2 { left: 45%; width: 18px; height: 44px; background: #3a2a2a; animation-delay: -0.2s; }
.scn-panic-vs-battle-loss .soldier-3 { left: 55%; width: 14px; height: 36px; background: #1a1212; animation-delay: -0.3s; }
.scn-panic-vs-battle-loss .figure-rally {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-10px);
  animation: pbl-rally 3s ease-in-out infinite;
}
.scn-panic-vs-battle-loss .dust {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,50,40,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: pbl-dust 6s ease-in-out infinite alternate;
}
.scn-panic-vs-battle-loss .jitter-overlay {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,0.02) 2px, rgba(255,255,255,0.02) 4px);
  pointer-events: none;
  animation: pbl-jitter 0.2s steps(3) infinite;
}
@keyframes pbl-mass { 0% { opacity: 0.8; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.02) } 100% { opacity: 0.7; transform: scaleX(0.98) } }
@keyframes pbl-soldier-jitter { 0% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(2px) rotate(2deg) } }
@keyframes pbl-rally { 0%,100% { transform: translateX(-10px) rotate(0) } 50% { transform: translateX(-7px) rotate(5deg) scale(1.05) } }
@keyframes pbl-dust { 0% { opacity: 0.2; transform: scaleY(0.9) } 50% { opacity: 0.6; transform: scaleY(1.1) } 100% { opacity: 0.3; transform: scaleY(1) } }
@keyframes pbl-jitter { 0% { transform: translate(0,0) } 33% { transform: translate(-0.5px,0.5px) } 66% { transform: translate(0.5px,-0.5px) } }

/* item-trophies-intensify-effect */
.scn-item-trophies-intensify-effect {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 30%, #121212 100%),
    radial-gradient(ellipse at 70% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-item-trophies-intensify-effect .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: iti-wall 15s ease-in-out infinite alternate;
}
.scn-item-trophies-intensify-effect .shelf {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-item-trophies-intensify-effect .trophy-helmet,
.scn-item-trophies-intensify-effect .trophy-flag,
.scn-item-trophies-intensify-effect .trophy-sword,
.scn-item-trophies-intensify-effect .trophy-shield {
  position: absolute; bottom: calc(40% + 8px);
  animation: iti-trophy-glow 5s ease-in-out infinite alternate;
}
.scn-item-trophies-intensify-effect .trophy-helmet {
  left: 20%; width: 24px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #6a5040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
}
.scn-item-trophies-intensify-effect .trophy-flag {
  left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; transform: rotate(10deg);
  animation-delay: -1s;
}
.scn-item-trophies-intensify-effect .trophy-sword {
  left: 55%; width: 4px; height: 36px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation-delay: -2s;
}
.scn-item-trophies-intensify-effect .trophy-shield {
  left: 70%; width: 28px; height: 28px;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(8deg);
  animation-delay: -3s;
}
.scn-item-trophies-intensify-effect .figure-shadow {
  position: absolute; bottom: 12%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: iti-figure 8s ease-in-out infinite alternate;
}
.scn-item-trophies-intensify-effect .glow-spot {
  position: absolute; bottom: 38%; left: 35%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(100,80,60,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: iti-glow 6s ease-in-out infinite alternate;
}
@keyframes iti-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes iti-trophy-glow { 0% { opacity: 0.7; filter: brightness(0.8) } 50% { opacity: 1; filter: brightness(1.2) } 100% { opacity: 0.8; filter: brightness(0.9) } }
@keyframes iti-figure { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-8px) rotate(2deg) } }
@keyframes iti-glow { 0% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.6; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(1) } }

/* victory-sinking-scale */
.scn-victory-sinking-scale {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 70%, #2a3a4a 0%, transparent 60%);
}
.scn-victory-sinking-scale .sky-dark {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%);
  animation: vss-sky 12s ease-in-out infinite alternate;
}
.scn-victory-sinking-scale .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1220 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: vss-water 8s ease-in-out infinite alternate;
}
.scn-victory-sinking-scale .ship {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: vss-ship 6s ease-in-out infinite alternate;
}
.scn-victory-sinking-scale .mast {
  position: absolute; bottom: 40%; left: 46%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  transform: rotate(-12deg); border-radius: 2px;
  animation: vss-mast 6s ease-in-out infinite alternate;
}
.scn-victory-sinking-scale .scale-cup {
  position: absolute; bottom: 35%; left: 30%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 10%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-25deg);
  animation: vss-scale 5s ease-in-out infinite;
}
.scn-victory-sinking-scale .scale-beam {
  position: absolute; bottom: 50%; left: 20%; right: 20%; height: 4px;
  background: #4a3a2a; border-radius: 2px;
  animation: vss-beam 5s ease-in-out infinite;
}
.scn-victory-sinking-scale .weights {
  position: absolute; bottom: 38%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%; box-shadow: 0 0 8px rgba(100,80,60,0.5);
  animation: vss-weights 5s ease-in-out infinite;
}
.scn-victory-sinking-scale .lightning {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 2px;
  background: rgba(200,200,255,0.6); filter: blur(1px);
  animation: vss-lightning 0.3s steps(3) infinite;
}
.scn-victory-sinking-scale .figure-cling {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(8deg);
  animation: vss-cling 3s ease-in-out infinite alternate;
}
@keyframes vss-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes vss-water { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes vss-ship { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-12deg) translateY(2px) } }
@keyframes vss-mast { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-14deg) } }
@keyframes vss-scale { 0% { transform: rotate(-25deg) translateY(0) } 50% { transform: rotate(-20deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(3px) } }
@keyframes vss-beam { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes vss-weights { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(4px) } }
@keyframes vss-lightning { 0% { opacity: 0 } 33% { opacity: 1 } 66% { opacity: 0.2 } 100% { opacity: 0 } }
@keyframes vss-cling { 0% { transform: rotate(8deg) translateX(0) } 100% { transform: rotate(5deg) translateX(2px) } }

/* Scene 1: motives-to-peace-rise-fall */
.scn-motives-to-peace-rise-fall {
  background: radial-gradient(ellipse at 50% 60%, #2a1e10 0%, #1a0e05 60%, #0f0a04 100%);
}
.scn-motives-to-peace-rise-fall .room-bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #3a281a 0%, transparent 70%);
  animation: pr-room 20s ease-in-out infinite alternate;
}
.scn-motives-to-peace-rise-fall .post {
  position:absolute; bottom:25%; left:50%; width:8px; height:40%; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:2px; box-shadow: 2px 0 6px rgba(0,0,0,.5);
}
.scn-motives-to-peace-rise-fall .left-pan {
  position:absolute; bottom:50%; left:30%; width:40px; height:10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: right center;
  animation: pr-pan-l 6s ease-in-out infinite alternate;
}
.scn-motives-to-peace-rise-fall .right-pan {
  position:absolute; bottom:50%; right:30%; width:40px; height:10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:20% 20% 10% 10% / 50% 50% 30% 30%;
  transform-origin: left center;
  animation: pr-pan-r 6s ease-in-out infinite alternate;
}
.scn-motives-to-peace-rise-fall .chain-l {
  position:absolute; bottom:50%; left:30%; width:2px; height:15%;
  background: #5a4a3a; left:30%; transform:translateX(-50%);
  transform-origin: bottom center;
  animation: pr-chain-l 6s ease-in-out infinite alternate;
}
.scn-motives-to-peace-rise-fall .chain-r {
  position:absolute; bottom:50%; right:30%; width:2px; height:15%;
  background: #5a4a3a; right:30%; transform:translateX(50%);
  transform-origin: bottom center;
  animation: pr-chain-r 6s ease-in-out infinite alternate;
}
.scn-motives-to-peace-rise-fall .candle {
  position:absolute; bottom:18%; left:55%; width:12px; height:35px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius:2px 2px 4px 4px;
}
.scn-motives-to-peace-rise-fall .flame {
  position:absolute; bottom:46%; left:55%; width:8px; height:12px;
  background: radial-gradient(circle at 30% 60%, #ffd060 0%, #ff8030 60%, transparent 100%);
  border-radius:50%; margin-left:-4px;
  box-shadow: 0 -4px 12px 4px #ffd060, 0 -8px 24px 8px rgba(255,128,48,.4);
  animation: pr-flame 2s ease-in-out infinite alternate;
}
@keyframes pr-room { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes pr-pan-l {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-8px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pr-pan-r {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(8px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pr-chain-l { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } }
@keyframes pr-chain-r { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.92); } }
@keyframes pr-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.9; box-shadow: 0 -4px 12px 4px #ffd060; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity:1; box-shadow: 0 -6px 18px 6px #ffd060; }
  100% { transform: scaleY(0.95) translateY(1px); opacity:.8; box-shadow: 0 -2px 8px 2px #ffd060; }
}

/* Scene 2: influencing-probability-success */
.scn-influencing-probability-success {
  background: radial-gradient(ellipse at 50% 70%, #2a1c10 0%, #0e0804 100%);
}
.scn-influencing-probability-success .table {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #3a2818 0%, #1a0e06 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-influencing-probability-success .board {
  position:absolute; bottom:15%; left:20%; width:60%; height:30%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:8% 6% 4% 4%; border:2px solid #4a3a2a;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ps-board 12s ease-in-out infinite alternate;
}
.scn-influencing-probability-success .piece-a {
  position:absolute; bottom:25%; left:35%; width:10px; height:14px;
  background: linear-gradient(180deg, #c0a080 0%, #806050 100%);
  border-radius:40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ps-piece-a 8s ease-in-out infinite alternate;
}
.scn-influencing-probability-success .piece-b {
  position:absolute; bottom:25%; right:40%; width:10px; height:14px;
  background: linear-gradient(180deg, #806050 0%, #403020 100%);
  border-radius:40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ps-piece-b 6s ease-in-out infinite alternate;
}
.scn-influencing-probability-success .hand {
  position:absolute; bottom:20%; left:28%; width:20px; height:30px;
  background: linear-gradient(180deg, #c0a880 0%, #a08060 100%);
  border-radius:50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ps-hand 10s ease-in-out infinite alternate;
}
.scn-influencing-probability-success .candle {
  position:absolute; bottom:10%; right:20%; width:12px; height:30px;
  background: linear-gradient(180deg, #f0d8b0 0%, #b09070 100%);
  border-radius:4px; box-shadow: -2px 0 6px rgba(0,0,0,.4);
}
.scn-influencing-probability-success .flame {
  position:absolute; bottom:33%; right:20%; width:6px; height:8px;
  background: radial-gradient(circle, #ffe080 0%, #ff8040 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 -2px 10px 4px #ffe080, 0 -6px 20px 6px rgba(255,128,64,.4);
  animation: ps-flame 2.5s ease-in-out infinite alternate;
}
@keyframes ps-board { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(1deg); } }
@keyframes ps-piece-a {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes ps-piece-b {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-3px) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(2px) translateY(0) rotate(1deg); }
}
@keyframes ps-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes ps-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.85; box-shadow: 0 -2px 8px 2px #ffe080; }
  50% { transform: scaleY(1.15) translateY(-3px); opacity:1; box-shadow: 0 -4px 16px 5px #ffe080; }
  100% { transform: scaleY(0.9) translateY(1px); opacity:.75; box-shadow: 0 -1px 6px 2px #ffe080; }
}

/* Scene 3: expeditions-political-connection */
.scn-expeditions-political-connection {
  background: radial-gradient(ellipse at 50% 60%, #2a1e12 0%, #0d0803 100%);
}
.scn-expeditions-political-connection .desk {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-expeditions-political-connection .map {
  position:absolute; bottom:18%; left:25%; width:50%; height:25%;
  background: linear-gradient(135deg, #b0a080 0%, #806050 100%);
  border-radius:4% 2% 6% 3%; border:2px solid #5a4a3a;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: ep-map 20s ease-in-out infinite alternate;
}
.scn-expeditions-political-connection .globe {
  position:absolute; bottom:15%; right:10%; width:40px; height:40px;
  background: radial-gradient(circle at 35% 35%, #4a6a8a 0%, #2a4a6a 100%);
  border-radius:50%;
  box-shadow: 0 2px 10px rgba(0,0,0,.5), inset -4px -4px 8px rgba(0,0,0,.3);
  animation: ep-globe 30s linear infinite;
}
.scn-expeditions-political-connection .compass {
  position:absolute; bottom:25%; left:10%; width:16px; height:16px;
  border:2px solid #8a7050;
  border-radius:50%;
  background: radial-gradient(circle, #e0c8a0 0%, #b09870 100%);
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: ep-compass 15s ease-in-out infinite alternate;
}
.scn-expeditions-political-connection .candle {
  position:absolute; bottom:8%; left:50%; width:14px; height:28px;
  background: linear-gradient(180deg, #f0d8b8 0%, #b09878 100%);
  border-radius:4px; margin-left:-7px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-expeditions-political-connection .flame {
  position:absolute; bottom:30%; left:50%; width:8px; height:10px;
  margin-left:-4px;
  background: radial-gradient(circle at 30% 40%, #ffe080 0%, #ff8030 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 -4px 12px 4px #ffe080, 0 -8px 24px 8px rgba(255,128,48,.4);
  animation: ep-flame 2s ease-in-out infinite alternate;
}
.scn-expeditions-political-connection .quill {
  position:absolute; bottom:20%; right:25%; width:4px; height:20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #b09070 100%);
  border-radius:2px;
  transform: rotate(-20deg);
  animation: ep-quill 8s ease-in-out infinite alternate;
}
@keyframes ep-map { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.01) rotate(0.5deg); } }
@keyframes ep-globe { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes ep-compass {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(45deg) scale(1.05); }
  100% { transform: rotate(90deg) scale(1); }
}
@keyframes ep-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.85; box-shadow: 0 -4px 10px 3px #ffe080; }
  50% { transform: scaleY(1.2) translateY(-3px); opacity:1; box-shadow: 0 -6px 18px 6px #ffe080; }
  100% { transform: scaleY(0.9) translateY(1px); opacity:.75; box-shadow: 0 -2px 8px 2px #ffe080; }
}
@keyframes ep-quill {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

/* Scene 4: acting-on-enemy-expenditure */
.scn-acting-on-enemy-expenditure {
  background: radial-gradient(ellipse at 50% 70%, #1e1410 0%, #0a0502 100%);
}
.scn-acting-on-enemy-expenditure .ledger {
  position:absolute; bottom:10%; left:15%; width:70%; height:40%;
  background: linear-gradient(135deg, #3a2a1e 0%, #1e140c 100%);
  border-radius:6% 4% 8% 4%; border:2px solid #4a3a2a;
  box-shadow: 0 0 20px rgba(0,0,0,.6);
  overflow:hidden;
}
.scn-acting-on-enemy-expenditure .coin {
  position:absolute; width:12px; height:12px;
  background: radial-gradient(circle, #d0b890 0%, #a08868 100%);
  border-radius:50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-acting-on-enemy-expenditure .coin.a {
  bottom:25%; left:30%;
  animation: ee-coin-a 6s ease-in-out infinite alternate;
}
.scn-acting-on-enemy-expenditure .coin.b {
  bottom:35%; left:50%;
  animation: ee-coin-b 7s ease-in-out infinite alternate;
}
.scn-acting-on-enemy-expenditure .hand {
  position:absolute; bottom:5%; left:40%; width:18px; height:28px;
  background: linear-gradient(180deg, #c0a888 0%, #a08868 100%);
  border-radius:50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ee-hand 12s ease-in-out infinite alternate;
}
.scn-acting-on-enemy-expenditure .candle {
  position:absolute; bottom:6%; right:12%; width:10px; height:24px;
  background: linear-gradient(180deg, #f0d8b0 0%, #b09870 100%);
  border-radius:2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-acting-on-enemy-expenditure .flame {
  position:absolute; bottom:24%; right:12%; width:6px; height:8px;
  background: radial-gradient(circle, #ffe080 0%, #ff8030 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 -2px 10px 3px #ffe080, 0 -6px 20px 6px rgba(255,128,48,.4);
  animation: ee-flame 2.5s ease-in-out infinite alternate;
}
@keyframes ee-coin-a {
  0% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(4px,-3px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes ee-coin-b {
  0% { transform: translate(0,0) rotate(0); }
  50% { transform: translate(-3px,2px) rotate(-4deg); }
  100% { transform: translate(0,0) rotate(0); }
}
@keyframes ee-hand {
  0% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(8px,-2px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(-3deg); }
}
@keyframes ee-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.8; box-shadow: 0 -2px 8px 2px #ffe080; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity:1; box-shadow: 0 -4px 16px 5px #ffe080; }
  100% { transform: scaleY(0.9) translateY(1px); opacity:.7; box-shadow: 0 -1px 6px 2px #ffe080; }
}

/* result-never-absolute */
.scn-result-never-absolute { background: linear-gradient(180deg, #2b1f14 0%, #3d2b1c 40%, #4a3726 100%), radial-gradient(ellipse at 50% 70%, #5c4028 0%, transparent 70%); }
.scn-result-never-absolute .desk { position:absolute; bottom:0; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #5a3d24 0%, #3a2614 100%); border-radius:4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-result-never-absolute .book { position:absolute; bottom:22%; left:50%; width:40%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%); border-radius:6px; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: rna-book 8s ease-in-out infinite; }
.scn-result-never-absolute .page-left { position:absolute; bottom:24%; left:30%; width:17%; height:24%; background: linear-gradient(180deg, #d4b896 0%, #b89870 100%); border-radius:2px; transform:rotate(-2deg); box-shadow: -1px 1px 4px rgba(0,0,0,.3); animation: rna-page-l 12s ease-in-out infinite alternate; }
.scn-result-never-absolute .page-right { position:absolute; bottom:24%; right:30%; width:17%; height:24%; background: linear-gradient(180deg, #d4b896 0%, #b89870 100%); border-radius:2px; transform:rotate(2deg); box-shadow: 1px 1px 4px rgba(0,0,0,.3); animation: rna-page-r 12s ease-in-out infinite alternate; }
.scn-result-never-absolute .candle { position:absolute; bottom:20%; left:20%; width:6px; height:28%; background: linear-gradient(180deg, #f0d8a8 0%, #c8a874 100%); border-radius:2px; box-shadow: 1px 0 4px rgba(200,168,116,.3); }
.scn-result-never-absolute .flame { position:absolute; bottom:48%; left:20%; width:8px; height:12px; margin-left:-1px; background: radial-gradient(ellipse, #ffdd88 0%, #ffb040 60%, transparent 100%); border-radius:50%; animation: rna-flame 1.5s ease-in-out infinite alternate; }
.scn-result-never-absolute .glow { position:absolute; bottom:30%; left:15%; width:16%; height:40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,180,60,.25) 0%, transparent 100%); pointer-events:none; animation: rna-glow 3s ease-in-out infinite alternate; }
.scn-result-never-absolute .inkwell { position:absolute; bottom:18%; left:68%; width:12px; height:14px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-result-never-absolute .quill { position:absolute; bottom:24%; left:75%; width:4px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #b89870 70%); border-radius:2px; transform:rotate(-15deg); transform-origin: bottom center; animation: rna-quill 5s ease-in-out infinite alternate; }
@keyframes rna-book { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-0.5deg); } }
@keyframes rna-page-l { 0% { transform:rotate(-2deg) scaleY(1); } 50% { transform:rotate(-3deg) scaleY(1.01); } 100% { transform:rotate(-2deg) scaleY(1); } }
@keyframes rna-page-r { 0% { transform:rotate(2deg) scaleY(1); } 50% { transform:rotate(3deg) scaleY(1.01); } 100% { transform:rotate(2deg) scaleY(1); } }
@keyframes rna-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.15) translateY(-2px); opacity:1; } 100% { transform:scaleY(.95) translateY(1px); opacity:.9; } }
@keyframes rna-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes rna-quill { 0% { transform:rotate(-15deg); } 50% { transform:rotate(-10deg); } 100% { transform:rotate(-18deg); } }

/* probabilities-replace-extreme */
.scn-probabilities-replace-extreme { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #3a3a54 100%), radial-gradient(ellipse at 40% 50%, #2e2e4a 0%, transparent 60%); }
.scn-probabilities-replace-extreme .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a3a50 0%, #2e2e44 100%); border-bottom:4px solid #4a4a5e; }
.scn-probabilities-replace-extreme .window { position:absolute; top:10%; left:50%; width:30%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #0e1a2e 0%, #1a2a44 100%); border:6px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-probabilities-replace-extreme .curtain-left { position:absolute; top:8%; left:20%; width:12%; height:50%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); border-radius:0 60% 0 0; transform-origin: left top; animation: pre-curtain-l 12s ease-in-out infinite alternate; }
.scn-probabilities-replace-extreme .curtain-right { position:absolute; top:8%; right:20%; width:12%; height:50%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); border-radius:60% 0 0 0; transform-origin: right top; animation: pre-curtain-r 12s ease-in-out infinite alternate; }
.scn-probabilities-replace-extreme .chair { position:absolute; bottom:30%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-probabilities-replace-extreme .table { position:absolute; bottom:18%; left:15%; width:30%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-probabilities-replace-extreme .lamp { position:absolute; bottom:32%; left:25%; width:8px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:2px; }
.scn-probabilities-replace-extreme .lamplight { position:absolute; bottom:32%; left:24%; width:16px; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.3) 0%, transparent 100%); pointer-events:none; animation: pre-lamplight 4s ease-in-out infinite alternate; }
.scn-probabilities-replace-extreme .figure { position:absolute; bottom:28%; left:30%; width:14%; height:38%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pre-figure 6s ease-in-out infinite alternate; }
@keyframes pre-curtain-l { 0% { transform: skewX(0deg) scaleX(1); } 50% { transform: skewX(-3deg) scaleX(1.02); } 100% { transform: skewX(0deg) scaleX(1); } }
@keyframes pre-curtain-r { 0% { transform: skewX(0deg) scaleX(1); } 50% { transform: skewX(3deg) scaleX(1.02); } 100% { transform: skewX(0deg) scaleX(1); } }
@keyframes pre-lamplight { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:.8; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(.95); } }
@keyframes pre-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

/* political-object-reappears */
.scn-political-object-reappears { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%); }
.scn-political-object-reappears .shelf-top { position:absolute; top:18%; left:10%; right:10%; height:6px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-political-object-reappears .shelf-mid { position:absolute; top:38%; left:10%; right:10%; height:6px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-political-object-reappears .book-a { position:absolute; top:24%; left:20%; width:12%; height:12%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2214 100%); border-radius:2px; transform:rotate(2deg); animation: por-book 9s ease-in-out infinite alternate; }
.scn-political-object-reappears .book-b { position:absolute; top:24%; left:35%; width:14%; height:10%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius:2px; transform:rotate(-1deg); animation: por-book 11s ease-in-out infinite alternate-reverse; }
.scn-political-object-reappears .book-c { position:absolute; top:40%; left:30%; width:16%; height:14%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:2px; transform:rotate(1deg); animation: por-book 13s ease-in-out infinite alternate; }
.scn-political-object-reappears .globe { position:absolute; bottom:22%; left:55%; width:20%; height:20%; background: radial-gradient(circle, #5a7a5a 0%, #3a5a3a 50%, #2a3a2a 100%); border-radius:50%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: por-globe 20s linear infinite; }
.scn-political-object-reappears .candle { position:absolute; bottom:10%; left:15%; width:6px; height:25%; background: linear-gradient(180deg, #f0d8a8 0%, #c8a874 100%); border-radius:2px; }
.scn-political-object-reappears .flame { position:absolute; bottom:35%; left:15%; width:8px; height:12px; margin-left:-1px; background: radial-gradient(ellipse, #ffdd88 0%, #ffb040 60%, transparent 100%); border-radius:50%; animation: por-flame 1.8s ease-in-out infinite alternate; }
.scn-political-object-reappears .glow { position:absolute; bottom:25%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,180,60,.2) 0%, transparent 100%); pointer-events:none; animation: por-glow 4s ease-in-out infinite alternate; }
@keyframes por-book { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(1px); } }
@keyframes por-globe { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes por-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.2) translateY(-3px); opacity:1; } 100% { transform:scaleY(.9) translateY(1px); opacity:.9; } }
@keyframes por-glow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

/* political-object-standard */
.scn-political-object-standard { background: linear-gradient(180deg, #1e1610 0%, #2e2018 40%, #3e2a20 100%), radial-gradient(ellipse at 50% 60%, #4e3826 0%, transparent 70%); }
.scn-political-object-standard .table { position:absolute; bottom:0; left:5%; right:5%; height:55%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-political-object-standard .map { position:absolute; bottom:20%; left:10%; width:40%; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a88868 100%); border-radius:2px; transform:rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pos-map 10s ease-in-out infinite alternate; }
.scn-political-object-standard .map-roll { position:absolute; bottom:22%; right:15%; width:8px; height:25%; background: linear-gradient(180deg, #b89870 0%, #806050 100%); border-radius:4px; transform:rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pos-map-roll 8s ease-in-out infinite alternate; }
.scn-political-object-standard .candle { position:absolute; bottom:18%; left:25%; width:6px; height:30%; background: linear-gradient(180deg, #f0d8a8 0%, #c8a874 100%); border-radius:2px; }
.scn-political-object-standard .flame { position:absolute; bottom:48%; left:25%; width:8px; height:12px; margin-left:-1px; background: radial-gradient(ellipse, #ffdd88 0%, #ffb040 60%, transparent 100%); border-radius:50%; animation: pos-flame 1.6s ease-in-out infinite alternate; }
.scn-political-object-standard .compass { position:absolute; bottom:30%; left:60%; width:16px; height:16px; background: radial-gradient(circle, #d4a040 0%, #a08030 50%, #6a5020 100%); border-radius:50%; border:2px solid #5a3a1a; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: pos-compass 15s linear infinite; }
.scn-political-object-standard .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); pointer-events:none; }
.scn-political-object-standard .glow { position:absolute; bottom:30%; left:20%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,180,60,.2) 0%, transparent 100%); pointer-events:none; animation: pos-glow 3.5s ease-in-out infinite alternate; }
@keyframes pos-map { 0% { transform:rotate(-2deg) scaleX(1); } 50% { transform:rotate(-3deg) scaleX(1.01); } 100% { transform:rotate(-2deg) scaleX(1); } }
@keyframes pos-map-roll { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(20deg) translateY(-2px); } 100% { transform:rotate(12deg) translateY(1px); } }
@keyframes pos-flame { 0% { transform:scaleY(1) translateY(0); opacity:.8; } 50% { transform:scaleY(1.15) translateY(-2px); opacity:1; } 100% { transform:scaleY(.95) translateY(1px); opacity:.9; } }
@keyframes pos-compass { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes pos-glow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-creation-maintenance-application {
  background: linear-gradient(180deg, #2b1a0e 0%, #1f1208 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3520 0%, transparent 70%);
}
.scn-creation-maintenance-application .wall-w-left {
  position: absolute; left: 0; top: 0; width: 48%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: sc1-wall 12s ease-in-out infinite alternate;
}
.scn-creation-maintenance-application .wall-w-right {
  position: absolute; right: 0; top: 0; width: 48%; height: 60%;
  background: linear-gradient(225deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
  animation: sc1-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-creation-maintenance-application .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 0 0 8% 8%;
}
.scn-creation-maintenance-application .desk {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: sc1-desk 6s ease-in-out infinite;
}
.scn-creation-maintenance-application .paper-stack {
  position: absolute; bottom: 32%; left: 40%; width: 8%; height: 8%;
  background: linear-gradient(180deg, #c8b898 0%, #a08860 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: sc1-paper 4s ease-in-out infinite;
}
.scn-creation-maintenance-application .lamp {
  position: absolute; bottom: 36%; left: 35%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.3);
}
.scn-creation-maintenance-application .glow-lamp {
  position: absolute; bottom: 36%; left: 33%; width: 10%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc1-glow 3s ease-in-out infinite alternate;
}
.scn-creation-maintenance-application .figure-desk {
  position: absolute; bottom: 24%; left: 36%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-figure 8s ease-in-out infinite;
}
.scn-creation-maintenance-application .book-shelf {
  position: absolute; top: 5%; right: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #5a4a3a;
}
@keyframes sc1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sc1-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc1-paper { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(1px) rotate(1deg) } }
@keyframes sc1-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes sc1-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg) } }

.scn-contest-organised-whole {
  background: linear-gradient(180deg, #1a120e 0%, #2a1a0e 40%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-contest-organised-whole .tent-roof {
  position: absolute; top: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: sc2-roof 10s ease-in-out infinite alternate;
}
.scn-contest-organised-whole .tent-wall {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-contest-organised-whole .table-large {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-contest-organised-whole .map {
  position: absolute; bottom: 30%; left: 20%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #b8a888 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: sc2-map 8s ease-in-out infinite;
}
.scn-contest-organised-whole .mini-figures {
  position: absolute; bottom: 32%; left: 25%; width: 10%; height: 6%;
  background: radial-gradient(circle at 50% 50%, #1a120e 30%, transparent 31%);
  box-shadow: 0 0 0 2px #2a1a0a;
  border-radius: 50%;
  animation: sc2-figures 5s ease-in-out infinite;
}
.scn-contest-organised-whole .lantern-top {
  position: absolute; top: 20%; left: 45%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-contest-organised-whole .lantern-glow {
  position: absolute; top: 18%; left: 42%; width: 14%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, transparent 70%);
  animation: sc2-glow 4s ease-in-out infinite alternate;
}
.scn-contest-organised-whole .shadow-soldier {
  position: absolute; bottom: 28%; left: 60%; width: 8%; height: 16%;
  background: #0a0604;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: sc2-shadow 7s ease-in-out infinite;
}
@keyframes sc2-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sc2-map { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes sc2-figures { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes sc2-glow { 0% { opacity: 0.5; transform: scale(0.95) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.98) } }
@keyframes sc2-shadow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-every-unit-combat {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%);
}
.scn-every-unit-combat .sky-night {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #12121f 0%, #1a1a2a 100%);
  animation: sc3-sky 15s ease-in-out infinite alternate;
}
.scn-every-unit-combat .wall-left-alley {
  position: absolute; left: 0; top: 20%; width: 15%; height: 80%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
}
.scn-every-unit-combat .wall-right-alley {
  position: absolute; right: 0; top: 20%; width: 15%; height: 80%;
  background: linear-gradient(270deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
}
.scn-every-unit-combat .ground-alley {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-every-unit-combat .soldier-1 {
  position: absolute; bottom: 10%; left: 22%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-march 6s ease-in-out infinite;
}
.scn-every-unit-combat .soldier-2 {
  position: absolute; bottom: 10%; left: 34%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-march 6s ease-in-out infinite 0.3s;
}
.scn-every-unit-combat .soldier-3 {
  position: absolute; bottom: 10%; left: 46%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-march 6s ease-in-out infinite 0.6s;
}
.scn-every-unit-combat .moon {
  position: absolute; top: 8%; left: 70%; width: 5%; height: 5%;
  background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 60%, transparent 61%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #a0a0b0;
  animation: sc3-moon 20s linear infinite;
}
.scn-every-unit-combat .moon-glow {
  position: absolute; top: 5%; left: 67%; width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc3-glow 5s ease-in-out infinite alternate;
}
@keyframes sc3-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sc3-march { 0% { transform: translateX(0) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) } 75% { transform: translateX(4px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes sc3-moon { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes sc3-glow { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

.scn-soldier-levied-to-fight {
  background: linear-gradient(180deg, #1a120e 0%, #2a1a0e 40%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-soldier-levied-to-fight .bunk-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a0e04 100%);
  animation: sc4-room 12s ease-in-out infinite alternate;
}
.scn-soldier-levied-to-fight .bunk-bed {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-soldier-levied-to-fight .soldier-sleeping {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-sleep 8s ease-in-out infinite;
}
.scn-soldier-levied-to-fight .blanket {
  position: absolute; bottom: 16%; left: 28%; width: 24%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sc4-blanket 6s ease-in-out infinite;
}
.scn-soldier-levied-to-fight .pack {
  position: absolute; bottom: 20%; right: 22%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.scn-soldier-levied-to-fight .candle {
  position: absolute; bottom: 28%; left: 8%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(255,200,100,0.3);
}
.scn-soldier-levied-to-fight .candle-glow {
  position: absolute; bottom: 26%; left: 4%; width: 10%; height: 14%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc4-candle-glow 4s ease-in-out infinite alternate;
}
.scn-soldier-levied-to-fight .shadow-rack {
  position: absolute; top: 5%; right: 10%; width: 6%; height: 40%;
  background: #0a0604;
  border-radius: 4px;
  opacity: 0.3;
  animation: sc4-rack 10s ease-in-out infinite;
}
@keyframes sc4-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes sc4-sleep { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sc4-blanket { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes sc4-candle-glow { 0% { opacity: 0.5; transform: scale(0.95) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(1) } }
@keyframes sc4-rack { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-introduction-waterloo-guns {
  background: linear-gradient(180deg, #c8d8e8 0%, #e8d8a0 40%, #c0a060 100%), radial-gradient(ellipse at 30% 60%, #f0e0a0 0%, transparent 80%);
}
.scn-introduction-waterloo-guns .sky-sun {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8cb4d8 0%, #f0e0a0 60%, transparent 100%);
  animation: wg-sky 12s ease-in-out infinite alternate;
}
.scn-introduction-waterloo-guns .field {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: wg-field 18s ease-in-out infinite;
}
.scn-introduction-waterloo-guns .cannon {
  position: absolute; bottom: 35%; height: 18px; width: 40px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a2a, #3a2a1a);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-introduction-waterloo-guns .cannon-a { left: 20%; }
.scn-introduction-waterloo-guns .cannon-b { left: 60%; transform: scaleX(-1); }
.scn-introduction-waterloo-guns .smoke {
  position: absolute; bottom: 42%; width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,140,.6) 0%, rgba(180,160,120,.2) 80%);
  border-radius: 50%; filter: blur(8px);
  animation: wg-smoke 8s ease-in-out infinite;
}
.scn-introduction-waterloo-guns .smoke-1 { left: 25%; animation-delay: 0s; }
.scn-introduction-waterloo-guns .smoke-2 { left: 65%; animation-delay: 4s; }
.scn-introduction-waterloo-guns .soldier-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 28px;
  background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wg-soldier 4s ease-in-out infinite alternate;
  box-shadow: -2px 0 4px rgba(0,0,0,.5);
}
.scn-introduction-waterloo-guns .flag {
  position: absolute; bottom: 34%; left: 48%; width: 16px; height: 12px;
  background: linear-gradient(90deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  border-radius: 0 60% 60% 0;
  animation: wg-flag 2s ease-in-out infinite alternate;
  transform-origin: left bottom;
}
@keyframes wg-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes wg-field { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes wg-smoke { 0% { transform: scale(1) translateY(0) rotate(0deg); opacity: .6; } 50% { transform: scale(1.3) translateY(-20px) rotate(3deg); opacity: .2; } 100% { transform: scale(1) translateY(0) rotate(0deg); opacity: .6; } }
@keyframes wg-soldier { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes wg-flag { 0% { transform: skewX(0deg); } 50% { transform: skewX(-8deg); } 100% { transform: skewX(0deg); } }

.scn-introduction-st-privat-modern-guns {
  background: linear-gradient(180deg, #6a8ab8 0%, #b8c8d8 40%, #a0b8a0 100%), radial-gradient(ellipse at 60% 40%, #f0e0b0 0%, transparent 60%);
}
.scn-introduction-st-privat-modern-guns .sky-bright {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c0e0 0%, #f0e8c8 70%, transparent 100%);
  animation: spg-sky 10s ease-in-out infinite alternate;
}
.scn-introduction-st-privat-modern-guns .slope {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a6a3a 0%, #4a5a2a 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: spg-slope 20s ease-in-out infinite;
}
.scn-introduction-st-privat-modern-guns .battery {
  position: absolute; bottom: 28%; height: 20px; width: 80px;
  background: linear-gradient(90deg, #3a3a2a, #5a4a3a, #3a3a2a);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: spg-battery 6s ease-in-out infinite alternate;
}
.scn-introduction-st-privat-modern-guns .battery-1 { left: 15%; }
.scn-introduction-st-privat-modern-guns .battery-2 { left: 55%; transform: scaleX(-1); animation-delay: 3s; }
.scn-introduction-st-privat-modern-guns .artillery-smoke {
  position: absolute; bottom: 34%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(220,200,180,.5) 0%, rgba(180,160,140,.1) 80%);
  border-radius: 50%; filter: blur(6px);
  animation: spg-smoke 7s ease-in-out infinite;
}
.scn-introduction-st-privat-modern-guns .s1 { left: 20%; animation-delay: 0s; }
.scn-introduction-st-privat-modern-guns .s2 { left: 60%; animation-delay: 3.5s; }
.scn-introduction-st-privat-modern-guns .troop-line {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #2a2a1a 10%, #1a1a0a 20%, #2a2a1a 40%, #1a1a0a 60%, #2a2a1a 80%, transparent 100%);
  border-radius: 50%;
  animation: spg-troop 15s linear infinite;
}
@keyframes spg-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes spg-slope { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes spg-battery { 0% { transform: rotate(-1deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(1deg); } }
@keyframes spg-smoke { 0% { transform: scale(1) translateY(0); opacity: .5; } 50% { transform: scale(1.5) translateY(-30px); opacity: .1; } 100% { transform: scale(1) translateY(0); opacity: .5; } }
@keyframes spg-troop { 0% { background-position: 0% 0; } 50% { background-position: 50% 0; } 100% { background-position: 100% 0; } }

.scn-introduction-death-reaction-leader {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-introduction-death-reaction-leader .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: drl-wall 20s ease-in-out infinite alternate;
}
.scn-introduction-death-reaction-leader .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
}
.scn-introduction-death-reaction-leader .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: drl-table 8s ease-in-out infinite;
}
.scn-introduction-death-reaction-leader .candle-glow {
  position: absolute; bottom: 44%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #ffd060 0%, #c08040 60%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 12px #c08040, 0 0 80px 24px rgba(192,128,64,.4);
  animation: drl-candle 3s ease-in-out infinite alternate;
}
.scn-introduction-death-reaction-leader .candle-wax {
  position: absolute; bottom: 34%; left: 49%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 30% 30% 10% 10%;
  animation: drl-wax 4s ease-in-out infinite;
}
.scn-introduction-death-reaction-leader .leader-figure {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drl-figure 6s ease-in-out infinite alternate;
  box-shadow: -3px 0 8px rgba(0,0,0,.4);
}
.scn-introduction-death-reaction-leader .scroll {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #c8b090 0%, #e8d8c0 50%, #c8b090 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 1px 2px 4px rgba(0,0,0,.5);
  animation: drl-scroll 12s ease-in-out infinite;
}
@keyframes drl-wall { 0% { opacity: .9; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes drl-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes drl-candle { 0% { box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.3); opacity: .9; } 50% { box-shadow: 0 0 50px 14px #e0a050, 0 0 80px 24px rgba(224,160,80,.5); opacity: 1; } 100% { box-shadow: 0 0 35px 10px #c08040, 0 0 70px 20px rgba(192,128,64,.35); opacity: .85; } }
@keyframes drl-wax { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.95) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes drl-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes drl-scroll { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }

.scn-introduction-character-and-resistance {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #2a2a1a 100%), radial-gradient(ellipse at 40% 70%, #5a4a3a 0%, transparent 70%);
}
.scn-introduction-character-and-resistance .room-back {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,.3);
  animation: cr-back 18s ease-in-out infinite alternate;
}
.scn-introduction-character-and-resistance .lamp-light {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 80%, #f0e0a0 0%, #c0a060 50%, transparent 100%);
  border-radius: 20% 20% 60% 60%;
  box-shadow: 0 0 50px 15px #c0a060, 0 0 100px 30px rgba(192,160,96,.3);
  animation: cr-lamp 4s ease-in-out infinite alternate;
}
.scn-introduction-character-and-resistance .desk {
  position: absolute; bottom: 20%; left: 25%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cr-desk 10s ease-in-out infinite;
}
.scn-introduction-character-and-resistance .book {
  position: absolute; bottom: 28%; height: 14px;
  background: linear-gradient(90deg, #6a4a2a, #8a6a3a, #6a4a2a);
  border-radius: 10%;
  box-shadow: 1px 2px 4px rgba(0,0,0,.4);
}
.scn-introduction-character-and-resistance .book-open {
  left: 35%; width: 30px;
  animation: cr-book 6s ease-in-out infinite alternate;
}
.scn-introduction-character-and-resistance .book-closed {
  left: 55%; width: 18px;
  animation: cr-book 8s ease-in-out infinite alternate-reverse;
}
.scn-introduction-character-and-resistance .chair {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: cr-chair 12s ease-in-out infinite;
}
.scn-introduction-character-and-resistance .reader-silhouette {
  position: absolute; bottom: 18%; left: 30%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-reader 5s ease-in-out infinite alternate;
  box-shadow: -3px 0 6px rgba(0,0,0,.3);
}
.scn-introduction-character-and-resistance .quill {
  position: absolute; bottom: 30%; left: 33%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #e8e0c0 0%, #c8b090 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-20deg);
  animation: cr-quill 3s ease-in-out infinite alternate;
}
@keyframes cr-back { 0% { opacity: .9; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes cr-lamp { 0% { box-shadow: 0 0 40px 10px #c0a060, 0 0 80px 20px rgba(192,160,96,.25); opacity: .9; } 50% { box-shadow: 0 0 60px 18px #d0b070, 0 0 100px 30px rgba(208,176,112,.4); opacity: 1; } 100% { box-shadow: 0 0 45px 12px #c0a060, 0 0 90px 25px rgba(192,160,96,.3); opacity: .85; } }
@keyframes cr-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cr-book { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }
@keyframes cr-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cr-reader { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cr-quill { 0% { transform: rotate(-22deg); } 50% { transform: rotate(-18deg); } 100% { transform: rotate(-22deg); } }

/* Scene: bodily-effort-like-elastic-body */
.scn-bodily-effort-like-elastic-body {
  background:
    linear-gradient(135deg, #2a2218 0%, #1c1712 30%, #3a2a1a 70%, #1c1712 100%),
    radial-gradient(ellipse at 60% 30%, #5a4028 0%, transparent 60%);
  overflow: hidden;
}
.scn-bodily-effort-like-elastic-body .wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #3d3228 0%, #2a2218 100%); animation: ela-wall 12s ease-in-out infinite alternate; }
.scn-bodily-effort-like-elastic-body .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #2a2218 0%, #1a1510 100%); border-radius:30% 30% 0 0; box-shadow:inset 0 20px 30px rgba(0,0,0,.6); }
.scn-bodily-effort-like-elastic-body .lamp { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background:linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%); border-radius:10% 10% 40% 40%; transform-origin:bottom center; animation: ela-lamp 6s ease-in-out infinite; }
.scn-bodily-effort-like-elastic-body .glow { position:absolute; bottom:32%; left:20%; width:60px; height:60px; margin-left:-20px; background:radial-gradient(circle, rgba(200,150,80,.6) 0%, rgba(200,150,80,.05) 70%); border-radius:50%; filter:blur(12px); animation: ela-glow 4s ease-in-out infinite alternate; }
.scn-bodily-effort-like-elastic-body .figure { position:absolute; bottom:25%; left:55%; width:24px; height:50px; background:linear-gradient(180deg, #2a2218 0%, #1a1510 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: ela-figure 8s ease-in-out infinite; }
.scn-bodily-effort-like-elastic-body .elastic { position:absolute; bottom:35%; left:50%; width:30px; height:8px; background:linear-gradient(90deg, #8a6a4a 0%, #b09070 50%, #8a6a4a 100%); border-radius:50%; transform-origin:center; animation: ela-elastic 2s ease-in-out infinite; }
.scn-bodily-effort-like-elastic-body .spring { position:absolute; bottom:33%; left:48%; width:10px; height:15px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30%; animation: ela-spring 3s ease-in-out infinite; }
.scn-bodily-effort-like-elastic-body .shadow { position:absolute; bottom:22%; left:40%; width:80px; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); animation: ela-shadow 8s ease-in-out infinite; }
.scn-bodily-effort-like-elastic-body .dust { position:absolute; top:20%; left:30%; width:4px; height:4px; background:rgba(220,200,170,.15); border-radius:50%; filter:blur(2px); animation: ela-dust 20s linear infinite; }
@keyframes ela-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ela-lamp { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(-3deg) } }
@keyframes ela-glow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.2) } 100% { opacity:.4; transform:scale(1) } }
@keyframes ela-figure { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(8px) rotate(-5deg) } 50% { transform:translateX(16px) rotate(0deg) } 75% { transform:translateX(8px) rotate(5deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes ela-elastic { 0%,100% { transform:scaleX(1) scaleY(1) } 25% { transform:scaleX(1.6) scaleY(.8) } 50% { transform:scaleX(1) scaleY(1.2) } 75% { transform:scaleX(1.4) scaleY(.9) } }
@keyframes ela-spring { 0%,100% { transform:translateY(0) scaleY(1) } 25% { transform:translateY(-6px) scaleY(1.6) } 50% { transform:translateY(0) scaleY(1) } 75% { transform:translateY(-3px) scaleY(1.3) } }
@keyframes ela-shadow { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(1.4) } }
@keyframes ela-dust { 0% { transform:translate(0,0) scale(1); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translate(100px,-60px) scale(2); opacity:0 } }

/* Scene: judgment-guide-sensibilities */
.scn-judgment-guide-sensibilities {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2b241c 40%, #1e1a14 100%),
    radial-gradient(ellipse at 50% 80%, #3d3228 0%, transparent 70%);
}
.scn-judgment-guide-sensibilities .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1612 0%, #2b241c 50%, #1a1612 100%); opacity:.6; }
.scn-judgment-guide-sensibilities .table { position:absolute; bottom:8%; left:10%; right:10%; height:28%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.5); }
.scn-judgment-guide-sensibilities .scale-base { position:absolute; bottom:25%; left:50%; width:20px; height:18px; transform:translateX(-50%); background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:30%; }
.scn-judgment-guide-sensibilities .scale-arm { position:absolute; bottom:30%; left:calc(50% - 60px); width:120px; height:6px; background:linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius:20%; transform-origin:center bottom; animation: jud-arm 6s ease-in-out infinite alternate; }
.scn-judgment-guide-sensibilities .pan-left { position:absolute; bottom:25%; left:calc(50% - 70px); width:32px; height:8px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 50% 50%; transform-origin:top center; animation: jud-pan 6s ease-in-out infinite alternate; }
.scn-judgment-guide-sensibilities .pan-right { position:absolute; bottom:25%; left:calc(50% + 38px); width:32px; height:8px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 50% 50%; transform-origin:top center; animation: jud-pan 6s ease-in-out infinite alternate-reverse; }
.scn-judgment-guide-sensibilities .figure { position:absolute; bottom:18%; left:20%; width:22px; height:52px; background:linear-gradient(180deg, #2a2018 0%, #1a140e 100%); border-radius:45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: jud-figure 10s ease-in-out infinite; }
.scn-judgment-guide-sensibilities .candle { position:absolute; bottom:28%; right:20%; width:8px; height:30px; background:linear-gradient(180deg, #a08060 0%, #6a5040 100%); border-radius:10% 10% 20% 20%; }
.scn-judgment-guide-sensibilities .flame { position:absolute; bottom:50%; right:20%; width:12px; height:16px; margin-left:-2px; background:radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 70%); border-radius:50%; filter:blur(3px); animation: jud-flame 2s ease-in-out infinite alternate; }
@keyframes jud-arm { 0% { transform:rotate(5deg) } 50% { transform:rotate(-5deg) } 100% { transform:rotate(3deg) } }
@keyframes jud-pan { 0% { transform:scaleY(1) } 50% { transform:scaleY(.9) } 100% { transform:scaleY(1.05) } }
@keyframes jud-figure { 0% { transform:translateX(0) rotate(0deg) } 33% { transform:translateX(10px) rotate(-2deg) } 66% { transform:translateX(20px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes jud-flame { 0% { opacity:.7; transform:scale(1) translateY(0) } 50% { opacity:1; transform:scale(1.1) translateY(-2px) } 100% { opacity:.8; transform:scale(1) translateY(0) } }

/* Scene: information-in-war-title */
.scn-information-in-war-title {
  background:
    linear-gradient(135deg, #1c1813 0%, #2e261d 40%, #1c1813 100%),
    radial-gradient(ellipse at 30% 40%, #4a3a28 0%, transparent 60%);
}
.scn-information-in-war-title .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #2a2218 0%, #1a1510 100%); }
.scn-information-in-war-title .desk { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 -6px 15px rgba(0,0,0,.8), 0 4px 10px rgba(0,0,0,.5); }
.scn-information-in-war-title .lamp { position:absolute; bottom:30%; left:15%; width:16px; height:36px; background:linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:10% 10% 40% 40%; transform-origin:bottom center; animation: inf-lamp 8s ease-in-out infinite; }
.scn-information-in-war-title .lamp-glow { position:absolute; bottom:32%; left:15%; width:80px; height:80px; margin-left:-32px; background:radial-gradient(circle, rgba(200,160,100,.5) 0%, rgba(200,160,100,.02) 70%); border-radius:50%; filter:blur(18px); animation: inf-glow 5s ease-in-out infinite alternate; }
.scn-information-in-war-title .papers-stack { position:absolute; bottom:20%; left:30%; width:36px; height:14px; background:linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: inf-stack 10s ease-in-out infinite; }
.scn-information-in-war-title .paper1 { position:absolute; bottom:24%; left:42%; width:40px; height:6px; background:linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:2px; transform:rotate(-8deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: inf-paper1 12s ease-in-out infinite; }
.scn-information-in-war-title .paper2 { position:absolute; bottom:26%; left:38%; width:44px; height:6px; background:linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:2px; transform:rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: inf-paper2 15s ease-in-out infinite; }
.scn-information-in-war-title .inkwell { position:absolute; bottom:20%; left:70%; width:14px; height:18px; background:linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-information-in-war-title .shadow { position:absolute; bottom:8%; left:20%; right:20%; height:12%; background:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 80%); }
@keyframes inf-lamp { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } }
@keyframes inf-glow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.1) } 100% { opacity:.4; transform:scale(1) } }
@keyframes inf-stack { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes inf-paper1 { 0% { transform:rotate(-8deg) } 50% { transform:rotate(-6deg) translateX(3px) } 100% { transform:rotate(-8deg) } }
@keyframes inf-paper2 { 0% { transform:rotate(5deg) } 50% { transform:rotate(3deg) translateX(-2px) } 100% { transform:rotate(5deg) } }

/* Scene: information-contradictory-false */
.scn-information-contradictory-false {
  background:
    linear-gradient(180deg, #1a1510 0%, #2a1f18 50%, #1a1510 100%),
    radial-gradient(ellipse at 40% 30%, #3d2b1e 0%, transparent 60%);
}
.scn-information-contradictory-false .bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a1510 0%, #2a1f18 50%, #1a1510 100%); opacity:.5; }
.scn-information-contradictory-false .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1f18 0%, #1a1510 100%); border-radius:40% 40% 0 0; }
.scn-information-contradictory-false .desk { position:absolute; bottom:12%; left:8%; right:8%; height:28%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -6px 15px rgba(0,0,0,.8); }
.scn-information-contradictory-false .doc-left { position:absolute; bottom:28%; left:25%; width:40px; height:20px; background:linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:4% 4% 0 0; transform:rotate(-12deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: con-doc-left 8s ease-in-out infinite alternate; }
.scn-information-contradictory-false .doc-right { position:absolute; bottom:28%; left:45%; width:40px; height:20px; background:linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:4% 4% 0 0; transform:rotate(12deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: con-doc-right 8s ease-in-out infinite alternate; }
.scn-information-contradictory-false .arrow-left { position:absolute; bottom:38%; left:30%; width:24px; height:4px; background:#a08060; border-radius:2px; transform:rotate(10deg); animation: con-arrow-left 4s ease-in-out infinite; }
.scn-information-contradictory-false .arrow-right { position:absolute; bottom:38%; left:46%; width:24px; height:4px; background:#a08060; border-radius:2px; transform:rotate(-10deg); animation: con-arrow-right 4s ease-in-out infinite; }
.scn-information-contradictory-false .hand { position:absolute; bottom:34%; left:38%; width:18px; height:22px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a12 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom center; animation: con-hand 7s ease-in-out infinite; }
.scn-information-contradictory-false .candle { position:absolute; bottom:30%; right:12%; width:6px; height:28px; background:linear-gradient(180deg, #a08060 0%, #6a5040 100%); border-radius:10% 10% 20% 20%; }
@keyframes con-doc-left { 0% { transform:rotate(-12deg) } 50% { transform:rotate(-4deg) translateX(6px) } 100% { transform:rotate(-12deg) } }
@keyframes con-doc-right { 0% { transform:rotate(12deg) } 50% { transform:rotate(4deg) translateX(-6px) } 100% { transform:rotate(12deg) } }
@keyframes con-arrow-left { 0%,100% { transform:rotate(10deg) translateX(0) } 50% { transform:rotate(5deg) translateX(8px) } }
@keyframes con-arrow-right { 0%,100% { transform:rotate(-10deg) translateX(0) } 50% { transform:rotate(-5deg) translateX(-8px) } }
@keyframes con-hand { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(5px) rotate(8deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-5px) rotate(-8deg) } 100% { transform:translateX(0) rotate(0deg) } }

/* Scene: medicine-physician-of-mind */
.scn-medicine-physician-of-mind {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 20%, #4a3220 0%, transparent 70%);
}
.scn-medicine-physician-of-mind .wall-back {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1e1410 100%);
  animation: mdp-wall 12s ease-in-out infinite alternate;
}
.scn-medicine-physician-of-mind .wall-side {
  position: absolute; inset: 0 30% 45% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1e18 100%);
  border-radius: 0 0 20% 0;
  box-shadow: inset -8px 0 16px rgba(0,0,0,.5);
}
.scn-medicine-physician-of-mind .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #6a4a32 0%, #4a2e1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: mdp-table 6s ease-in-out infinite;
}
.scn-medicine-physician-of-mind .book {
  position: absolute; bottom: 28%; left: 20%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a32 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  transform: rotate(-4deg);
}
.scn-medicine-physician-of-mind .book-a { left: 20%; animation: mdp-book-a 8s ease-in-out infinite; }
.scn-medicine-physician-of-mind .book-b { left: 30%; width: 22px; height: 30px; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); transform: rotate(2deg); animation: mdp-book-b 10s ease-in-out infinite; }
.scn-medicine-physician-of-mind .candle {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8c8a8 0%, #c8a888 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: mdp-candle 4s ease-in-out infinite;
}
.scn-medicine-physician-of-mind .figure {
  position: absolute; bottom: 20%; left: 55%; width: 24px; 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: mdp-figure 6s ease-in-out infinite;
}
.scn-medicine-physician-of-mind .glow {
  position: absolute; bottom: 36%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mdp-glow 3s ease-in-out infinite alternate;
}
@keyframes mdp-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes mdp-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateY(-1px); } }
@keyframes mdp-book-a { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes mdp-book-b { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } }
@keyframes mdp-candle { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.05); } }
@keyframes mdp-figure { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes mdp-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1.05); } }

/* Scene: moral-quantities-must-not-be-excluded */
.scn-moral-quantities-must-not-be-excluded {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a4a 0%, transparent 70%);
}
.scn-moral-quantities-must-not-be-excluded .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a3e2a 0%, #2a2218 100%);
  border-radius: 10% 10% 0 0;
}
.scn-moral-quantities-must-not-be-excluded .table-map {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2e1e 100%);
  border-radius: 4%;
  box-shadow: 0 -4px 20px rgba(0,0,0,.7);
  transform: perspective(800px) rotateX(10deg);
  animation: mqt-table 15s ease-in-out infinite;
}
.scn-moral-quantities-must-not-be-excluded .map-detail {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  opacity: .4;
}
.scn-moral-quantities-must-not-be-excluded .piece {
  position: absolute; bottom: 30%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-moral-quantities-must-not-be-excluded .piece-a { left: 30%; animation: mqt-piece-a 8s ease-in-out infinite; }
.scn-moral-quantities-must-not-be-excluded .piece-b { left: 55%; width: 10px; height: 16px; animation: mqt-piece-b 10s ease-in-out infinite; }
.scn-moral-quantities-must-not-be-excluded .hand {
  position: absolute; bottom: 18%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-moral-quantities-must-not-be-excluded .hand-left { left: 20%; animation: mqt-hand-l 5s ease-in-out infinite; }
.scn-moral-quantities-must-not-be-excluded .hand-right { right: 20%; animation: mqt-hand-r 7s ease-in-out infinite; }
.scn-moral-quantities-must-not-be-excluded .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: mqt-shadow 12s ease-in-out infinite alternate;
}
@keyframes mqt-table { 0%,100% { transform: perspective(800px) rotateX(10deg) translateY(0); } 50% { transform: perspective(800px) rotateX(12deg) translateY(-2px); } }
@keyframes mqt-piece-a { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes mqt-piece-b { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes mqt-hand-l { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes mqt-hand-r { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } }
@keyframes mqt-shadow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

/* Scene: danger-crystallin-lens */
.scn-danger-crystallin-lens {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 40%, #4a3220 0%, transparent 80%);
}
.scn-danger-crystallin-lens .bg-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  animation: crl-wall 8s ease-in-out infinite alternate;
}
.scn-danger-crystallin-lens .frame {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 8px #3a2a1e, 0 0 30px rgba(0,0,0,.7);
}
.scn-danger-crystallin-lens .lens-ring {
  position: absolute; bottom: 35%; left: 35%; right: 35%; height: 50%;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 60%, #2a1e18 100%);
  border-radius: 50%;
  border: 2px solid #5a4a3a;
  animation: crl-ring 3s ease-in-out infinite;
}
.scn-danger-crystallin-lens .lens-glass {
  position: absolute; bottom: 38%; left: 38%; right: 38%; height: 44%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 30%, #8a6030 60%, transparent 100%);
  border-radius: 50%;
  opacity: .7;
  animation: crl-glass 4s ease-in-out infinite alternate;
}
.scn-danger-crystallin-lens .glare {
  position: absolute; bottom: 40%; left: 40%; right: 40%; height: 40%;
  background: radial-gradient(circle, #fff 0%, #ffd080 30%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: crl-glare 2s ease-in-out infinite;
}
.scn-danger-crystallin-lens .hand-grip {
  position: absolute; bottom: 20%; left: 45%; right: 45%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 20%;
  transform-origin: top center;
  animation: crl-grip 5s ease-in-out infinite alternate;
}
.scn-danger-crystallin-lens .target-spot {
  position: absolute; bottom: 45%; left: 45%; right: 45%; height: 10%;
  background: radial-gradient(circle, #ff4000 0%, #cc0000 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: crl-target 1.5s ease-in-out infinite;
}
@keyframes crl-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes crl-ring { 0%,100% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.05); opacity: 1; } }
@keyframes crl-glass { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .9; transform: scale(1.1); } 100% { opacity: .7; transform: scale(1.05); } }
@keyframes crl-glare { 0% { opacity: .2; transform: scale(1) rotate(0deg); } 50% { opacity: .8; transform: scale(1.2) rotate(10deg); } 100% { opacity: .3; transform: scale(1.05) rotate(5deg); } }
@keyframes crl-grip { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes crl-target { 0%,100% { opacity: .3; transform: scale(1); } 50% { opacity: .8; transform: scale(1.3); } }

/* Scene: objective-value-through-experience */
.scn-objective-value-through-experience {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, transparent 80%);
}
.scn-objective-value-through-experience .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e0e 0%, #1a1a1a 100%);
}
.scn-objective-value-through-experience .surface {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 30px rgba(0,0,0,.8);
  transform: perspective(600px) rotateX(8deg);
  animation: obv-surface 20s ease-in-out infinite;
}
.scn-objective-value-through-experience .piece-knight {
  position: absolute; bottom: 25%; left: 25%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: obv-knight 5s ease-in-out infinite;
}
.scn-objective-value-through-experience .piece-rook {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: obv-rook 7s ease-in-out infinite alternate;
}
.scn-objective-value-through-experience .piece-pawn {
  position: absolute; bottom: 35%; left: 65%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 1px 3px rgba(0,0,0,.4);
  animation: obv-pawn 6s ease-in-out infinite;
}
.scn-objective-value-through-experience .shadow-cast {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  animation: obv-shadow 10s ease-in-out infinite alternate;
}
.scn-objective-value-through-experience .motes {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(circle, rgba(255,255,255,.05) 0%, transparent 100%);
  background-size: 8px 8px;
  filter: blur(4px);
  animation: obv-motes 12s linear infinite;
}
@keyframes obv-surface { 0%,100% { transform: perspective(600px) rotateX(8deg) translateY(0); } 50% { transform: perspective(600px) rotateX(10deg) translateY(-2px); } }
@keyframes obv-knight { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(4deg); } }
@keyframes obv-rook { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes obv-pawn { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } }
@keyframes obv-shadow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes obv-motes { 0% { background-position: 0 0; } 100% { background-position: 100px 100px; } }

/* -------------------- brief-memoir-clausewitz-candle -------------------- */
.scn-brief-memoir-clausewitz-candle { background: linear-gradient(180deg, #1a0e0a 0%, #2a1406 30%, #0e0602 100%), radial-gradient(ellipse at 50% 30%, #3a1a06 0%, transparent 70%); }
.scn-brief-memoir-clausewitz-candle .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 25%, #4a1a06 0%, #120a04 80%); animation: bmc1-bg 4s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-candle .table { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a221a 0%, #1a100c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-brief-memoir-clausewitz-candle .candle { position:absolute; bottom:22%; left:55%; width:10px; height:40px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 50%, #8a6a3a 100%); border-radius: 2px; transform: translateX(-50%) rotate(-4deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bmc1-candle 3s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-candle .flame { position:absolute; bottom:56%; left:55%; width:14px; height:22px; transform: translateX(-50%); background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, #c05000 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px #f08020, 0 0 50px 16px rgba(240,128,32,.5); animation: bmc1-flame 1.2s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-candle .hand { position:absolute; bottom:23%; left:45%; width:22px; height:18px; background: radial-gradient(ellipse at 30% 40%, #c0a080 0%, #6a4a3a 80%); border-radius: 60% 40% 30% 50% / 50% 60% 40% 50%; transform: rotate(12deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bmc1-hand 2.5s ease-in-out infinite; }
.scn-brief-memoir-clausewitz-candle .letter { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%); border-radius: 1px 6px 2px 2px; transform: rotate(-8deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: bmc1-letter 5s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-candle .shadow-fig { position:absolute; bottom:22%; left:20%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 100%, #0a0402 0%, transparent 70%); border-radius: 40% 60% 20% 30% / 60% 50% 40% 30%; filter: blur(3px); animation: bmc1-shadow 6s ease-in-out infinite alternate; }
@keyframes bmc1-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes bmc1-candle { 0% { transform: translateX(-50%) rotate(-4deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(1.02) } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1) } }
@keyframes bmc1-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1) } 30% { transform: translateX(-50%) scaleY(1.15) scaleX(0.9) } 60% { transform: translateX(-50%) scaleY(0.95) scaleX(1.1) } 100% { transform: translateX(-50%) scaleY(1.05) scaleX(1) } }
@keyframes bmc1-hand { 0% { transform: rotate(12deg) translateY(0) } 50% { transform: rotate(14deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(1px) } }
@keyframes bmc1-letter { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-6deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(-1px) } }
@keyframes bmc1-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.95) } 100% { transform: scaleX(0.95) scaleY(1.05) } }

/* -------------------- brief-memoir-letters-read -------------------- */
.scn-brief-memoir-letters-read { background: linear-gradient(180deg, #1a0e0a 0%, #2a1406 20%, #0e0602 100%), radial-gradient(ellipse at 50% 50%, #3a1a06 0%, transparent 80%); }
.scn-brief-memoir-letters-read .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, #2a1206 0%, #0a0402 80%); animation: bmc2-bg 5s ease-in-out infinite alternate; }
.scn-brief-memoir-letters-read .table-long { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a221a 0%, #1a100c 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.7); }
.scn-brief-memoir-letters-read .candle-left { position:absolute; bottom:16%; left:30%; width:8px; height:35px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 50%, #8a6a3a 100%); border-radius: 2px; transform: translateX(-50%); box-shadow: 0 0 20px 6px #f08020; animation: bmc2-candle-left 2s ease-in-out infinite alternate; }
.scn-brief-memoir-letters-read .candle-right { position:absolute; bottom:16%; right:30%; width:8px; height:35px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 50%, #8a6a3a 100%); border-radius: 2px; transform: translateX(50%); box-shadow: 0 0 20px 6px #f08020; animation: bmc2-candle-right 2.5s ease-in-out infinite alternate-reverse; }
.scn-brief-memoir-letters-read .figure-left { position:absolute; bottom:18%; left:18%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 100%, #0a0602 0%, #1a0e06 80%); border-radius: 40% 60% 20% 30% / 50% 60% 30% 40%; filter: blur(2px); transform: rotate(6deg); animation: bmc2-fig-left 4s ease-in-out infinite; }
.scn-brief-memoir-letters-read .figure-right { position:absolute; bottom:18%; right:20%; width:32px; height:52px; background: radial-gradient(ellipse at 50% 100%, #0a0602 0%, #1a0e06 80%); border-radius: 60% 40% 30% 20% / 60% 50% 40% 30%; filter: blur(2px); transform: rotate(-4deg); animation: bmc2-fig-right 4.5s ease-in-out infinite alternate; }
.scn-brief-memoir-letters-read .letter-open { position:absolute; bottom:12%; left:50%; width:50px; height:35px; transform: translateX(-50%); background: linear-gradient(135deg, #d4c4a0 0%, #b0a080 50%, #c8b890 100%); border-radius: 2px 8px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bmc2-letter 3s ease-in-out infinite alternate; }
@keyframes bmc2-bg { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes bmc2-candle-left { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg) } 50% { transform: translateX(-50%) scaleY(1.04) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(0.98) rotate(1deg) } }
@keyframes bmc2-candle-right { 0% { transform: translateX(50%) scaleY(1) rotate(1deg) } 50% { transform: translateX(50%) scaleY(1.03) rotate(0deg) } 100% { transform: translateX(50%) scaleY(0.97) rotate(-1deg) } }
@keyframes bmc2-fig-left { 0% { transform: rotate(6deg) translateX(0) } 50% { transform: rotate(5deg) translateX(-2px) } 100% { transform: rotate(7deg) translateX(1px) } }
@keyframes bmc2-fig-right { 0% { transform: rotate(-4deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(-1px) } }
@keyframes bmc2-letter { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }

/* -------------------- brief-memoir-york-questions-clausewitz -------------------- */
.scn-brief-memoir-york-questions-clausewitz { background: linear-gradient(180deg, #1a0e0a 0%, #2a1406 25%, #0e0602 100%), radial-gradient(ellipse at 50% 20%, #3a1a06 0%, transparent 70%); }
.scn-brief-memoir-york-questions-clausewitz .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #2a1206 0%, #0a0402 80%); animation: bmc3-bg 6s ease-in-out infinite alternate; }
.scn-brief-memoir-york-questions-clausewitz .desk-top { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a221a 0%, #1a100c 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.7); }
.scn-brief-memoir-york-questions-clausewitz .document { position:absolute; bottom:10%; left:40%; width:50px; height:20px; background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%); transform: rotate(-10deg); border-radius: 1px 4px 1px 1px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bmc3-doc 4s ease-in-out infinite alternate; }
.scn-brief-memoir-york-questions-clausewitz .candle-mid { position:absolute; bottom:12%; left:50%; width:10px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 50%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #f08020; animation: bmc3-candle 3s ease-in-out infinite alternate; }
.scn-brief-memoir-york-questions-clausewitz .shadow-left { position:absolute; bottom:2%; left:10%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 100%, #0a0402 0%, transparent 60%); border-radius: 30% 70% 20% 30% / 50% 50% 30% 30%; filter: blur(4px); transform: rotate(10deg); animation: bmc3-shade-l 5s ease-in-out infinite alternate; }
.scn-brief-memoir-york-questions-clausewitz .shadow-right { position:absolute; bottom:2%; right:12%; width:35px; height:75px; background: radial-gradient(ellipse at 50% 100%, #0a0402 0%, transparent 60%); border-radius: 70% 30% 30% 20% / 50% 50% 40% 40%; filter: blur(4px); transform: rotate(-8deg); animation: bmc3-shade-r 5.5s ease-in-out infinite alternate-reverse; }
.scn-brief-memoir-york-questions-clausewitz .glow-edge { position:absolute; top:0; left:0; right:0; height:10%; background: radial-gradient(circle at 50% 0%, #f0a030 0%, transparent 80%); opacity: .12; animation: bmc3-glow 2s ease-in-out infinite alternate; }
@keyframes bmc3-bg { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes bmc3-doc { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(1px) } }
@keyframes bmc3-candle { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes bmc3-shade-l { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(12deg) scaleX(1.1) } 100% { transform: rotate(8deg) scaleX(0.95) } }
@keyframes bmc3-shade-r { 0% { transform: rotate(-8deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.05) } 100% { transform: rotate(-6deg) scaleX(0.9) } }
@keyframes bmc3-glow { 0% { opacity: .08 } 50% { opacity: .15 } 100% { opacity: .1 } }

/* -------------------- brief-memoir-clausewitz-replies -------------------- */
.scn-brief-memoir-clausewitz-replies { background: linear-gradient(180deg, #1a0e0a 0%, #2a1406 15%, #0e0602 100%), radial-gradient(ellipse at 50% 35%, #3a1a06 0%, transparent 80%); }
.scn-brief-memoir-clausewitz-replies .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, #2a1206 0%, #0a0402 80%); animation: bmc4-bg 4s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-replies .wall { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a100c 0%, #0e0804 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-brief-memoir-clausewitz-replies .desk { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #3a221a 0%, #1a100c 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.7); }
.scn-brief-memoir-clausewitz-replies .candle-desk { position:absolute; bottom:15%; left:38%; width:8px; height:35px; background: linear-gradient(180deg, #e8d8b0 0%, #c0a878 50%, #8a6a3a 100%); border-radius: 2px; transform: translateX(-50%); box-shadow: 0 0 20px 8px #f08020; animation: bmc4-candle 2.8s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-replies .figure-standing { position:absolute; bottom:18%; right:22%; width:35px; height:70px; background: radial-gradient(ellipse at 50% 100%, #0a0602 0%, #1a0e06 80%); border-radius: 40% 60% 20% 30% / 50% 60% 30% 40%; filter: blur(2px); transform: rotate(3deg); animation: bmc4-figure 6s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-replies .letter-hand { position:absolute; bottom:13%; left:42%; width:30px; height:25px; background: linear-gradient(135deg, #d4c4a0 0%, #b0a080 50%, #c8b890 100%); border-radius: 2px 8px 2px 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bmc4-hand 3s ease-in-out infinite alternate; }
.scn-brief-memoir-clausewitz-replies .shadow-ground { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, #0a0402 0%, transparent 60%); filter: blur(6px); animation: bmc4-ground 7s ease-in-out infinite alternate; }
@keyframes bmc4-bg { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes bmc4-candle { 0% { transform: translateX(-50%) scaleY(1) rotate(-0.5deg) } 50% { transform: translateX(-50%) scaleY(1.05) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(0.98) rotate(0.5deg) } }
@keyframes bmc4-figure { 0% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(2deg) translateX(-3px) } 100% { transform: rotate(4deg) translateX(2px) } }
@keyframes bmc4-hand { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(1px) } }
@keyframes bmc4-ground { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-mutual-consent-battle {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a120c 40%, #0e0a07 100%),
    radial-gradient(ellipse at 50% 60%, #3d2b1a 0%, transparent 70%);
}
.scn-mutual-consent-battle .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2b1a 0%, #2a1f1a 60%, transparent);
  animation: mcb-bg 20s ease-in-out infinite alternate;
}
.scn-mutual-consent-battle .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a120c 0%, #2a1f1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-mutual-consent-battle .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3322 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,0.5);
}
.scn-mutual-consent-battle .figure-left {
  position: absolute; bottom: 20%; left: 32%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1e1612 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcb-fig-left 8s ease-in-out infinite;
}
.scn-mutual-consent-battle .figure-right {
  position: absolute; bottom: 20%; right: 32%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1e1612 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcb-fig-right 8s ease-in-out infinite;
}
.scn-mutual-consent-battle .candle {
  position: absolute; bottom: 32%; left: 50%; width: 6px; height: 18px; transform: translateX(-50%);
  background: linear-gradient(180deg, #f4d088 0%, #c09050 100%);
  border-radius: 3px 3px 1px 1px;
  animation: mcb-candle 4s ease-in-out infinite;
}
.scn-mutual-consent-battle .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, 20%);
  background: radial-gradient(circle, #f4d088 0%, #c09050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,120,50,0.3);
  animation: mcb-glow 3s ease-in-out infinite alternate;
}
.scn-mutual-consent-battle .window {
  position: absolute; top: 10%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #4a6a7a 0%, #2a3a4a 100%);
  border-radius: 5px; border: 2px solid #1a1a2a; box-shadow: inset 0 0 20px rgba(255,255,255,0.1);
  animation: mcb-window 12s ease-in-out infinite alternate;
}
@keyframes mcb-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mcb-fig-left { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes mcb-fig-right { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } }
@keyframes mcb-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes mcb-glow { 0% { opacity:0.7; transform: translate(-50%,20%) scale(1); } 100% { opacity:1; transform: translate(-50%,20%) scale(1.1); } }
@keyframes mcb-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-desire-conquer-subordinate {
  background: 
    linear-gradient(180deg, #1a1410 0%, #0e0b08 50%, #070504 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-desire-conquer-subordinate .bg-vertical {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f18 0%, #1a130e 100%);
  animation: dcs-bg 22s ease-in-out infinite alternate;
}
.scn-desire-conquer-subordinate .column-left {
  position: absolute; top: 0; bottom: 0; left: 20%; width: 8px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%);
  border-radius: 2px; box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-desire-conquer-subordinate .column-right {
  position: absolute; top: 0; bottom: 0; right: 20%; width: 8px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%);
  border-radius: 2px; box-shadow: -2px 0 6px rgba(0,0,0,0.5);
}
.scn-desire-conquer-subordinate .general {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcs-general 10s ease-in-out infinite;
}
.scn-desire-conquer-subordinate .subordinate {
  position: absolute; bottom: 15%; left: 40%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #2a1f18 0%, #0e0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcs-sub 10s ease-in-out infinite;
}
.scn-desire-conquer-subordinate .torch {
  position: absolute; bottom: 10%; left: 50%; width: 5px; height: 25px; transform: translateX(-50%);
  background: linear-gradient(180deg, #e0a050 0%, #b08030 100%);
  border-radius: 2px;
  animation: dcs-torch 5s ease-in-out infinite;
}
.scn-desire-conquer-subordinate .torch-glow {
  position: absolute; bottom: 12%; left: 50%; width: 50px; height: 50px; transform: translate(-50%, 30%);
  background: radial-gradient(circle, #e0a050 0%, #c08030 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(200,120,50,0.25);
  animation: dcs-torch-glow 4s ease-in-out infinite alternate;
}
@keyframes dcs-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dcs-general { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes dcs-sub { 0%,100% { transform: translateX(0) rotate(0deg) scale(0.95); } 50% { transform: translateX(-3px) rotate(3deg) scale(1); } }
@keyframes dcs-torch { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.92); } }
@keyframes dcs-torch-glow { 0% { opacity:0.7; transform: translate(-50%,30%) scale(1); } 100% { opacity:1; transform: translate(-50%,30%) scale(1.15); } }

.scn-item-ancients-order-battle {
  background: 
    linear-gradient(180deg, #e0d5b0 0%, #b8a87a 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 80%);
}
.scn-item-ancients-order-battle .camp-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d0e0 0%, #e0d5b0 100%);
  animation: aob-sky 18s ease-in-out infinite alternate;
}
.scn-item-ancients-order-battle .camp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #5a4a2a 0%, #7a6a3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-item-ancients-order-battle .tent-left {
  position: absolute; bottom: 30%; left: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: aob-tent-left 12s ease-in-out infinite;
}
.scn-item-ancients-order-battle .tent-right {
  position: absolute; bottom: 30%; right: 20%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #c8a878 0%, #907040 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: aob-tent-right 12s ease-in-out infinite alternate;
}
.scn-item-ancients-order-battle .banner {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 2px 2px 0 0;
  animation: aob-banner 8s ease-in-out infinite;
}
.scn-item-ancients-order-battle .campfire {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c08040 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.3);
  animation: aob-fire 5s ease-in-out infinite alternate;
}
.scn-item-ancients-order-battle .smoke {
  position: absolute; bottom: 38%; left: 42%; width: 25px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: aob-smoke 12s linear infinite;
}
@keyframes aob-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes aob-tent-left { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes aob-tent-right { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(0.97) translateX(2px); } }
@keyframes aob-banner { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } }
@keyframes aob-fire { 0% { opacity:0.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes aob-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

.scn-modern-consent-conditions {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #121212 60%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 80%);
}
.scn-modern-consent-conditions .table-top {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #3a302a 0%, #1e1a16 100%);
  border-radius: 5px; box-shadow: 0 -5px 20px rgba(0,0,0,0.5);
}
.scn-modern-consent-conditions .map {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(135deg, #c8b88a 0%, #a89870 40%, #887854 100%);
  border-radius: 3px;
  animation: mcc-map 15s ease-in-out infinite alternate;
}
.scn-modern-consent-conditions .soldier-one {
  position: absolute; bottom: 25%; left: 25%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcc-soldier1 6s ease-in-out infinite;
}
.scn-modern-consent-conditions .soldier-two {
  position: absolute; bottom: 25%; right: 30%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mcc-soldier2 7s ease-in-out infinite;
}
.scn-modern-consent-conditions .candle-war {
  position: absolute; bottom: 5%; left: 50%; width: 8px; height: 24px; transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c080 0%, #b89050 100%);
  border-radius: 3px;
  animation: mcc-candle 4s ease-in-out infinite;
}
.scn-modern-consent-conditions .candle-glow-war {
  position: absolute; bottom: 5%; left: 50%; width: 60px; height: 60px; transform: translate(-50%, -10%);
  background: radial-gradient(circle, #e8c080 0%, #c09850 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(200,150,80,0.2);
  animation: mcc-glow 4s ease-in-out infinite alternate;
}
@keyframes mcc-map { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes mcc-soldier1 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } }
@keyframes mcc-soldier2 { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes mcc-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.93); } }
@keyframes mcc-glow { 0% { opacity:0.6; transform: translate(-50%,-10%) scale(1); } 100% { opacity:1; transform: translate(-50%,-10%) scale(1.2); } }

.scn-flank-positions-strong {
  background: linear-gradient(180deg, #fff4e0 0%, #f0d8b0 100%),
              radial-gradient(ellipse at 60% 80%, #ffeac0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-flank-positions-strong .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 100%); }
.scn-flank-positions-strong .table { position: absolute; bottom: 8%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #b89878 0%, #8a7058 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: fs-table 6s ease-in-out infinite; }
.scn-flank-positions-strong .map { position: absolute; bottom: 18%; left: 25%; width: 50%; height: 20%; background: linear-gradient(135deg, #f0e0a8 0%, #e8d098 50%, #dcc080 100%); border-radius: 2px; box-shadow: inset 0 0 8px rgba(0,0,0,0.1); animation: fs-map 12s ease-in-out infinite; }
.scn-flank-positions-strong .candle { position: absolute; bottom: 50%; left: 48%; width: 8px; height: 28px; background: linear-gradient(180deg, #f0d060 0%, #c8a030 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px 2px rgba(240,208,96,0.6); animation: fs-candle 3s ease-in-out infinite alternate; }
.scn-flank-positions-strong .glow { position: absolute; bottom: 35%; left: 40%; width: 20%; height: 30%; background: radial-gradient(ellipse, rgba(255,220,140,0.4) 0%, transparent 70%); border-radius: 50%; animation: fs-glow 5s ease-in-out infinite alternate; }
.scn-flank-positions-strong .window { position: absolute; top: 12%; right: 8%; width: 100px; height: 140px; background: linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 100%); border: 8px solid #c0a888; border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: fs-window 10s ease-in-out infinite; }
.scn-flank-positions-strong .shadow { position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); pointer-events: none; }
@keyframes fs-table { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fs-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(0.5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes fs-candle { 0% { opacity: 0.9; box-shadow: 0 0 10px 2px rgba(240,208,96,0.5); } 50% { opacity: 1; box-shadow: 0 0 16px 4px rgba(240,208,96,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 8px 1px rgba(240,208,96,0.4); } }
@keyframes fs-glow { 0% { transform: scale(0.95); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.8; } }
@keyframes fs-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

.scn-flank-positions-non-strong {
  background: linear-gradient(180deg, #e8e0d0 0%, #d8d0c0 100%),
              radial-gradient(ellipse at 50% 90%, #faf0e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-non-strong .tent-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #d8ccb8 0%, #c0b4a0 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-flank-positions-non-strong .tent-flap { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(200,180,160,0.8) 0%, rgba(180,160,140,0.4) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: fn-flap 8s ease-in-out infinite; }
.scn-flank-positions-non-strong .desk { position: absolute; bottom: 12%; left: 15%; width: 70%; height: 25%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: fn-desk 10s ease-in-out infinite alternate; }
.scn-flank-positions-non-strong .papers { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10%; background: linear-gradient(135deg, #f0e8d0 0%, #e8dcc0 50%, #d8d0b0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: fn-papers 14s ease-in-out infinite; }
.scn-flank-positions-non-strong .lamp { position: absolute; bottom: 45%; left: 50%; width: 12px; height: 20px; background: linear-gradient(180deg, #e8c880 0%, #c8a850 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 0 16px 4px rgba(232,200,128,0.5); animation: fn-lamp 4s ease-in-out infinite alternate; }
.scn-flank-positions-non-strong .chair { position: absolute; bottom: 8%; left: 45%; width: 40px; height: 50px; background: linear-gradient(180deg, #908068 0%, #706050 100%); border-radius: 6px 6px 4px 4px; transform: rotate(-2deg); animation: fn-chair 12s ease-in-out infinite; }
.scn-flank-positions-non-strong .shadow-line { position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%); pointer-events: none; }
@keyframes fn-flap { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes fn-desk { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes fn-papers { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes fn-lamp { 0% { opacity: 0.9; box-shadow: 0 0 12px 3px rgba(232,200,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(232,200,128,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 10px 2px rgba(232,200,128,0.3); } }
@keyframes fn-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }

.scn-flank-positions-1806-example {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-1806-example .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 50%, #3a4a5a 100%); animation: f6-sky 15s ease-in-out infinite alternate; }
.scn-flank-positions-1806-example .clouds { position: absolute; top: 10%; left: 0; width: 100%; height: 40%; background: linear-gradient(180deg, rgba(180,190,200,0.3) 0%, transparent 100%); filter: blur(8px); animation: f6-clouds 30s linear infinite; }
.scn-flank-positions-1806-example .hills { position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: f6-hills 20s ease-in-out infinite alternate; }
.scn-flank-positions-1806-example .soldier { position: absolute; bottom: 28%; left: 35%; width: 16px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: f6-soldier 5s ease-in-out infinite; }
.scn-flank-positions-1806-example .flag { position: absolute; bottom: 40%; left: 30%; width: 6px; height: 30px; background: #4a3a2a; transform-origin: bottom; animation: f6-flag 3s ease-in-out infinite alternate; }
.scn-flank-positions-1806-example .flag::after { content: ''; position: absolute; top: 0; left: 3px; width: 20px; height: 14px; background: #a0461a; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: f6-flagpiece 3s ease-in-out infinite alternate; }
.scn-flank-positions-1806-example .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); }
.scn-flank-positions-1806-example .mist { position: absolute; bottom: 20%; left: 0; width: 100%; height: 20%; background: linear-gradient(180deg, rgba(200,210,220,0.2) 0%, transparent 100%); filter: blur(10px); animation: f6-mist 25s linear infinite alternate; }
@keyframes f6-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes f6-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes f6-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes f6-soldier { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes f6-flag { 0% { transform: rotate(0deg); } 100% { transform: rotate(10deg); } }
@keyframes f6-flagpiece { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.2); } }
@keyframes f6-mist { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }

.scn-flank-positions-1806-assessment {
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
              radial-gradient(ellipse at 60% 50%, #4a5a6a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-1806-assessment .tent-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a5a 0%, #3a3a4a 100%); clip-path: polygon(0 0, 100% 0, 85% 60%, 15% 60%); animation: fa-tent 12s ease-in-out infinite alternate; }
.scn-flank-positions-1806-assessment .map-table { position: absolute; bottom: 10%; left: 10%; width: 80%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: fa-table 8s ease-in-out infinite; }
.scn-flank-positions-1806-assessment .candle { position: absolute; bottom: 50%; left: 50%; width: 10px; height: 30px; background: linear-gradient(180deg, #e8c880 0%, #c8a850 100%); border-radius: 4px; box-shadow: 0 0 16px 4px rgba(232,200,128,0.5); animation: fa-candle 3s ease-in-out infinite alternate; }
.scn-flank-positions-1806-assessment .figure { position: absolute; bottom: 20%; left: 30%; 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: fa-figure 6s ease-in-out infinite; }
.scn-flank-positions-1806-assessment .shadow { position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); pointer-events: none; }
.scn-flank-positions-1806-assessment .paper { position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8%; background: linear-gradient(135deg, #e8dcc0 0%, #d8ccb0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: fa-paper 16s ease-in-out infinite; }
.scn-flank-positions-1806-assessment .glow { position: absolute; bottom: 35%; left: 40%; width: 20%; height: 30%; background: radial-gradient(ellipse, rgba(232,200,128,0.3) 0%, transparent 70%); border-radius: 50%; animation: fa-glow 5s ease-in-out infinite alternate; }
@keyframes fa-tent { 0% { clip-path: polygon(0 0, 100% 0, 85% 60%, 15% 60%); } 50% { clip-path: polygon(0 0, 100% 0, 83% 62%, 17% 62%); } 100% { clip-path: polygon(0 0, 100% 0, 85% 60%, 15% 60%); } }
@keyframes fa-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fa-candle { 0% { opacity: 0.9; box-shadow: 0 0 12px 3px rgba(232,200,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(232,200,128,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 10px 2px rgba(232,200,128,0.3); } }
@keyframes fa-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-3deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fa-paper { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes fa-glow { 0% { transform: scale(0.95); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.7; } }

/* Scene: duration-combat-definition (calm, dim-interior) */
.scn-duration-combat-definition {
  background: 
    linear-gradient(180deg, #1f1b16 0%, #2b2218 30%, #3a2c1c 60%, #1f1b16 100%),
    radial-gradient(ellipse at 50% 100%, #2b1e12 0%, transparent 70%);
}
.scn-duration-combat-definition .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2c231a 0%, #1f1b12 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-duration-combat-definition .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(135deg, #4a3520 0%, #2e1f10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: dcd-table 12s ease-in-out infinite alternate;
}
.scn-duration-combat-definition .book {
  position: absolute; bottom: 32%; left: 30%; width: 28%; height: 22%;
  background: linear-gradient(135deg, #5c4a2e 0%, #382b18 60%, #2a1f10 100%);
  border-radius: 2px 10px 10px 2px;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.7);
  transform: rotate(-2deg);
  animation: dcd-book 8s ease-in-out infinite alternate;
}
.scn-duration-combat-definition .candle {
  position: absolute; bottom: 40%; left: 22%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0d7a0 0%, #e0b060 40%, #8a6a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px rgba(255,180,80,0.3);
}
.scn-duration-combat-definition .flame {
  position: absolute; bottom: 57%; left: 22.5%; width: 2.5%; height: 8%;
  background: radial-gradient(ellipse at 50% 20%, #fff8cc 10%, #ffcc60 40%, #cc8830 80%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: dcd-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px rgba(255,180,60,0.4), 0 0 60px 20px rgba(200,120,40,0.2);
}
.scn-duration-combat-definition .inkwell {
  position: absolute; bottom: 34%; right: 25%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0d0804 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.8), 0 2px 8px rgba(0,0,0,0.5);
}
.scn-duration-combat-definition .quill {
  position: absolute; bottom: 42%; right: 18%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 30%, #908878 60%, #504840 100%);
  transform: rotate(20deg);
  transform-origin: 80% 100%;
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  animation: dcd-quill 6s ease-in-out infinite alternate;
}
.scn-duration-combat-definition .shadow-dcd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes dcd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dcd-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes dcd-flame { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.85; } }
@keyframes dcd-quill { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }

/* Scene: item-tardy-decision-compensation (tense, dim-interior) */
.scn-item-tardy-decision-compensation {
  background: 
    linear-gradient(180deg, #121212 0%, #1a1510 40%, #221a12 70%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0e 0%, transparent 60%);
}
.scn-item-tardy-decision-compensation .bg-tdc {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1510 0%, #0d0a08 100%);
}
.scn-item-tardy-decision-compensation .figure-tdc {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #2a2220 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: tdc-figure 3s ease-in-out infinite alternate;
}
.scn-item-tardy-decision-compensation .arm-tdc {
  position: absolute; bottom: 38%; left: 30%; width: 14%; height: 8%;
  background: #1a1512;
  border-radius: 0 80% 80% 0 / 0 60% 60% 0;
  transform-origin: right center;
  animation: tdc-arm 2s ease-in-out infinite alternate;
}
.scn-item-tardy-decision-compensation .map-tdc {
  position: absolute; bottom: 23%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(135deg, #c8b890 0%, #a09070 50%, #807050 100%);
  border-radius: 2px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.8);
  transform: rotate(-1deg);
}
.scn-item-tardy-decision-compensation .lamp-tdc {
  position: absolute; bottom: 60%; left: 48%; width: 6%; height: 16%;
  background: linear-gradient(180deg, #d0a050 0%, #806030 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 15px rgba(200,150,50,0.3);
}
.scn-item-tardy-decision-compensation .glow-tdc {
  position: absolute; bottom: 55%; left: 44%; width: 16%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,200,80,0.25) 0%, transparent 80%);
  animation: tdc-glow 1.5s ease-in-out infinite alternate;
}
.scn-item-tardy-decision-compensation .watch-tdc {
  position: absolute; bottom: 35%; left: 35%; width: 7%; height: 7%;
  background: radial-gradient(circle, #988860 30%, #605030 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,180,80,0.3);
  animation: tdc-watch 4s ease-in-out infinite;
}
@keyframes tdc-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tdc-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(0deg); } }
@keyframes tdc-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes tdc-watch { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }

/* Scene: artillery-duration-modern (calm, dim-interior) */
.scn-artillery-duration-modern {
  background: 
    linear-gradient(180deg, #1c1814 0%, #28201a 30%, #30261e 60%, #1c1814 100%),
    radial-gradient(ellipse at 50% 90%, #33241a 0%, transparent 70%);
}
.scn-artillery-duration-modern .floor-adm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-artillery-duration-modern .wall-adm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
}
.scn-artillery-duration-modern .cannon-adm {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(135deg, #4a3e30 0%, #2a1e12 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 10% 10%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.7);
  animation: adm-cannon 20s ease-in-out infinite alternate;
}
.scn-artillery-duration-modern .barrel-adm {
  position: absolute; bottom: 35%; left: 45%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #5a4e40 0%, #3a2e20 100%);
  border-radius: 20% 80% 80% 20% / 40% 60% 60% 40%;
  transform: rotate(-5deg);
}
.scn-artillery-duration-modern .balls-adm {
  position: absolute; bottom: 22%; left: 15%; width: 12%; height: 12%;
  background: radial-gradient(circle, #5a5040 30%, #2a2210 90%);
  border-radius: 50%;
  box-shadow: -8px 0 0 #3a3020, -16px 2px 0 #2a2210, -24px 0 0 #3a3020;
  animation: adm-balls 15s ease-in-out infinite alternate;
}
.scn-artillery-duration-modern .torch-adm {
  position: absolute; bottom: 55%; left: 10%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #c09040 0%, #8a6020 60%, #4a3010 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px rgba(200,120,40,0.3);
}
@keyframes adm-cannon { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes adm-balls { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }

/* Scene: division-resistance-hours (calm, dim-interior) – silhouettes on a ridge */
.scn-division-resistance-hours {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5e 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-division-resistance-hours .sky-dr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a3e 100%);
  animation: dr-sky 25s ease-in-out infinite alternate;
}
.scn-division-resistance-hours .ground-dr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2e2a24 0%, #1a1610 100%);
  border-radius: 80% 60% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-division-resistance-hours .soldier-a {
  position: absolute; bottom: 30%; left: 15%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dr-soldier 6s ease-in-out infinite alternate;
}
.scn-division-resistance-hours .soldier-b {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dr-soldier 7s ease-in-out 2s infinite alternate;
}
.scn-division-resistance-hours .soldier-c {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dr-soldier 8s ease-in-out 4s infinite alternate;
}
.scn-division-resistance-hours .spear-a {
  position: absolute; bottom: 60%; left: 17%; width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #4a4020 0%, #2a2210 100%);
  border-radius: 0 0 10% 10%;
  transform: rotate(-3deg);
  animation: dr-spear 6s ease-in-out infinite alternate;
}
.scn-division-resistance-hours .spear-b {
  position: absolute; bottom: 60%; left: 57%; width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #4a4020 0%, #2a2210 100%);
  border-radius: 0 0 10% 10%;
  transform: rotate(2deg);
  animation: dr-spear 7s ease-in-out 3s infinite alternate;
}
.scn-division-resistance-hours .lantern-dr {
  position: absolute; bottom: 58%; left: 48%; width: 3%; height: 6%;
  background: radial-gradient(ellipse, #e0b050 20%, #a08030 60%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,150,50,0.4);
  animation: dr-lantern 4s ease-in-out infinite alternate;
}
@keyframes dr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dr-soldier { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dr-spear { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes dr-lantern { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }

/* Scene 1: method-high-position-according-to-things */
.scn-method-high-position-according-to-things {
  background: 
    linear-gradient(180deg, #2c2a2a 0%, #1a1818 50%, #0f0d0d 100%),
    radial-gradient(ellipse at 50% 30%, #3a3530 0%, transparent 70%);
}
.scn-method-high-position-according-to-things .wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #4a3f3a 0%, transparent 60%);
  animation: mh1-wall 20s ease-in-out infinite alternate;
}
.scn-method-high-position-according-to-things .window {
  position: absolute; top: 8%; left: 20%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: mh1-window 8s ease-in-out infinite;
}
.scn-method-high-position-according-to-things .sill {
  position: absolute; top: 53%; left: 18%; width: 44%; height: 4%;
  background: linear-gradient(180deg, #5a4f4a 0%, #3a2f2a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-method-high-position-according-to-things .figure {
  position: absolute; top: 15%; left: 38%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh1-figure 6s ease-in-out infinite;
}
.scn-method-high-position-according-to-things .desk {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: mh1-desk 12s ease-in-out infinite alternate;
}
.scn-method-high-position-according-to-things .map {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: mh1-map 9s ease-in-out infinite;
}
.scn-method-high-position-according-to-things .candle {
  position: absolute; bottom: 30%; left: 25%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #d4b080 0%, #8a6a3a 100%);
  border-radius: 4px; box-shadow: 0 0 12px 4px #f0c060;
  animation: mh1-candle 3s ease-in-out infinite alternate;
}
@keyframes mh1-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes mh1-window { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(2px) } 100% { transform: scale(1) } }
@keyframes mh1-figure { 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 mh1-desk { 0% { transform: scale(1) } 50% { transform: scale(1.005) } 100% { transform: scale(1) } }
@keyframes mh1-map { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes mh1-candle { 0% { box-shadow: 0 0 8px 2px #f0c060, 0 0 16px 4px rgba(240,192,96,.4); opacity: .8 } 100% { box-shadow: 0 0 20px 6px #f0d080, 0 0 40px 12px rgba(240,208,128,.5); opacity: 1 } }

/* Scene 2: method-encroachment-without-theory */
.scn-method-encroachment-without-theory {
  background: 
    linear-gradient(180deg, #1e1a18 0%, #0f0d0c 50%, #070606 100%),
    radial-gradient(ellipse at 50% 40%, #2a2520 0%, transparent 70%);
}
.scn-method-encroachment-without-theory .table {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: mh2-table 15s ease-in-out infinite alternate;
}
.scn-method-encroachment-without-theory .hand {
  position: absolute; bottom: 28%; left: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mh2-hand 4s ease-in-out infinite;
}
.scn-method-encroachment-without-theory .paper {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: mh2-paper 7s ease-in-out infinite;
}
.scn-method-encroachment-without-theory .inkwell {
  position: absolute; bottom: 20%; left: 55%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-method-encroachment-without-theory .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: mh2-shadow 8s ease-in-out infinite alternate;
}
.scn-method-encroachment-without-theory .lamp {
  position: absolute; top: 10%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: mh2-lamp 3s ease-in-out infinite alternate;
}
@keyframes mh2-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mh2-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(16px) rotate(5deg) } 75% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mh2-paper { 0% { transform: rotate(0) } 50% { transform: rotate(4deg) translateX(2px) } 100% { transform: rotate(0) } }
@keyframes mh2-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes mh2-lamp { 0% { box-shadow: 0 0 10px 4px #c0a060, 0 0 20px 8px rgba(192,160,96,.3); opacity: .8 } 100% { box-shadow: 0 0 18px 6px #d0b070, 0 0 36px 12px rgba(208,176,112,.5); opacity: 1 } }

/* Scene 3: subjective-methodicism-cannot-be-banished */
.scn-subjective-methodicism-cannot-be-banished {
  background: 
    linear-gradient(180deg, #2a2825 0%, #1a1815 50%, #0a0805 100%),
    radial-gradient(ellipse at 50% 40%, #3a3530 0%, transparent 70%);
}
.scn-subjective-methodicism-cannot-be-banished .desk {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-subjective-methodicism-cannot-be-banished .chair {
  position: absolute; bottom: 22%; left: 12%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  animation: mh3-chair 6s ease-in-out infinite;
}
.scn-subjective-methodicism-cannot-be-banished .figure {
  position: absolute; bottom: 30%; left: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh3-figure 8s ease-in-out infinite;
}
.scn-subjective-methodicism-cannot-be-banished .paper {
  position: absolute; bottom: 18%; left: 40%; width: 35%; height: 14%;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: mh3-paper 5s ease-in-out infinite;
}
.scn-subjective-methodicism-cannot-be-banished .quill {
  position: absolute; bottom: 25%; left: 52%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mh3-quill 3s ease-in-out infinite;
}
.scn-subjective-methodicism-cannot-be-banished .inkpot {
  position: absolute; bottom: 20%; left: 60%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-subjective-methodicism-cannot-be-banished .lamp {
  position: absolute; top: 12%; left: 40%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: mh3-lamp 3s ease-in-out infinite alternate;
}
@keyframes mh3-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mh3-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mh3-paper { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes mh3-quill { 0% { transform: rotate(0) } 25% { transform: rotate(-6deg) } 50% { transform: rotate(0) } 75% { transform: rotate(6deg) } 100% { transform: rotate(0) } }
@keyframes mh3-lamp { 0% { box-shadow: 0 0 10px 4px #c0a060, 0 0 20px 8px rgba(192,160,96,.3); opacity: .8 } 100% { box-shadow: 0 0 20px 8px #d0b070, 0 0 40px 16px rgba(208,176,112,.5); opacity: 1 } }

/* Scene 4: criticism-title */
.scn-criticism-title {
  background: 
    linear-gradient(180deg, #262220 0%, #161210 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 70%);
}
.scn-criticism-title .book {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: mh4-book 10s ease-in-out infinite alternate;
}
.scn-criticism-title .glasses {
  position: absolute; bottom: 45%; left: 35%; width: 16%; height: 5%;
  background: transparent;
  border: 2px solid #a0a0a0;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(160,160,160,.3);
  animation: mh4-glasses 6s ease-in-out infinite;
}
.scn-criticism-title .figure {
  position: absolute; bottom: 18%; left: 20%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh4-figure 9s ease-in-out infinite;
}
.scn-criticism-title .lamp {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: mh4-lamp 3s ease-in-out infinite alternate;
}
.scn-criticism-title .shelf {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 5%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mh4-shelf 12s ease-in-out infinite alternate;
}
.scn-criticism-title .paper {
  position: absolute; bottom: 20%; left: 52%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: mh4-paper 7s ease-in-out infinite;
}
@keyframes mh4-book { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0) } }
@keyframes mh4-glasses { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mh4-figure { 0% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mh4-lamp { 0% { box-shadow: 0 0 10px 4px #c0a060, 0 0 20px 8px rgba(192,160,96,.3); opacity: .8 } 100% { box-shadow: 0 0 20px 8px #d0b070, 0 0 40px 16px rgba(208,176,112,.5); opacity: 1 } }
@keyframes mh4-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mh4-paper { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }

.scn-rule-example-cooking-enemy-camp {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f1a 40%, #1a100a 100%), radial-gradient(ellipse at 50% 100%, #3a2510 0%, transparent 60%);
}
.scn-rule-example-cooking-enemy-camp .tent {
  position: absolute; bottom: 20%; left: 12%; width: 90px; height: 70px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: skewX(-8deg);
  box-shadow: -4px 4px 10px rgba(0,0,0,0.6);
  animation: camp-tent 12s ease-in-out infinite alternate;
}
.scn-rule-example-cooking-enemy-camp .cook-silhouette {
  position: absolute; bottom: 16%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0f0f15 0%, #07070a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: camp-cook 4s ease-in-out infinite;
}
.scn-rule-example-cooking-enemy-camp .pot {
  position: absolute; bottom: 12%; left: 34%; width: 26px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset -2px -2px 4px #0a0500;
  animation: camp-pot 2s ease-in-out infinite alternate;
}
.scn-rule-example-cooking-enemy-camp .fire {
  position: absolute; bottom: 10%; left: 36%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 80%, #e08030 0%, #c06020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: camp-fire 1.5s ease-in-out infinite alternate;
}
.scn-rule-example-cooking-enemy-camp .firelight {
  position: absolute; bottom: 8%; right: 40%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,100,30,0.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: camp-firelight 3s ease-in-out infinite alternate;
}
.scn-rule-example-cooking-enemy-camp .background-camp {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a221a 50%, transparent 100%);
  animation: camp-bg 20s linear infinite;
}
@keyframes camp-tent { 0% { transform: skewX(-8deg) scale(1); } 50% { transform: skewX(-6deg) scale(1.01); } 100% { transform: skewX(-10deg) scale(0.99); } }
@keyframes camp-cook { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes camp-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes camp-fire { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes camp-firelight { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes camp-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-rule-attack-when-enemy-limbers-up {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1510 40%, #0a0805 100%), radial-gradient(ellipse at 80% 20%, #2a1a0a 0%, transparent 50%);
}
.scn-rule-attack-when-enemy-limbers-up .cannon {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 50% 50% / 30% 30% 60% 60%;
  transform: rotate(2deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: art-cannon 6s ease-in-out infinite alternate;
}
.scn-rule-attack-when-enemy-limbers-up .limber {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset -2px -2px 4px #0a0500;
  animation: art-limber 8s ease-in-out infinite alternate;
}
.scn-rule-attack-when-enemy-limbers-up .horse-silhouette {
  position: absolute; bottom: 8%; left: 55%; width: 45px; height: 32px;
  background: linear-gradient(180deg, #0d0d12 0%, #050508 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  transform: scaleX(-1);
  animation: art-horse 3s ease-in-out infinite;
}
.scn-rule-attack-when-enemy-limbers-up .soldier-limber {
  position: absolute; bottom: 12%; left: 38%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #121218 0%, #08080c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: art-soldier 2s ease-in-out infinite alternate;
}
.scn-rule-attack-when-enemy-limbers-up .artillery-glow {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 30% 100%, rgba(180,120,40,0.2) 0%, transparent 70%);
  animation: art-glow 4s ease-in-out infinite alternate;
}
@keyframes art-cannon { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes art-limber { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes art-horse { 0% { transform: scaleX(-1) translateY(0); } 25% { transform: scaleX(-1) translateY(-2px) rotate(-2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes art-soldier { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes art-glow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-regulations-methods-bring-preparatory-theories {
  background: linear-gradient(180deg, #1a1a1e 0%, #24222a 40%, #12101a 100%), radial-gradient(ellipse at 50% 50%, #2a2830 0%, transparent 60%);
}
.scn-regulations-methods-bring-preparatory-theories .drill-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3530 0%, #2a2520 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  animation: drill-ground 20s linear infinite alternate;
}
.scn-regulations-methods-bring-preparatory-theories .formation-left {
  position: absolute; bottom: 14%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #121218 0%, #08080c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scale(0.95);
  animation: drill-march 3s ease-in-out infinite;
}
.scn-regulations-methods-bring-preparatory-theories .formation-right {
  position: absolute; bottom: 12%; right: 20%; width: 30px; height: 46px;
  background: linear-gradient(180deg, #16161c 0%, #0a0a0e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scale(1.05);
  animation: drill-march 3.5s ease-in-out infinite reverse;
}
.scn-regulations-methods-bring-preparatory-theories .commander-silhouette {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0a0a10 0%, #030305 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: drill-commander 2s ease-in-out infinite alternate;
}
.scn-regulations-methods-bring-preparatory-theories .flag-drill {
  position: absolute; bottom: 30%; left: 52%; width: 4px; height: 24px;
  background: #3a2a1a;
  border-radius: 2px;
  animation: drill-flag 4s ease-in-out infinite;
}
.scn-regulations-methods-bring-preparatory-theories .flag-drill::after {
  content: '';
  position: absolute; top: -2px; left: 2px; width: 18px; height: 10px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px 8px 4px 2px;
  animation: drill-flag-wave 1s ease-in-out infinite alternate;
}
.scn-regulations-methods-bring-preparatory-theories .dust {
  position: absolute; bottom: 8%; left: 10%; width: 120%; height: 20px;
  background: radial-gradient(ellipse at 20% 100%, rgba(60,50,40,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: drill-dust 6s linear infinite;
}
@keyframes drill-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes drill-march { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes drill-commander { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes drill-flag { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes drill-flag-wave { 0% { transform: skewX(0deg); } 50% { transform: skewX(10deg); } 100% { transform: skewX(-5deg); } }
@keyframes drill-dust { 0% { transform: translateX(0); } 50% { transform: translateX(10%); } 100% { transform: translateX(0); } }

.scn-freedom-in-employment-cannot-be-regulations {
  background: linear-gradient(180deg, #151218 0%, #201a22 40%, #0e0c12 100%), radial-gradient(ellipse at 50% 70%, #2e2834 0%, transparent 60%);
}
.scn-freedom-in-employment-cannot-be-regulations .table-map {
  position: absolute; bottom: 16%; left: 20%; width: 65%; height: 20px;
  background: linear-gradient(180deg, #3a2e2a 0%, #2a201c 100%);
  border-radius: 10% 10% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: strat-table 10s ease-in-out infinite alternate;
}
.scn-freedom-in-employment-cannot-be-regulations .table-map::after {
  content: '';
  position: absolute; top: -10px; left: 10%; width: 80%; height: 10px;
  background: linear-gradient(135deg, #5a4a3a 20%, #4a3a2a 60%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: strat-map 15s linear infinite alternate;
}
.scn-freedom-in-employment-cannot-be-regulations .officer-left {
  position: absolute; bottom: 24%; left: 16%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #121016 0%, #08060c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  animation: strat-officer 5s ease-in-out infinite;
}
.scn-freedom-in-employment-cannot-be-regulations .officer-right {
  position: absolute; bottom: 22%; right: 18%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #100e12 0%, #06040a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-6deg);
  animation: strat-officer 4s ease-in-out infinite reverse;
}
.scn-freedom-in-employment-cannot-be-regulations .lantern-meeting {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #d0b060 0%, #a08040 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(180,120,40,0.6);
  animation: strat-lantern 3s ease-in-out infinite alternate;
}
.scn-freedom-in-employment-cannot-be-regulations .lantern-glow {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, rgba(180,120,40,0.15) 0%, transparent 70%);
  animation: strat-glow 4s ease-in-out infinite alternate;
}
@keyframes strat-table { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes strat-map { 0% { opacity: 0.7; background-position: 0% 0%; } 50% { opacity: 0.9; background-position: 20% 10%; } 100% { opacity: 0.75; background-position: 0% 0%; } }
@keyframes strat-officer { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(4deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes strat-lantern { 0% { box-shadow: 0 0 15px 4px rgba(180,120,40,0.4); } 50% { box-shadow: 0 0 25px 8px rgba(200,140,50,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(180,120,40,0.5); } }
@keyframes strat-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-charles-xii-not-genius {
  background: linear-gradient(180deg, #2a1f18 0%, #3d2a1f 60%, #5a3f2e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3525 0%, transparent 70%);
}
.scn-charles-xii-not-genius .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3525 0%, #2a1f18 100%);
  animation: c12-wall 30s ease-in-out infinite alternate;
}
.scn-charles-xii-not-genius .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1210 100%);
}
.scn-charles-xii-not-genius .desk {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a3f2e 0%, #3d2a1f 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: c12-desk 12s ease-in-out infinite alternate;
}
.scn-charles-xii-not-genius .candle {
  position: absolute; bottom: 37%; left: 46%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px 2px rgba(240,208,128,0.6);
  animation: c12-candle 4s ease-in-out infinite;
}
.scn-charles-xii-not-genius .candle-glow {
  position: absolute; bottom: 36%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(240,208,128,0.35) 0%, transparent 70%);
  transform: translate(-50%, 50%); filter: blur(4px);
  animation: c12-glow 3s ease-in-out infinite alternate;
}
.scn-charles-xii-not-genius .figure {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: c12-figure 8s ease-in-out infinite alternate;
}
.scn-charles-xii-not-genius .window {
  position: absolute; top: 12%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border: 3px solid #3d2a1f; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.2);
  animation: c12-window 20s ease-in-out infinite alternate;
}
@keyframes c12-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes c12-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes c12-candle { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.05) } 50% { transform: scaleY(0.95) } 75% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes c12-glow { 0% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.6 } 50% { transform: translate(-50%, 50%) scale(1.1); opacity: 0.9 } 100% { transform: translate(-50%, 50%) scale(1); opacity: 0.7 } }
@keyframes c12-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes c12-window { 0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(100,150,200,0.1) } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(100,150,200,0.3) } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(100,150,200,0.15) } }

.scn-general-must-not-cease-to-be-general {
  background: linear-gradient(180deg, #2a2218 0%, #3a2a1a 60%, #4a3520 100%),
              radial-gradient(ellipse at 50% 100%, #4a3520 0%, transparent 70%);
}
.scn-general-must-not-cease-to-be-general .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a2218 100%);
  animation: gnc-wall 25s ease-in-out infinite alternate;
}
.scn-general-must-not-cease-to-be-general .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
}
.scn-general-must-not-cease-to-be-general .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a3f2e 0%, #3d2a1f 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gnc-table 15s ease-in-out infinite alternate;
}
.scn-general-must-not-cease-to-be-general .map {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 50%, #8a6a3a 100%);
  border-radius: 20% 10% 30% 10% / 50% 30% 50% 30%;
  transform-origin: center;
  animation: gnc-map 20s ease-in-out infinite alternate;
}
.scn-general-must-not-cease-to-be-general .lamp {
  position: absolute; bottom: 40%; left: 18%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 8px 2px rgba(240,208,128,0.5);
  animation: gnc-lamp 4s ease-in-out infinite;
}
.scn-general-must-not-cease-to-be-general .lamp-glow {
  position: absolute; bottom: 38%; left: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,208,128,0.3) 0%, transparent 70%);
  transform: translate(-50%, 50%); filter: blur(6px);
  animation: gnc-glow 3s ease-in-out infinite alternate;
}
.scn-general-must-not-cease-to-be-general .figure {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gnc-figure 10s ease-in-out infinite alternate;
}
@keyframes gnc-wall { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes gnc-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes gnc-map { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.02) rotate(1deg) } 100% { transform: scaleX(0.98) rotate(-1deg) } }
@keyframes gnc-lamp { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.03) } 50% { transform: scaleY(0.97) } 75% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes gnc-glow { 0% { transform: translate(-50%, 50%) scale(0.85); opacity: 0.5 } 50% { transform: translate(-50%, 50%) scale(1.15); opacity: 0.9 } 100% { transform: translate(-50%, 50%) scale(1); opacity: 0.6 } }
@keyframes gnc-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-buonaparte-newton-euler {
  background: linear-gradient(180deg, #1a1810 0%, #2a2218 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2218 0%, transparent 70%);
}
.scn-buonaparte-newton-euler .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1810 100%);
}
.scn-buonaparte-newton-euler .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1810 0%, #0e0c08 100%);
}
.scn-buonaparte-newton-euler .pedestal-a,
.scn-buonaparte-newton-euler .pedestal-b,
.scn-buonaparte-newton-euler .pedestal-c {
  position: absolute; bottom: 30%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #4a3520 0%, #2a2218 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-buonaparte-newton-euler .pedestal-a { left: 25%; }
.scn-buonaparte-newton-euler .pedestal-b { left: 48%; }
.scn-buonaparte-newton-euler .pedestal-c { left: 68%; }
.scn-buonaparte-newton-euler .bust-a,
.scn-buonaparte-newton-euler .bust-b,
.scn-buonaparte-newton-euler .bust-c {
  position: absolute; bottom: 48%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0c08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: bne-bust 12s ease-in-out infinite alternate;
}
.scn-buonaparte-newton-euler .bust-a { left: 24%; animation-delay: 0s; }
.scn-buonaparte-newton-euler .bust-b { left: 47%; animation-delay: -4s; }
.scn-buonaparte-newton-euler .bust-c { left: 67%; animation-delay: -8s; }
.scn-buonaparte-newton-euler .window-light {
  position: absolute; top: 10%; left: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 2px solid #3a2a1a; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(150,180,200,0.15);
  animation: bne-window 25s ease-in-out infinite alternate;
}
@keyframes bne-bust { 0% { transform: scaleY(1) rotate(-0.5deg) } 50% { transform: scaleY(1.02) rotate(0.5deg) } 100% { transform: scaleY(0.98) rotate(-0.5deg) } }
@keyframes bne-window { 0% { opacity: 0.4; box-shadow: inset 0 0 10px rgba(150,180,200,0.1) } 50% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(150,180,200,0.25) } 100% { opacity: 0.5; box-shadow: inset 0 0 15px rgba(150,180,200,0.15) } }

.scn-higher-powers-sense-of-unity {
  background: linear-gradient(180deg, #1a1218 0%, #2a1a24 50%, #3a2028 100%),
              radial-gradient(ellipse at 50% 50%, #3a2028 0%, transparent 70%);
}
.scn-higher-powers-sense-of-unity .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #4a2a34 0%, transparent 60%);
  animation: hps-bg 30s ease-in-out infinite alternate;
}
.scn-higher-powers-sense-of-unity .floor-circle {
  position: absolute; bottom: 0; left: 50%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a24 0%, transparent 80%);
  transform: translateX(-50%);
}
.scn-higher-powers-sense-of-unity .center-glow {
  position: absolute; top: 40%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,180,220,0.3) 0%, rgba(200,180,220,0.05) 50%, transparent 80%);
  transform: translate(-50%, -50%); filter: blur(8px);
  animation: hps-glow 6s ease-in-out infinite alternate;
}
.scn-higher-powers-sense-of-unity .figure-a,
.scn-higher-powers-sense-of-unity .figure-b,
.scn-higher-powers-sense-of-unity .figure-c,
.scn-higher-powers-sense-of-unity .figure-d {
  position: absolute; bottom: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1218 0%, #0e0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: hps-figure 14s ease-in-out infinite alternate;
}
.scn-higher-powers-sense-of-unity .figure-a { left: 18%; animation-delay: 0s; }
.scn-higher-powers-sense-of-unity .figure-b { left: 36%; animation-delay: -3.5s; }
.scn-higher-powers-sense-of-unity .figure-c { left: 54%; animation-delay: -7s; }
.scn-higher-powers-sense-of-unity .figure-d { left: 72%; animation-delay: -10.5s; }
@keyframes hps-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes hps-glow { 0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.4 } 50% { transform: translate(-50%, -50%) scale(1.15); opacity: 0.8 } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5 } }
@keyframes hps-figure { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.03) rotate(1deg) } 100% { transform: scaleY(0.97) rotate(-0.5deg) } }

/* hesitation-from-correction */
.scn-hesitation-from-correction {
  background: linear-gradient(180deg, #2a1e1a 0%, #1f1410 40%, #120b08 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a1e 0%, transparent 70%);
}
.scn-hesitation-from-correction .room-bg { position:absolute; inset:0; background: radial-gradient(circle at 30% 70%, #4a3520 0%, transparent 60%), linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); animation: he1-flicker 8s ease-in-out infinite alternate; }
.scn-hesitation-from-correction .desk { position:absolute; bottom:8%; left:20%; width:55%; height:20%; background: linear-gradient(180deg, #5a3d24 0%, #3a2818 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 18px rgba(0,0,0,.6); }
.scn-hesitation-from-correction .candle { position:absolute; bottom:28%; left:48%; width:12px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c880 0%, #a07030 100%); border-radius: 30% 30% 10% 10%; }
.scn-hesitation-from-correction .candle.glow { box-shadow: 0 0 40px 12px rgba(200,140,60,.6), 0 0 80px 24px rgba(200,140,60,.25); animation: he1-glow 5s ease-in-out infinite alternate; }
.scn-hesitation-from-correction .papers { position:absolute; bottom:14%; left:35%; width:30%; height:4%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(-2deg); animation: he1-shift 10s ease-in-out infinite; }
.scn-hesitation-from-correction .figure-hand { position:absolute; bottom:20%; left:52%; width:20px; height:28px; background: radial-gradient(circle at 50% 20%, #c8a080 0%, #8a6040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: he1-hand 7s ease-in-out infinite; }
.scn-hesitation-from-correction .figure-shadow { position:absolute; bottom:10%; left:45%; width:30%; height:50%; background: radial-gradient(ellipse at 60% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: he1-shadow 8s ease-in-out infinite alternate; }
.scn-hesitation-from-correction .wall-texture { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(100,80,60,.03) 2px, rgba(100,80,60,.03) 4px); }
@keyframes he1-flicker { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes he1-glow { 0% { box-shadow: 0 0 30px 8px rgba(200,140,60,.5), 0 0 60px 16px rgba(200,140,60,.2); } 50% { box-shadow: 0 0 50px 16px rgba(255,180,80,.65), 0 0 100px 30px rgba(255,180,80,.35); } 100% { box-shadow: 0 0 35px 10px rgba(200,140,60,.5), 0 0 70px 20px rgba(200,140,60,.2); } }
@keyframes he1-shift { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes he1-hand { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } }
@keyframes he1-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.35; } }

/* two-qualities-intellect-courage */
.scn-two-qualities-intellect-courage {
  background: linear-gradient(180deg, #1e1816 0%, #14100e 50%, #0a0807 100%),
              radial-gradient(ellipse at 70% 40%, #3a2a1e 0%, transparent 60%);
}
.scn-two-qualities-intellect-courage .bg-depth { position:absolute; inset:0; background: radial-gradient(circle at 70% 40%, #2a1e14 0%, transparent 50%), linear-gradient(90deg, #0a0806 0%, #1a1410 100%); animation: tw1-breath 12s ease-in-out infinite alternate; }
.scn-two-qualities-intellect-courage .lamp-base { position:absolute; bottom:15%; left:20%; width:25px; height:50px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-two-qualities-intellect-courage .lamp-glow { position:absolute; bottom:30%; left:22%; width:40px; height:40px; background: radial-gradient(circle, #f0c080 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,140,60,.5), 0 0 120px 40px rgba(200,140,60,.25); animation: tw1-glow 6s ease-in-out infinite alternate; }
.scn-two-qualities-intellect-courage .book-open { position:absolute; bottom:16%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 4% 4% 10% 10% / 20% 20% 40% 40%; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-two-qualities-intellect-courage .figure-profile { position:absolute; bottom:12%; left:55%; width:30px; height:50px; background: radial-gradient(circle at 40% 30%, #c0a080 0%, #806040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: tw1-head 9s ease-in-out infinite; }
.scn-two-qualities-intellect-courage .shadow-long { position:absolute; bottom:10%; left:40%; width:25%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; transform: skewX(-10deg); animation: tw1-shadow 8s ease-in-out infinite alternate; }
.scn-two-qualities-intellect-courage .particle-dust { position:absolute; inset:0; background: radial-gradient(circle at 30% 60%, rgba(255,220,180,.04) 0%, transparent 40%), radial-gradient(circle at 70% 20%, rgba(255,220,180,.03) 0%, transparent 30%); animation: tw1-dust 15s linear infinite; }
@keyframes tw1-breath { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes tw1-glow { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(1); } }
@keyframes tw1-head { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes tw1-shadow { 0% { opacity:.3; transform: skewX(-10deg); } 50% { opacity:.5; transform: skewX(-5deg); } 100% { opacity:.35; transform: skewX(-10deg); } }
@keyframes tw1-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-20px); } }

/* coup-doeil-defined */
.scn-coup-doeil-defined {
  background: linear-gradient(180deg, #1a1a1e 0%, #121214 50%, #0e0e10 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 60%);
}
.scn-coup-doeil-defined .window-frame { position:absolute; inset:10% 15% 15% 15%; border: 4px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); background: transparent; animation: co1-span 20s ease-in-out infinite; }
.scn-coup-doeil-defined .window-glass { position:absolute; inset:12% 17% 17% 17%; background: linear-gradient(135deg, rgba(80,100,120,.1) 0%, rgba(60,80,100,.05) 100%); border-radius: 2px; box-shadow: inset 0 0 12px rgba(255,255,255,.02); }
.scn-coup-doeil-defined .horizon { position:absolute; bottom:35%; left:5%; right:5%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(150,130,100,.3) 20%, rgba(150,130,100,.3) 80%, transparent 100%); animation: co1-horizon 30s ease-in-out infinite alternate; }
.scn-coup-doeil-defined .land-mid { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: co1-land 25s ease-in-out infinite alternate; }
.scn-coup-doeil-defined .figure-watching { position:absolute; bottom:20%; left:50%; width:24px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #2a2a2e 0%, #0e0e10 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: co1-turn 14s ease-in-out infinite; }
.scn-coup-doeil-defined .curtain-left { position:absolute; top:10%; left:15%; width:15%; height:80%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 20% 20% 0 / 0 40% 40% 0; animation: co1-curtain 12s ease-in-out infinite alternate; }
.scn-coup-doeil-defined .curtain-right { position:absolute; top:10%; right:15%; width:15%; height:80%; background: linear-gradient(270deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 20% 0 0 20% / 40% 0 0 40%; animation: co1-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-coup-doeil-defined .map-pin { position:absolute; bottom:40%; left:35%; width:8px; height:12px; background: radial-gradient(circle at 50% 40%, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 6px 2px rgba(200,85,61,.4); animation: co1-pin 4s ease-in-out infinite alternate; }
@keyframes co1-span { 0%,100% { border-color: #4a3a2a; } 50% { border-color: #5a4a3a; } }
@keyframes co1-horizon { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.35; } }
@keyframes co1-land { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes co1-turn { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-45%) rotate(-5deg); } }
@keyframes co1-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.9); } }
@keyframes co1-pin { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }

/* resolution-act-of-courage */
.scn-resolution-act-of-courage {
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 60%);
}
.scn-resolution-act-of-courage .bg-column { position:absolute; left:45%; right:45%; top:0; bottom:0; background: linear-gradient(90deg, #2a1e18 0%, #3a2a20 30%, #2a1e18 100%); width:24%; box-shadow: 0 0 20px rgba(0,0,0,.7); }
.scn-resolution-act-of-courage .floor-tile { position:absolute; bottom:0; left:0; right:0; height:18%; background: repeating-linear-gradient(90deg, #1a1210 0px, #1a1210 20px, #221814 20px, #221814 40px); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-resolution-act-of-courage .figure-standing { position:absolute; bottom:14%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #2e2a28 0%, #141210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 6px 10px rgba(0,0,0,.5); animation: re1-stance 8s ease-in-out infinite; }
.scn-resolution-act-of-courage .torch-fire { position:absolute; bottom:45%; left:47%; width:14px; height:20px; background: linear-gradient(180deg, #ffc080 0%, #d08020 50%, #803000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,140,60,.6); animation: re1-fire 1.5s ease-in-out infinite alternate; }
.scn-resolution-act-of-courage .torch-glow { position:absolute; bottom:38%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,140,60,.2); animation: re1-glow 3s ease-in-out infinite alternate; }
.scn-resolution-act-of-courage .cape-sweep { position:absolute; bottom:14%; left:43%; width:40px; height:50px; background: radial-gradient(ellipse at 30% 20%, #5e1a1d 0%, #3a0c0e 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; transform: rotate(-10deg); transform-origin: top center; animation: re1-cape 10s ease-in-out infinite; }
.scn-resolution-act-of-courage .shadow-stance { position:absolute; bottom:10%; left:46%; width:15%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: re1-shadow 9s ease-in-out infinite alternate; }
.scn-resolution-act-of-courage .moral-line { position:absolute; bottom:40%; left:35%; right:35%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(200,140,80,.15) 30%, rgba(200,140,80,.15) 70%, transparent 100%); animation: re1-line 6s ease-in-out infinite alternate; }
@keyframes re1-stance { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes re1-fire { 0% { transform: scaleY(1); opacity:.9; } 100% { transform: scaleY(1.15); opacity:1; } }
@keyframes re1-glow { 0% { opacity:.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes re1-cape { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } }
@keyframes re1-shadow { 0% { opacity:.4; transform: scaleX(1); } 100% { opacity:.6; transform: scaleX(1.1); } }
@keyframes re1-line { 0% { opacity:.2; } 100% { opacity:.5; } }

/* ---------- defence-of-inundations-holland-character ---------- */
.scn-defence-of-inundations-holland-character {
  background: linear-gradient(180deg, #e6dbb0 0%, #c8b88a 40%, #a08860 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 50%);
}
.scn-defence-of-inundations-holland-character .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c8a0 0%, #bfaf80 100%);
  animation: doi-ch-wall 20s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-holland-character .window {
  position: absolute; top: 12%; left: 12%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b8d8e0 0%, #8ab0c0 100%);
  border: 6px solid #7a6a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: doi-ch-window 15s ease-in-out infinite;
}
.scn-defence-of-inundations-holland-character .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: doi-ch-table 8s ease-in-out infinite;
}
.scn-defence-of-inundations-holland-character .figure {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: doi-ch-figure 6s ease-in-out infinite;
}
.scn-defence-of-inundations-holland-character .lamp {
  position: absolute; bottom: 30%; left: 55%; width: 4%; height: 8%;
  background: radial-gradient(circle, #f0d080 0%, #d0a050 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5);
  animation: doi-ch-lamp 3s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-holland-character .chair {
  position: absolute; bottom: 8%; left: 50%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 6px 6px 0 0;
  animation: doi-ch-chair 12s ease-in-out infinite;
}
@keyframes doi-ch-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes doi-ch-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes doi-ch-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes doi-ch-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes doi-ch-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(200,160,80,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,160,80,0.6); } }
@keyframes doi-ch-chair { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }

/* ---------- defence-of-inundations-level-and-canals ---------- */
.scn-defence-of-inundations-level-and-canals {
  background: linear-gradient(180deg, #e0d4b0 0%, #c4b48a 40%, #a09060 100%), radial-gradient(ellipse at 70% 30%, #f0e8c0 0%, transparent 60%);
}
.scn-defence-of-inundations-level-and-canals .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d0c4a0 0%, #b8a880 100%);
  animation: doi-lc-wall 18s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-level-and-canals .model {
  position: absolute; bottom: 10%; left: 20%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: doi-lc-model 10s ease-in-out infinite;
}
.scn-defence-of-inundations-level-and-canals .water-layer {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a8090 0%, #3a6070 100%);
  border-radius: 2px; opacity: 0.6;
  animation: doi-lc-water 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-level-and-canals .dyke {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px 4px 0 0;
  animation: doi-lc-dyke 12s ease-in-out infinite;
}
.scn-defence-of-inundations-level-and-canals .desk {
  position: absolute; bottom: 6%; left: 10%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  animation: doi-lc-desk 14s ease-in-out infinite;
}
.scn-defence-of-inundations-level-and-canals .blueprint {
  position: absolute; bottom: 10%; left: 35%; width: 20%; height: 14%;
  background: linear-gradient(135deg, #d0c8a0 0%, #b8b090 100%);
  border-radius: 2px; transform: rotate(4deg);
  animation: doi-lc-blueprint 20s ease-in-out infinite;
}
@keyframes doi-lc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes doi-lc-model { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes doi-lc-water { 0% { background-position: 0 0; opacity: 0.5; } 100% { background-position: 10px 0; opacity: 0.7; } }
@keyframes doi-lc-dyke { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes doi-lc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes doi-lc-blueprint { 0% { transform: rotate(4deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(4deg); } }

/* ---------- defence-of-inundations-practicable-lines ---------- */
.scn-defence-of-inundations-practicable-lines {
  background: linear-gradient(180deg, #e8dcc0 0%, #ccbc90 40%, #ac9c70 100%), radial-gradient(ellipse at 50% 60%, #f0e0c0 0%, transparent 40%);
}
.scn-defence-of-inundations-practicable-lines .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8c8a8 0%, #b8a880 100%);
  animation: doi-pl-wall 22s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-practicable-lines .map {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 35%;
  background: linear-gradient(180deg, #c8b890 0%, #a89870 100%);
  border: 4px solid #7a6a4a; border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: doi-pl-map 16s ease-in-out infinite;
}
.scn-defence-of-inundations-practicable-lines .hand-pointing {
  position: absolute; bottom: 18%; left: 40%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg);
  animation: doi-pl-hand 5s ease-in-out infinite;
}
.scn-defence-of-inundations-practicable-lines .quill {
  position: absolute; bottom: 12%; left: 55%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(-20deg);
  animation: doi-pl-quill 7s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-practicable-lines .inkwell {
  position: absolute; bottom: 8%; left: 50%; width: 4%; height: 5%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50%;
  animation: doi-pl-inkwell 20s ease-in-out infinite;
}
.scn-defence-of-inundations-practicable-lines .candle {
  position: absolute; bottom: 28%; left: 62%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px; box-shadow: 0 0 20px 4px rgba(200,160,80,0.4);
  animation: doi-pl-candle 3s ease-in-out infinite alternate;
}
@keyframes doi-pl-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes doi-pl-map { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes doi-pl-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes doi-pl-quill { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes doi-pl-inkwell { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes doi-pl-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px 3px rgba(200,160,80,0.3); } 100% { opacity: 1; box-shadow: 0 0 30px 8px rgba(200,160,80,0.6); } }

/* ---------- defence-of-inundations-infinite-combinations ---------- */
.scn-defence-of-inundations-infinite-combinations {
  background: linear-gradient(180deg, #e4d8b8 0%, #c8b890 40%, #ac9c70 100%), radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 50%);
}
.scn-defence-of-inundations-infinite-combinations .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 100%);
  animation: doi-ic-wall 24s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-infinite-combinations .maps-overlap {
  position: absolute; bottom: 8%; left: 10%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: doi-ic-maps 18s ease-in-out infinite;
}
.scn-defence-of-inundations-infinite-combinations .figure {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: doi-ic-figure 8s ease-in-out infinite;
}
.scn-defence-of-inundations-infinite-combinations .lantern {
  position: absolute; bottom: 35%; left: 55%; width: 5%; height: 7%;
  background: radial-gradient(circle, #f0d080 0%, #d0a050 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5);
  animation: doi-ic-lantern 4s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-infinite-combinations .compass {
  position: absolute; bottom: 12%; left: 25%; width: 6%; height: 6%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%; border: 2px solid #5a4a2a;
  animation: doi-ic-compass 12s ease-in-out infinite;
}
.scn-defence-of-inundations-infinite-combinations .book {
  position: absolute; bottom: 6%; left: 60%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 2px 6px 6px 2px; transform: rotate(-5deg);
  animation: doi-ic-book 20s ease-in-out infinite;
}
@keyframes doi-ic-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes doi-ic-maps { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes doi-ic-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes doi-ic-lantern { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(200,160,80,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,160,80,0.6); } }
@keyframes doi-ic-compass { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0); } }
@keyframes doi-ic-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(-5deg); } }

.scn-firmness-vs-staunchness { 
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b20 30%, #4a3525 60%, #2e1e15 100%), 
              radial-gradient(ellipse at 50% 80%, #5a3f2a 0%, transparent 70%); 
}
.scn-firmness-vs-staunchness .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3d2b20 0%, #2a1f1a 100%); opacity:0.8; }
.scn-firmness-vs-staunchness .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3525 0%, #2e1e15 100%); border-radius:30% 0 0 0 / 10% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-firmness-vs-staunchness .anvil { position:absolute; bottom:22%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20% / 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.1); animation: fvs-anvil 12s ease-in-out infinite; }
.scn-firmness-vs-staunchness .hammer { position:absolute; bottom:40%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: fvs-hammer 4s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-firmness-vs-staunchness .hammer-shadow { position:absolute; bottom:22%; left:44%; width:50px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(3px); animation: fvs-hammer-shadow 4s ease-in-out infinite; }
.scn-firmness-vs-staunchness .glow-ambient { position:absolute; bottom:20%; left:35%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,160,100,0.15) 0%, transparent 70%); border-radius:50%; filter:blur(20px); animation: fvs-glow-pulse 6s ease-in-out infinite alternate; }
.scn-firmness-vs-staunchness .spark-1 { position:absolute; bottom:30%; left:48%; width:4px; height:4px; background: #d4a060; border-radius:50%; box-shadow: 0 0 8px 2px rgba(212,160,96,0.8); animation: fvs-spark 2.5s ease-out infinite; }
.scn-firmness-vs-staunchness .spark-2 { position:absolute; bottom:30%; left:48%; width:3px; height:3px; background: #d4a060; border-radius:50%; box-shadow: 0 0 6px 1px rgba(212,160,96,0.6); animation: fvs-spark 3.2s ease-out infinite 1.2s; }

@keyframes fvs-anvil { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes fvs-hammer { 
  0% { transform: rotate(30deg) translateY(0); } 
  20% { transform: rotate(-10deg) translateY(8px); } 
  40% { transform: rotate(30deg) translateY(0); } 
  60% { transform: rotate(-8deg) translateY(5px); } 
  80% { transform: rotate(30deg) translateY(0); } 
  100% { transform: rotate(30deg) translateY(0); } 
}
@keyframes fvs-hammer-shadow { 
  0%,80%,100% { transform: scale(1); opacity:0.3; } 
  20% { transform: scale(1.2); opacity:0.5; } 
  60% { transform: scale(1.1); opacity:0.4; } 
}
@keyframes fvs-glow-pulse { 0% { opacity:0.5; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes fvs-spark { 
  0% { transform: translate(0,0) scale(1); opacity:1; } 
  50% { transform: translate(16px,-24px) scale(1.5); opacity:0.8; } 
  100% { transform: translate(40px,-52px) scale(0.3); opacity:0; } 
}

.scn-strength-of-mind-question { 
  background: linear-gradient(180deg, #2a2420 0%, #3d3228 30%, #4a3a2a 60%, #2e2518 100%), 
              radial-gradient(ellipse at 30% 70%, #5a4530 0%, transparent 60%); 
}
.scn-strength-of-mind-question .wall-corner { position:absolute; inset:0 50% 0 0; background: linear-gradient(135deg, #3d3228 0%, #2a2420 100%); border-right:2px solid rgba(255,255,255,0.05); }
.scn-strength-of-mind-question .desk { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-strength-of-mind-question .figure-seated { position:absolute; bottom:22%; left:25%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: smq-figure 8s ease-in-out infinite; }
.scn-strength-of-mind-question .lamp { position:absolute; bottom:52%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:10% 10% 30% 30% / 20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(212,180,120,0.3); animation: smq-lamp 6s ease-in-out infinite alternate; }
.scn-strength-of-mind-question .lamp-glow { position:absolute; bottom:40%; left:50%; width:100px; height:100px; background: radial-gradient(circle, rgba(212,180,120,0.2) 0%, rgba(212,180,120,0.05) 50%, transparent 80%); border-radius:50%; transform:translate(-50%,0); filter:blur(15px); animation: smq-glow-pulse 7s ease-in-out infinite alternate; }
.scn-strength-of-mind-question .book-a { position:absolute; bottom:22%; left:40%; width:45px; height:12px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); transform:rotate(-5deg); animation: smq-book 10s ease-in-out infinite; }
.scn-strength-of-mind-question .book-b { position:absolute; bottom:24%; left:42%; width:50px; height:10px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); transform:rotate(3deg); animation: smq-book 12s ease-in-out infinite -2s; }
.scn-strength-of-mind-question .shadow-figure { position:absolute; bottom:20%; left:24%; width:52px; height:82px; background: rgba(0,0,0,0.2); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; filter:blur(8px); transform:translate(6px,4px); animation: smq-shadow 8s ease-in-out infinite; }

@keyframes smq-figure { 
  0% { transform: translateY(0) rotate(0deg); } 
  33% { transform: translateY(-2px) rotate(1deg); } 
  66% { transform: translateY(1px) rotate(-1deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes smq-lamp { 0% { opacity:0.8; transform: scaleY(1); } 100% { opacity:1; transform: scaleY(1.03); } }
@keyframes smq-glow-pulse { 0% { opacity:0.6; transform: translate(-50%,0) scale(1); } 100% { opacity:1; transform: translate(-50%,0) scale(1.08); } }
@keyframes smq-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(1px); } }
@keyframes smq-shadow { 0%,100% { transform: translate(6px,4px) scale(1); } 50% { transform: translate(6px,4px) scale(1.02); } }

.scn-four-character-classes { 
  background: linear-gradient(180deg, #2a2420 0%, #3d3228 30%, #4a3a2a 60%, #2e2518 100%), 
              radial-gradient(ellipse at 50% 60%, #5a4530 0%, transparent 70%); 
}
.scn-four-character-classes .table-round { position:absolute; bottom:18%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 10% 10% / 100% 100% 20% 20%; box-shadow: 0 -8px 16px rgba(0,0,0,0.5); }
.scn-four-character-classes .figure-phlegmatic { position:absolute; bottom:24%; left:18%; width:30px; height:55px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: fcc-figures 14s ease-in-out infinite; }
.scn-four-character-classes .figure-sanguine { position:absolute; bottom:24%; left:35%; width:30px; height:58px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform:rotate(5deg); animation: fcc-figures 12s ease-in-out infinite -3s; }
.scn-four-character-classes .figure-choleric { position:absolute; bottom:24%; left:52%; width:30px; height:60px; background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform:rotate(-4deg); animation: fcc-figures 16s ease-in-out infinite -7s; }
.scn-four-character-classes .figure-melancholic { position:absolute; bottom:24%; left:68%; width:30px; height:54px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform:rotate(2deg); animation: fcc-figures 15s ease-in-out infinite -5s; }
.scn-four-character-classes .candle { position:absolute; bottom:40%; left:50%; width:14px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:15% 15% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 0 12px 4px rgba(255,200,100,0.4); }
.scn-four-character-classes .candle-glow { position:absolute; bottom:36%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, rgba(255,200,100,0.05) 40%, transparent 70%); border-radius:50%; transform:translate(-50%,0); filter:blur(12px); animation: fcc-glow 5s ease-in-out infinite alternate; }
.scn-four-character-classes .shadow-floor { position:absolute; bottom:16%; left:12%; right:12%; height:12%; background: rgba(0,0,0,0.2); border-radius:50%; filter:blur(8px); animation: fcc-shadow 9s ease-in-out infinite; }

@keyframes fcc-figures { 
  0% { transform: translateY(0); } 
  25% { transform: translateY(-3px); } 
  50% { transform: translateY(1px); } 
  75% { transform: translateY(-1px); } 
  100% { transform: translateY(0); } 
}
@keyframes fcc-glow { 0% { opacity:0.7; transform: translate(-50%,0) scale(1); } 100% { opacity:1; transform: translate(-50%,0) scale(1.12); } }
@keyframes fcc-shadow { 0%,100% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } }

.scn-character-difference-nervous-system { 
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%), 
              radial-gradient(ellipse at 50% 40%, #4a4a6e 0%, transparent 70%); 
}
.scn-character-difference-nervous-system .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,20,0.4) 0%, transparent 50%, rgba(10,10,20,0.4) 100%); opacity:0.6; animation: cns-deep 20s ease-in-out infinite alternate; }
.scn-character-difference-nervous-system .figure-silhouette { position:absolute; bottom:10%; left:50%; width:60px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 20px 4px rgba(100,100,160,0.15); animation: cns-figure 10s ease-in-out infinite; }
.scn-character-difference-nervous-system .nervous-system { position:absolute; bottom:10%; left:50%; width:60px; height:110px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, rgba(140,180,220,0.3) 0%, transparent 50%), radial-gradient(circle at 50% 50%, rgba(180,140,220,0.25) 0%, transparent 40%), radial-gradient(circle at 50% 70%, rgba(140,220,180,0.2) 0%, transparent 30%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; opacity:0.7; animation: cns-nervesystem 8s ease-in-out infinite alternate; }
.scn-character-difference-nervous-system .glow-material { position:absolute; bottom:15%; left:45%; width:100px; height:100px; background: radial-gradient(circle, rgba(100,140,200,0.12) 0%, transparent 60%); border-radius:50%; filter:blur(20px); animation: cns-glow-mat 12s ease-in-out infinite alternate; }
.scn-character-difference-nervous-system .glow-spiritual { position:absolute; top:20%; left:50%; width:120px; height:120px; background: radial-gradient(circle, rgba(200,180,220,0.1) 0%, transparent 60%); border-radius:50%; transform:translateX(-50%); filter:blur(25px); animation: cns-glow-spir 15s ease-in-out infinite alternate; }
.scn-character-difference-nervous-system .particle-a { position:absolute; bottom:40%; left:30%; width:5px; height:5px; background: rgba(160,200,240,0.5); border-radius:50%; box-shadow: 0 0 8px 2px rgba(160,200,240,0.3); animation: cns-particle 6s ease-in-out infinite; }
.scn-character-difference-nervous-system .particle-b { position:absolute; bottom:60%; left:60%; width:4px; height:4px; background: rgba(200,160,240,0.4); border-radius:50%; box-shadow: 0 0 6px 1px rgba(200,160,240,0.2); animation: cns-particle 8s ease-in-out infinite -3s; }
.scn-character-difference-nervous-system .particle-c { position:absolute; bottom:50%; left:45%; width:3px; height:3px; background: rgba(160,240,200,0.45); border-radius:50%; box-shadow: 0 0 6px 1px rgba(160,240,200,0.2); animation: cns-particle 7s ease-in-out infinite -5s; }

@keyframes cns-deep { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes cns-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes cns-nervesystem { 
  0% { opacity:0.5; transform: translateX(-50%) scaleY(0.95); } 
  50% { opacity:0.8; transform: translateX(-50%) scaleY(1.02); } 
  100% { opacity:0.5; transform: translateX(-50%) scaleY(0.95); } 
}
@keyframes cns-glow-mat { 0% { opacity:0.3; transform: scale(1); } 100% { opacity:0.7; transform: scale(1.15); } }
@keyframes cns-glow-spir { 0% { opacity:0.2; transform: translateX(-50%) scale(1); } 100% { opacity:0.5; transform: translateX(-50%) scale(1.2); } }
@keyframes cns-particle { 
  0% { transform: translate(0,0) scale(1); opacity:0.3; } 
  33% { transform: translate(10px,-15px) scale(1.4); opacity:0.7; } 
  66% { transform: translate(-5px,-30px) scale(0.8); opacity:0.5; } 
  100% { transform: translate(8px,-50px) scale(1.1); opacity:0.1; } 
}

/* movable-forces-limits */
.scn-movable-forces-limits {
  background: linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-movable-forces-limits .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 45%;
  background: linear-gradient(180deg, #2a1e18 0%, #1e1612 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-movable-forces-limits .table {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: mfl-table 30s ease-in-out infinite;
}
.scn-movable-forces-limits .map {
  position: absolute; bottom: 20%; left: 15%; width: 55%; height: 30%;
  background: linear-gradient(135deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
  animation: mfl-map 20s ease-in-out infinite alternate;
}
.scn-movable-forces-limits .fortress-a {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mfl-fortress 12s ease-in-out infinite alternate;
}
.scn-movable-forces-limits .fortress-b {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mfl-fortress 14s ease-in-out infinite alternate-reverse;
}
.scn-movable-forces-limits .candle {
  position: absolute; bottom: 22%; left: 60%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,168,120,0.3);
}
.scn-movable-forces-limits .glow {
  position: absolute; bottom: 18%; left: 56%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,168,120,0.25) 0%, rgba(200,168,120,0.05) 50%, transparent 100%);
  border-radius: 50%;
  animation: mfl-glow 3s ease-in-out infinite alternate;
}
.scn-movable-forces-limits .pawns {
  position: absolute; bottom: 15%; left: 20%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 3px rgba(0,0,0,0.5);
  animation: mfl-pawns 8s ease-in-out infinite;
}
@keyframes mfl-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes mfl-map { 0% { transform: translate(0,0) rotate(-0.5deg); } 50% { transform: translate(1px, -1px) rotate(0.5deg); } 100% { transform: translate(0,0) rotate(-0.5deg); } }
@keyframes mfl-fortress { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mfl-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes mfl-pawns { 0% { transform: translate(0,0) rotate(-1deg); } 30% { transform: translate(4px, -1px) rotate(1deg); } 60% { transform: translate(8px, 0) rotate(-1deg); } 100% { transform: translate(12px, 0) rotate(0); } }

/* balance-of-power-restored */
.scn-balance-of-power-restored {
  background: linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-balance-of-power-restored .shelf {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
}
.scn-balance-of-power-restored .books {
  position: absolute; top: 8%; left: 15%; width: 40%; height: 14%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #6a5a4a 50%, #5a4a3a 70%, #4a3a2a 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: bor-books 25s ease-in-out infinite alternate;
}
.scn-balance-of-power-restored .scale-stand {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
}
.scn-balance-of-power-restored .scale-arm {
  position: absolute; bottom: 60%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 50%, #6a5a4a 100%);
  border-radius: 2px;
  animation: bor-arm 8s ease-in-out infinite;
  transform-origin: center;
}
.scn-balance-of-power-restored .pan-left {
  position: absolute; bottom: 52%; left: 12%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bor-pan 8s ease-in-out infinite;
}
.scn-balance-of-power-restored .pan-right {
  position: absolute; bottom: 52%; right: 12%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bor-pan 8s ease-in-out infinite reverse;
}
.scn-balance-of-power-restored .candle {
  position: absolute; bottom: 15%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-balance-of-power-restored .glow {
  position: absolute; bottom: 10%; left: 36%; width: 48px; height: 48px;
  background: radial-gradient(circle, rgba(200,168,120,0.2) 0%, rgba(200,168,120,0.05) 50%, transparent 100%);
  border-radius: 50%;
  animation: bor-glow 4s ease-in-out infinite alternate;
}
@keyframes bor-books { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(-2px) skewX(-1deg); } 100% { transform: translateX(0) skewX(0); } }
@keyframes bor-arm { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bor-pan { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bor-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* first-decision-influence */
.scn-first-decision-influence {
  background: linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-first-decision-influence .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1e1612 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-first-decision-influence .desk {
  position: absolute; bottom: 8%; left: 8%; right: 8%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-first-decision-influence .lamp {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-first-decision-influence .paper {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #6a5a4a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 1px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fdi-paper 15s ease-in-out infinite alternate;
}
.scn-first-decision-influence .figure {
  position: absolute; bottom: 8%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fdi-figure 6s ease-in-out infinite;
}
.scn-first-decision-influence .ink {
  position: absolute; bottom: 18%; left: 25%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-first-decision-influence .glow {
  position: absolute; bottom: 28%; left: 16%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,168,120,0.25) 0%, rgba(200,168,120,0.05) 50%, transparent 100%);
  border-radius: 50%;
  animation: fdi-glow 3.5s ease-in-out infinite alternate;
}
@keyframes fdi-paper { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(2px, -1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes fdi-figure { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-2deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fdi-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* later-result-repugnance */
.scn-later-result-repugnance {
  background: linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e18 0%, transparent 60%);
}
.scn-later-result-repugnance .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #2a1e18 0%, #1e1612 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-later-result-repugnance .chest {
  position: absolute; bottom: 10%; left: 10%; right: 50%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: lrr-chest 20s ease-in-out infinite alternate;
}
.scn-later-result-repugnance .coins {
  position: absolute; bottom: 18%; left: 14%; width: 16%; height: 8%;
  background: radial-gradient(circle at 30% 50%, #8a7a6a 0%, #6a5a4a 30%, transparent 80%);
  border-radius: 50%;
  animation: lrr-coins 10s ease-in-out infinite alternate;
}
.scn-later-result-repugnance .figure {
  position: absolute; bottom: 8%; right: 15%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lrr-figure 8s ease-in-out infinite;
}
.scn-later-result-repugnance .hand {
  position: absolute; bottom: 24%; right: 22%; width: 12px; height: 10px;
  background: radial-gradient(circle at 50% 30%, #2a1e18 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20%;
  animation: lrr-hand 6s ease-in-out infinite;
}
.scn-later-result-repugnance .candle {
  position: absolute; bottom: 55%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
}
.scn-later-result-repugnance .glow {
  position: absolute; bottom: 50%; left: 36%; width: 48px; height: 48px;
  background: radial-gradient(circle, rgba(200,168,120,0.2) 0%, rgba(200,168,120,0.05) 50%, transparent 100%);
  border-radius: 50%;
  animation: lrr-glow 3s ease-in-out infinite alternate-reverse;
}
@keyframes lrr-chest { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.02) rotate(1deg); } 100% { transform: scaleX(1) rotate(0); } }
@keyframes lrr-coins { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-1px); } 100% { opacity: 0.5; transform: translateY(0); } }
@keyframes lrr-figure { 0% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-3px) rotate(-5deg); } 60% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lrr-hand { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(-4px, 2px) rotate(-20deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes lrr-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

/* key-to-country-not-geological */
.scn-key-to-country-not-geological {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a4 60%, #b8a080 100%), radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%);
}
.scn-key-to-country-not-geological .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #efe5d0 0%, #d8cbb4 80%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
  animation: ktc1-wall 12s ease-in-out infinite alternate;
}
.scn-key-to-country-not-geological .window {
  position: absolute; top: 5%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #b8d4f0 0%, #8ab4d8 80%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: ktc1-window 8s ease-in-out infinite alternate;
}
.scn-key-to-country-not-geological .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  animation: ktc1-desk 6s ease-in-out infinite alternate;
}
.scn-key-to-country-not-geological .map {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 30%;
  background: linear-gradient(135deg, #f0e0b0 0%, #d8c090 50%, #c0a070 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ktc1-map 15s ease-in-out infinite;
}
.scn-key-to-country-not-geological .key {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #c89040 0%, #a07030 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(15deg);
  animation: ktc1-key 4s ease-in-out infinite;
}
.scn-key-to-country-not-geological .book {
  position: absolute; bottom: 16%; left: 8%; width: 60px; height: 45px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: ktc1-book 7s ease-in-out infinite alternate;
}
.scn-key-to-country-not-geological .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: ktc1-shadows 10s ease-in-out infinite alternate;
}
@keyframes ktc1-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ktc1-window { 0% { transform: scale(1); opacity: 0.85; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.9; } }
@keyframes ktc1-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ktc1-map { 0%,100% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.01); } }
@keyframes ktc1-key { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ktc1-book { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes ktc1-shadows { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* key-to-country-summary */
.scn-key-to-country-summary {
  background: linear-gradient(180deg, #f5ecd0 0%, #e0d0b0 50%, #c8b090 100%), radial-gradient(ellipse at 50% 100%, #dcc8a8 0%, transparent 70%);
}
.scn-key-to-country-summary .bg-desksurface {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  animation: ktc2-bg 22s ease-in-out infinite alternate;
}
.scn-key-to-country-summary .open-book {
  position: absolute; bottom: 12%; left: 20%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #f8f0d8 0%, #e8d8b8 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
  transform: perspective(800px) rotateX(10deg);
  animation: ktc2-book 9s ease-in-out infinite;
}
.scn-key-to-country-summary .hand {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #d4b898 0%, #b89878 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: 50% 90%;
  box-shadow: 3px 5px 8px rgba(0,0,0,0.2);
  animation: ktc2-hand 3s ease-in-out infinite;
}
.scn-key-to-country-summary .quill {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(20deg);
  animation: ktc2-quill 5s ease-in-out infinite alternate;
}
.scn-key-to-country-summary .inkwell {
  position: absolute; bottom: 10%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ktc2-inkwell 8s ease-in-out infinite;
}
.scn-key-to-country-summary .glow {
  position: absolute; top: 5%; right: 10%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: ktc2-glow 6s ease-in-out infinite alternate;
}
@keyframes ktc2-bg { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes ktc2-book { 0%,100% { transform: perspective(800px) rotateX(10deg) translateY(0); } 50% { transform: perspective(800px) rotateX(12deg) translateY(-2px); } }
@keyframes ktc2-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ktc2-quill { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(22deg) scale(1.05); } 100% { transform: rotate(18deg) scale(0.95); } }
@keyframes ktc2-inkwell { 0% { transform: translateY(0); opacity: 0.9; } 50% { transform: translateY(-1px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.85; } }
@keyframes ktc2-glow { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }

/* key-to-country-best-key */
.scn-key-to-country-best-key {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 40%, #b8a890 100%), radial-gradient(ellipse at 50% 0%, #d8c8b8 0%, transparent 80%);
}
.scn-key-to-country-best-key .sky-window {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8d8f0 60%, #e0e8f8 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: ktc3-sky 14s ease-in-out infinite alternate;
}
.scn-key-to-country-best-key .figure-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: ktc3-figure 4s ease-in-out infinite alternate;
}
.scn-key-to-country-best-key .large-key {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 50%, #906020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: ktc3-key 6s ease-in-out infinite;
}
.scn-key-to-country-best-key .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px 4px 0 0;
  animation: ktc3-table 7s ease-in-out infinite alternate;
}
.scn-key-to-country-best-key .paper {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc0 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 1px 1px 6px rgba(0,0,0,0.2);
  animation: ktc3-paper 12s ease-in-out infinite;
}
.scn-key-to-country-best-key .candle {
  position: absolute; bottom: 20%; right: 18%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0a0 80%, #c0a060 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: ktc3-candle 5s ease-in-out infinite;
}
.scn-key-to-country-best-key .flame-glow {
  position: absolute; bottom: 30%; right: 17%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, rgba(255,200,100,0.1) 60%, transparent 100%);
  border-radius: 50%;
  animation: ktc3-flame 2s ease-in-out infinite alternate;
}
@keyframes ktc3-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ktc3-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ktc3-key { 0%,100% { transform: translateX(-50%) rotate(10deg) scale(1); } 50% { transform: translateX(-50%) rotate(8deg) scale(1.03); } }
@keyframes ktc3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ktc3-paper { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(3px); } }
@keyframes ktc3-candle { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ktc3-flame { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* operating-against-flank-intro */
.scn-operating-against-flank-intro {
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 40%, #a89078 100%), radial-gradient(ellipse at 50% 100%, #c0b098 0%, transparent 70%);
}
.scn-operating-against-flank-intro .map-table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #a08868 0%, #806848 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.15);
  animation: oaf4-table 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-intro .tactical-map {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(135deg, #f0e8c8 0%, #e0d0a8 50%, #c0b088 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: oaf4-map 18s ease-in-out infinite;
}
.scn-operating-against-flank-intro .arrow-blue {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #3060b0 0%, #4080d0 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  box-shadow: 0 0 4px rgba(48,96,176,0.4);
  animation: oaf4-arrow1 5s ease-in-out infinite;
}
.scn-operating-against-flank-intro .arrow-red {
  position: absolute; bottom: 30%; right: 25%; width: 50px; height: 4px;
  background: linear-gradient(90deg, #c04030 0%, #d05040 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  box-shadow: 0 0 4px rgba(192,64,48,0.4);
  animation: oaf4-arrow2 6s ease-in-out infinite reverse;
}
.scn-operating-against-flank-intro .commander-blue {
  position: absolute; bottom: 32%; left: 15%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #3060b0 0%, #204090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: oaf4-cmdr1 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-intro .commander-red {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #c04030 0%, #a03020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 2px 4px rgba(0,0,0,0.3);
  animation: oaf4-cmdr2 5s ease-in-out infinite alternate-reverse;
}
.scn-operating-against-flank-intro .dice {
  position: absolute; bottom: 15%; left: 50%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #f0f0f0 0%, #d0d0d0 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: oaf4-dice 7s ease-in-out infinite;
}
@keyframes oaf4-table { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes oaf4-map { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(0.5deg) scale(1.01); } }
@keyframes oaf4-arrow1 { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(30deg) translateX(5px); } 100% { transform: rotate(25deg) translateX(0); } }
@keyframes oaf4-arrow2 { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-35deg) translateX(-4px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes oaf4-cmdr1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oaf4-cmdr2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oaf4-dice { 0% { transform: translateX(-50%) rotate(45deg) translateY(0); } 50% { transform: translateX(-50%) rotate(50deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(45deg) translateY(0); } }

.scn-unfinished-memorandum-great-generals-tact {
  background: linear-gradient(180deg, #1a1410 0%, #2c2018 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-unfinished-memorandum-great-generals-tact .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2c2018 0%, #1a1410 100%); animation: tact-bg 8s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-great-generals-tact .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%; background: linear-gradient(180deg, #5a3a24 0%, #3a2214 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: tact-desk 12s ease-in-out infinite;
}
.scn-unfinished-memorandum-great-generals-tact .map {
  position: absolute; bottom: 26%; left: 20%; width: 50%; height: 28%; background: linear-gradient(135deg, #c8b088 0%, #a88868 100%); border: 2px solid #6a4a2a; border-radius: 2%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: tact-map 15s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-great-generals-tact .candle {
  position: absolute; bottom: 38%; left: 35%; width: 10px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px rgba(240,224,192,.5); animation: tact-candle 6s ease-in-out infinite;
}
.scn-unfinished-memorandum-great-generals-tact .glow {
  position: absolute; bottom: 34%; left: 32%; width: 60px; height: 80px; background: radial-gradient(ellipse, #f0d080 0%, rgba(240,208,128,0.3) 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: tact-glow 3s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-great-generals-tact .figure {
  position: absolute; bottom: 24%; left: 55%; width: 22px; height: 40px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tact-figure 8s ease-in-out infinite;
}
.scn-unfinished-memorandum-great-generals-tact .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: tact-shadow 8s ease-in-out infinite;
}
@keyframes tact-bg { 0%,100% { opacity: .9 } 50% { opacity: .7 } }
@keyframes tact-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tact-map { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-2.5deg) translateY(0) } }
@keyframes tact-candle { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-1px) scaleY(1.02) } 50% { transform: translateY(0) scaleY(0.98) } 75% { transform: translateY(-1px) scaleY(1.01) } }
@keyframes tact-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.08) } 100% { opacity: .8; transform: scale(1.03) } }
@keyframes tact-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tact-shadow { 0%,100% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } }

.scn-unfinished-memorandum-clear-ideas-not-useless {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221c 40%, #3a2e26 100%),
              radial-gradient(ellipse at 50% 30%, #3a2e26 0%, transparent 70%);
}
.scn-unfinished-memorandum-clear-ideas-not-useless .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a221c 0%, #1e1a14 100%); animation: idea-bg 10s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .shelf {
  position: absolute; bottom: 45%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 16px rgba(0,0,0,.5); animation: idea-shelf 14s ease-in-out infinite;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .books {
  position: absolute; bottom: 48%; left: 10%; width: 80%; height: 24%; background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 12px, #8a6a4a 12px, #8a6a4a 20px, #5a3a2a 20px, #5a3a2a 30px); border-radius: 2%; animation: idea-books 20s linear infinite;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .window {
  position: absolute; top: 8%; right: 12%; width: 30%; height: 40%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border: 4px solid #4a3a2a; border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: idea-window 12s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .lamp {
  position: absolute; bottom: 30%; left: 15%; width: 16px; height: 28px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 12px 4px rgba(208,176,128,.6); animation: idea-lamp 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .glow {
  position: absolute; bottom: 26%; left: 10%; width: 80px; height: 100px; background: radial-gradient(ellipse, #f0d0a0 0%, rgba(240,208,160,0.2) 40%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: idea-glow 4s ease-in-out infinite;
}
.scn-unfinished-memorandum-clear-ideas-not-useless .paper {
  position: absolute; bottom: 22%; left: 25%; width: 40%; height: 20%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%); border: 1px solid #8a7a5a; border-radius: 2%; transform: rotate(1deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: idea-paper 18s ease-in-out infinite alternate;
}
@keyframes idea-bg { 0%,100% { opacity: .85 } 50% { opacity: .7 } }
@keyframes idea-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes idea-books { 0% { background-position: 0 0 } 100% { background-position: 60px 0 } }
@keyframes idea-window { 0% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%) } 50% { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%) } 100% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%) } }
@keyframes idea-lamp { 0% { transform: scaleY(1) rotate(0); box-shadow: 0 0 12px 4px rgba(208,176,128,.6) } 50% { transform: scaleY(1.03) rotate(2deg); box-shadow: 0 0 16px 6px rgba(208,176,128,.8) } 100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 12px 4px rgba(208,176,128,.6) } }
@keyframes idea-glow { 0% { opacity: .5; transform: scale(1) } 33% { opacity: .7; transform: scale(1.05) } 66% { opacity: .6; transform: scale(.95) } 100% { opacity: .5; transform: scale(1) } }
@keyframes idea-paper { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }

.scn-item-brass-cannon {
  background: linear-gradient(180deg, #6a8eb0 0%, #4a6a8a 40%, #2a4a6a 100%),
              radial-gradient(ellipse at 50% 0%, #8ab0d0 0%, transparent 60%);
}
.scn-item-brass-cannon .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #7a9eb0 0%, #4a6a8a 100%); animation: cann-sky 20s ease-in-out infinite alternate;
}
.scn-item-brass-cannon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); animation: cann-ground 15s ease-in-out infinite;
}
.scn-item-brass-cannon .cannon {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: cann-cannon 8s ease-in-out infinite;
}
.scn-item-brass-cannon .barrel {
  position: absolute; bottom: 24%; left: 50%; width: 80px; height: 16px; transform: translateX(-50%) translateX(30px); background: linear-gradient(180deg, #b08850 0%, #8a6030 100%); border-radius: 40% 10% 10% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cann-barrel 8s ease-in-out infinite;
}
.scn-item-brass-cannon .smoke-a {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 50px; background: radial-gradient(ellipse, rgba(220,200,180,0.5) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: cann-smoke-a 6s ease-in-out infinite;
}
.scn-item-brass-cannon .smoke-b {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 30px; background: radial-gradient(ellipse, rgba(220,200,180,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: cann-smoke-b 8s ease-in-out infinite reverse;
}
.scn-item-brass-cannon .flag {
  position: absolute; bottom: 34%; left: 38%; width: 8px; height: 50px; background: #4a3a2a; transform-origin: bottom; animation: cann-flag 4s ease-in-out infinite;
}
.scn-item-brass-cannon .flag::after {
  content: ''; position: absolute; top: 0; left: 8px; width: 30px; height: 20px; background: #a8553d; border-radius: 0 40% 40% 0; transform-origin: left center; animation: cann-flag-cloth 4s ease-in-out infinite;
}
@keyframes cann-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes cann-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes cann-cannon { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes cann-barrel { 0%,100% { transform: translateX(-50%) translateX(30px) rotate(0) } 50% { transform: translateX(-50%) translateX(30px) rotate(3deg) } }
@keyframes cann-smoke-a { 0% { opacity: .3; transform: scale(1) translateY(0) } 50% { opacity: .6; transform: scale(1.3) translateY(-10px) } 100% { opacity: .2; transform: scale(1.5) translateY(-20px) } }
@keyframes cann-smoke-b { 0% { opacity: .4; transform: scale(1) translateY(0) } 50% { opacity: .7; transform: scale(1.2) translateY(-8px) } 100% { opacity: .3; transform: scale(1.4) translateY(-16px) } }
@keyframes cann-flag { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes cann-flag-cloth { 0% { transform: rotate(0) scaleX(1) } 25% { transform: rotate(10deg) scaleX(1.05) } 50% { transform: rotate(0) scaleX(1) } 75% { transform: rotate(-10deg) scaleX(1.05) } 100% { transform: rotate(0) scaleX(1) } }

.scn-introduction-of-author-scientific {
  background: linear-gradient(180deg, #181410 0%, #24201a 40%, #342a22 100%),
              radial-gradient(ellipse at 50% 80%, #342a22 0%, transparent 70%);
}
.scn-introduction-of-author-scientific .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #24201a 0%, #181410 100%); animation: auth-bg 12s ease-in-out infinite alternate;
}
.scn-introduction-of-author-scientific .desk {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 16%; background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%); border-radius: 6% 6% 0 0; box-shadow: 0 6px 14px rgba(0,0,0,.5); animation: auth-desk 10s ease-in-out infinite;
}
.scn-introduction-of-author-scientific .figure {
  position: absolute; bottom: 24%; left: 40%; width: 28px; height: 48px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: auth-figure 14s ease-in-out infinite;
}
.scn-introduction-of-author-scientific .manuscript {
  position: absolute; bottom: 28%; left: 30%; width: 30%; height: 14%; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border: 1px solid #8a7a5a; border-radius: 2%; transform: rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: auth-manuscript 20s ease-in-out infinite alternate;
}
.scn-introduction-of-author-scientific .lamp {
  position: absolute; bottom: 32%; left: 25%; width: 14px; height: 30px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 14px 4px rgba(208,176,128,.6); animation: auth-lamp 6s ease-in-out infinite alternate;
}
.scn-introduction-of-author-scientific .glow {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 100px; background: radial-gradient(ellipse, #f0d0a0 0%, rgba(240,208,160,0.2) 40%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: auth-glow 5s ease-in-out infinite;
}
.scn-introduction-of-author-scientific .quill {
  position: absolute; bottom: 30%; left: 55%; width: 4px; height: 36px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(20deg); transform-origin: bottom center; animation: auth-quill 7s ease-in-out infinite;
}
@keyframes auth-bg { 0%,100% { opacity: .85 } 50% { opacity: .7 } }
@keyframes auth-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes auth-figure { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes auth-manuscript { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes auth-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 14px 4px rgba(208,176,128,.6) } 50% { transform: scaleY(1.02); box-shadow: 0 0 18px 6px rgba(208,176,128,.8) } 100% { transform: scaleY(1); box-shadow: 0 0 14px 4px rgba(208,176,128,.6) } }
@keyframes auth-glow { 0% { opacity: .5; transform: scale(1) } 33% { opacity: .7; transform: scale(1.06) } 66% { opacity: .6; transform: scale(.97) } 100% { opacity: .5; transform: scale(1) } }
@keyframes auth-quill { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } }

.scn-preface-worked-diligently {
  background:
    radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 20%, #2a2a3a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a2a1a 100%);
}
.scn-preface-worked-diligently .wall {
  position: absolute; inset: 0; width: 100%; height: 100%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: pw-wall 20s ease-in-out infinite alternate;
}
.scn-preface-worked-diligently .window {
  position: absolute; top: 10%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: pw-window 15s ease-in-out infinite alternate;
}
.scn-preface-worked-diligently .desk {
  position: absolute; bottom: 5%; left: 20%; width: 200px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.6);
  animation: pw-desk 12s ease-in-out infinite alternate;
}
.scn-preface-worked-diligently .figure {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-figure 8s ease-in-out infinite alternate;
}
.scn-preface-worked-diligently .lamp {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #f0c060 0%, #d09040 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 10px rgba(240,192,96,.4);
  animation: pw-lamp 3s ease-in-out infinite alternate;
}
.scn-preface-worked-diligently .bookshelf {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: pw-bookshelf 25s ease-in-out infinite;
}
.scn-preface-worked-diligently .shadow-ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
@keyframes pw-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pw-window { 0% { transform: translateY(0); box-shadow: inset 0 0 20px rgba(0,0,0,.5) } 50% { transform: translateY(2px); box-shadow: inset 0 0 30px rgba(0,0,0,.7) } 100% { transform: translateY(0); box-shadow: inset 0 0 20px rgba(0,0,0,.5) } }
@keyframes pw-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pw-figure { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pw-lamp { 0% { box-shadow: 0 0 30px 8px rgba(240,192,96,.3); opacity: .9 } 50% { box-shadow: 0 0 50px 15px rgba(240,192,96,.5); opacity: 1 } 100% { box-shadow: 0 0 35px 10px rgba(240,192,96,.35); opacity: .92 } }
@keyframes pw-bookshelf { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }

.scn-preface-return-and-death {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #1a0a0a 100%);
}
.scn-preface-return-and-death .wall {
  position: absolute; inset: 0; width: 100%; height: 100%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  animation: pr-wall 18s ease-in-out infinite alternate;
}
.scn-preface-return-and-death .door {
  position: absolute; bottom: 5%; left: 40%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.7);
  animation: pr-door 14s ease-in-out infinite alternate;
}
.scn-preface-return-and-death .figure-return {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure 10s ease-in-out infinite alternate;
}
.scn-preface-return-and-death .candle {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #d0a040 0%, #a08030 60%, #705020 100%);
  border-radius: 3px; box-shadow: 0 0 30px 8px rgba(208,160,64,.4);
  animation: pr-candle 2s ease-in-out infinite alternate;
}
.scn-preface-return-and-death .chair {
  position: absolute; bottom: 5%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pr-chair 20s ease-in-out infinite;
}
.scn-preface-return-and-death .window-night {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: pr-window 25s ease-in-out infinite alternate;
}
.scn-preface-return-and-death .shadow-void {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%);
  pointer-events: none;
}
@keyframes pr-wall { 0% { opacity: .95 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes pr-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes pr-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pr-candle { 0% { box-shadow: 0 0 20px 5px rgba(208,160,64,.3); opacity: .8 } 50% { box-shadow: 0 0 40px 12px rgba(208,160,64,.5); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(208,160,64,.35); opacity: .85 } }
@keyframes pr-chair { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes pr-window { 0% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); } 50% { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); } 100% { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); } }

.scn-preface-posthumous-papers {
  background:
    radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #2a1a0a 100%);
}
.scn-preface-posthumous-papers .desk-papers {
  position: absolute; bottom: 5%; left: 25%; width: 160px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,.5);
  animation: pp-desk 15s ease-in-out infinite alternate;
}
.scn-preface-posthumous-papers .papers {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pp-papers 8s ease-in-out infinite alternate;
}
.scn-preface-posthumous-papers .quill {
  position: absolute; bottom: 15%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: pp-quill 5s ease-in-out infinite;
}
.scn-preface-posthumous-papers .inkpot {
  position: absolute; bottom: 12%; left: 50%; width: 16px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-preface-posthumous-papers .candle-papers {
  position: absolute; bottom: 25%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0b050 0%, #b08030 60%, #704020 100%);
  border-radius: 2px; box-shadow: 0 0 30px 8px rgba(224,176,80,.4);
  animation: pp-candle 2.5s ease-in-out infinite alternate;
}
.scn-preface-posthumous-papers .portrait-shadow {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.7);
  animation: pp-portrait 30s ease-in-out infinite;
}
.scn-preface-posthumous-papers .shadow-desk {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  pointer-events: none;
}
@keyframes pp-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pp-papers { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pp-quill { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes pp-candle { 0% { box-shadow: 0 0 20px 5px rgba(224,176,80,.3); opacity: .8 } 50% { box-shadow: 0 0 40px 12px rgba(224,176,80,.5); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(224,176,80,.35); opacity: .85 } }
@keyframes pp-portrait { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

.scn-preface-thanks-to-friends {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 30% 70%, #2a1a0a 0%, transparent 50%),
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #1a0a00 100%);
}
.scn-preface-thanks-to-friends .hearth {
  position: absolute; bottom: 0; left: 50%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: translateX(-50%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-preface-thanks-to-friends .fire {
  position: absolute; bottom: 5%; left: 50%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 30%, #ffa040 0%, #d06020 40%, #802010 70%, transparent 100%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 0 60px 20px rgba(255,160,64,.5);
  animation: pt-fire 1.5s ease-in-out infinite alternate;
}
.scn-preface-thanks-to-friends .mantle {
  position: absolute; bottom: 26%; left: 38%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-preface-thanks-to-friends .figure-left {
  position: absolute; bottom: 10%; left: 30%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-left 6s ease-in-out infinite alternate;
}
.scn-preface-thanks-to-friends .figure-right {
  position: absolute; bottom: 12%; right: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure-right 7s ease-in-out infinite alternate;
}
.scn-preface-thanks-to-friends .log {
  position: absolute; bottom: 0; left: 50%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pt-log 20s ease-in-out infinite;
}
.scn-preface-thanks-to-friends .warm-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,160,64,.15) 0%, transparent 70%);
  pointer-events: none;
  animation: pt-glow 4s ease-in-out infinite alternate;
}
@keyframes pt-fire { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95); opacity: 1 } 100% { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); opacity: .92 } }
@keyframes pt-figure-left { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pt-figure-right { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes pt-log { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) } }
@keyframes pt-glow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

.scn-friction-summary {
  background: linear-gradient(180deg, #1a1614 0%, #2c241f 40%, #3d322a 100%),
              radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 70%);
}
.scn-friction-summary .desk {
  position: absolute; inset: 55% 10% 0 10%;
  background: linear-gradient(180deg, #3d2e1f 0%, #2a1f14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: fs-breathe 12s ease-in-out infinite;
}
.scn-friction-summary .book-left {
  position: absolute; bottom: 38%; left: 28%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #5c3d2e 0%, #3a2418 100%);
  border-radius: 6% 6% 8% 8% / 4% 4% 6% 6%;
  transform: rotate(-8deg);
  box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  animation: fs-sway 6s ease-in-out infinite;
}
.scn-friction-summary .book-right {
  position: absolute; bottom: 36%; left: 42%; width: 70px; height: 90px;
  background: linear-gradient(225deg, #6b4a34 0%, #3d2a1c 100%);
  border-radius: 6% 6% 10% 10% / 4% 4% 8% 8%;
  transform: rotate(5deg);
  box-shadow: -2px 2px 10px rgba(0,0,0,0.5);
  animation: fs-sway 8s ease-in-out infinite reverse;
}
.scn-friction-summary .candle-stick {
  position: absolute; bottom: 40%; right: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e8d8b0 0%, #b89c70 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-friction-summary .flame {
  position: absolute; bottom: 62%; right: 30%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #d49a40 50%, #a05a20 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 8px rgba(212,154,64,0.6);
  animation: fs-flicker 1.5s ease-in-out infinite alternate;
}
.scn-friction-summary .glow-aura {
  position: absolute; bottom: 50%; right: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,224,160,0.15) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(50%, 50%);
  pointer-events: none;
  animation: fs-pulse 4s ease-in-out infinite alternate;
}
.scn-friction-summary .page-curl {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 0 50% 0 0;
  transform: rotate(10deg);
  animation: fs-curl 10s ease-in-out infinite;
}
.scn-friction-summary .shadow-stripe {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,0.2) 40%, transparent 60%);
  pointer-events: none;
  animation: fs-sweep 20s linear infinite;
}
@keyframes fs-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes fs-sway { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } }
@keyframes fs-flicker { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.15) rotate(0deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(2deg); opacity:0.85; } }
@keyframes fs-pulse { 0% { opacity:0.7; transform: scale(1); } 100% { opacity:0.4; transform: scale(1.2); } }
@keyframes fs-curl { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } }
@keyframes fs-sweep { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

/* ------------------------------------------------------------ */
.scn-concluding-remarks-book-I-title {
  background: linear-gradient(180deg, #1c1815 0%, #2a221c 50%, #3d3229 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 80%);
}
.scn-concluding-remarks-book-I-title .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 60px, rgba(0,0,0,0.08) 60px, rgba(0,0,0,0.08) 62px);
}
.scn-concluding-remarks-book-I-title .shelf {
  position: absolute; top: 45%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1f14 100%);
  border-radius: 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-concluding-remarks-book-I-title .book-spine-a {
  position: absolute; top: 32%; left: 20%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #6b4a34 0%, #3d2a1c 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cr-sway 7s ease-in-out infinite;
}
.scn-concluding-remarks-book-I-title .book-spine-b {
  position: absolute; top: 35%; left: 30%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #5c3d2e 0%, #2a1f14 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cr-sway 9s ease-in-out infinite reverse;
}
.scn-concluding-remarks-book-I-title .book-spine-c {
  position: absolute; top: 30%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #7a5a42 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: cr-sway 11s ease-in-out infinite;
}
.scn-concluding-remarks-book-I-title .lamp-base {
  position: absolute; top: 55%; right: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-concluding-remarks-book-I-title .lamp-shade {
  position: absolute; top: 48%; right: 18%; width: 44px; height: 30px;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%);
  border-radius: 50% 50% 20% 20%;
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
}
.scn-concluding-remarks-book-I-title .light-cone {
  position: absolute; top: 55%; right: 22%; width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.08) 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  transform-origin: top center;
  animation: cr-light 6s ease-in-out infinite alternate;
}
@keyframes cr-sway { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cr-light { 0% { opacity:0.5; transform: rotate(-5deg) scaleX(0.9); } 50% { opacity:0.8; transform: rotate(0deg) scaleX(1); } 100% { opacity:0.6; transform: rotate(5deg) scaleX(0.95); } }

/* ------------------------------------------------------------ */
.scn-human-eye-in-dark-room {
  background: linear-gradient(180deg, #0a0a12 0%, #12121c 30%, #1a1a28 70%, #0e0e18 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a30 0%, transparent 70%);
}
.scn-human-eye-in-dark-room .room-bg {
  position: absolute; inset: 0;
  background: repeating-radial-gradient(circle at 20% 30%, rgba(255,255,255,0.02) 0%, transparent 50%);
}
.scn-human-eye-in-dark-room .orbit {
  position: absolute; top: 50%; left: 50%; width: 200px; height: 180px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 50% 50%, #2a2a3a 0%, #1a1a28 60%, #0a0a12 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8), 0 0 40px rgba(0,0,0,0.6);
}
.scn-human-eye-in-dark-room .eyeball {
  position: absolute; top: 50%; left: 50%; width: 130px; height: 130px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 40% 40%, #f8f8f0 0%, #e0e0d0 80%, #c8c8b8 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(255,255,240,0.2);
}
.scn-human-eye-in-dark-room .iris {
  position: absolute; top: 50%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 35% 40%, #6b7a9a 0%, #3a4a6a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
}
.scn-human-eye-in-dark-room .pupil {
  position: absolute; top: 50%; left: 50%; width: 18px; height: 18px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 50% 50%, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50%;
  animation: hd-pupil 8s ease-in-out infinite alternate;
}
.scn-human-eye-in-dark-room .highlight {
  position: absolute; top: 42%; left: 45%; width: 14px; height: 10px;
  background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: hd-glint 4s ease-in-out infinite alternate;
}
.scn-human-eye-in-dark-room .eyelid-top {
  position: absolute; top: 44%; left: 34%; width: 32%; height: 6%;
  background: linear-gradient(180deg, #1a1a22 0%, #2a2a3a 100%);
  border-radius: 50% 50% 10% 10%;
  animation: hd-blink 5s ease-in-out infinite;
}
.scn-human-eye-in-dark-room .eyelid-bottom {
  position: absolute; bottom: 44%; left: 34%; width: 32%; height: 6%;
  background: linear-gradient(0deg, #1a1a22 0%, #2a2a3a 100%);
  border-radius: 10% 10% 50% 50%;
  animation: hd-blink 5s ease-in-out infinite;
}
@keyframes hd-pupil { 0% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.3); } 100% { transform: translate(-50%, -50%) scale(0.9); } }
@keyframes hd-glint { 0% { opacity:0.3; transform: rotate(-20deg) translate(0,0); } 50% { opacity:0.8; transform: rotate(-15deg) translate(2px, -2px); } 100% { opacity:0.4; transform: rotate(-25deg) translate(-1px, 1px); } }
@keyframes hd-blink { 0%,45%,55%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.2); } }

/* ------------------------------------------------------------ */
.scn-habituation-peace-exercises {
  background: linear-gradient(180deg, #1c1815 0%, #2a221e 50%, #3a2e25 100%),
              radial-gradient(ellipse at 50% 20%, #4a3828 0%, transparent 80%);
}
.scn-habituation-peace-exercises .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,60,40,0.4) 0%, transparent 50%),
              linear-gradient(225deg, rgba(80,60,40,0.3) 0%, transparent 50%);
}
.scn-habituation-peace-exercises .tent-pole {
  position: absolute; bottom: 0; left: 50%; width: 4px; height: 100%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
}
.scn-habituation-peace-exercises .lantern {
  position: absolute; top: 30%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #d4b890 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 10px rgba(212,184,144,0.3);
  animation: hp-swing 4s ease-in-out infinite alternate;
}
.scn-habituation-peace-exercises .soldier-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-stand 6s ease-in-out infinite;
}
.scn-habituation-peace-exercises .training-mat {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
}
.scn-habituation-peace-exercises .stacked-books {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6b4a34 0%, #3d2a1c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: hp-books 12s ease-in-out infinite;
}
.scn-habituation-peace-exercises .dust-mote-a {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,230,200,0.3);
  border-radius: 50%;
  animation: hp-drift-a 20s linear infinite;
}
.scn-habituation-peace-exercises .dust-mote-b {
  position: absolute; top: 60%; right: 30%; width: 3px; height: 3px;
  background: rgba(255,230,200,0.2);
  border-radius: 50%;
  animation: hp-drift-b 25s linear infinite;
}
@keyframes hp-swing { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hp-stand { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hp-books { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hp-drift-a { 0% { transform: translate(0, 0); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.3; } 100% { transform: translate(100px, -50px); opacity:0; } }
@keyframes hp-drift-b { 0% { transform: translate(0, 0); opacity:0; } 10% { opacity:0.4; } 90% { opacity:0.2; } 100% { transform: translate(-80px, 60px); opacity:0; } }

.scn-other-means-less-costly-if-enemy-similar {
  background: 
    linear-gradient(180deg, #2e2a35 0%, #1b1821 40%, #0f0d14 100%),
    radial-gradient(ellipse at 50% 80%, #3a3245 0%, transparent 70%);
}
.scn-other-means-less-costly-if-enemy-similar .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2633 0%, #141019 100%); animation: omc-wall 20s ease-in-out infinite alternate;
}
.scn-other-means-less-costly-if-enemy-similar .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #2b202a 0%, #1c1420 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-other-means-less-costly-if-enemy-similar .desk {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 18%; background: linear-gradient(180deg, #4d3e44 0%, #342a30 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-other-means-less-costly-if-enemy-similar .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 20px; background: linear-gradient(180deg, #b88a5e 0%, #8b663e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(184,138,94,0.6); animation: omc-lamp 5s ease-in-out infinite alternate;
}
.scn-other-means-less-costly-if-enemy-similar .book-stack {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 14px; background: linear-gradient(180deg, #7a5d4a 0%, #4d3828 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-other-means-less-costly-if-enemy-similar .figure-left {
  position: absolute; bottom: 18%; left: 32%; width: 22px; height: 48px; background: linear-gradient(180deg, #1a1a28 0%, #0d0d18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omc-sit-left 8s ease-in-out infinite;
}
.scn-other-means-less-costly-if-enemy-similar .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 22px; height: 48px; background: linear-gradient(180deg, #1f1f30 0%, #111120 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omc-sit-right 8s ease-in-out infinite reverse;
}
.scn-other-means-less-costly-if-enemy-similar .dust-mote {
  position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, rgba(220,200,180,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(1px);
}
.scn-other-means-less-costly-if-enemy-similar .dust-1 {
  top: 30%; left: 20%; animation: omc-drift-a 30s linear infinite;
}
.scn-other-means-less-costly-if-enemy-similar .dust-2 {
  top: 45%; left: 60%; animation: omc-drift-b 40s linear infinite reverse;
}
@keyframes omc-wall { 0% {opacity:.9} 50% {opacity:1} 100% {opacity:.85} }
@keyframes omc-lamp { 0% {box-shadow: 0 0 20px 8px rgba(184,138,94,0.4); opacity:.8} 50% {box-shadow: 0 0 40px 15px rgba(184,138,94,0.7); opacity:1} 100% {box-shadow: 0 0 30px 10px rgba(184,138,94,0.5); opacity:.9} }
@keyframes omc-sit-left { 0% {transform: translate(0,0) rotate(1deg)} 50% {transform: translate(2px,-2px) rotate(-1deg)} 100% {transform: translate(0,0) rotate(1deg)} }
@keyframes omc-sit-right { 0% {transform: translate(0,0) rotate(-1deg)} 50% {transform: translate(-2px,-2px) rotate(1deg)} 100% {transform: translate(0,0) rotate(-1deg)} }
@keyframes omc-drift-a { 0% {transform: translate(0,0); opacity:.3} 25% {transform: translate(30px,-15px); opacity:.6} 50% {transform: translate(60px,5px); opacity:.4} 75% {transform: translate(90px,-10px); opacity:.7} 100% {transform: translate(120px,0); opacity:.3} }
@keyframes omc-drift-b { 0% {transform: translate(0,0); opacity:.2} 33% {transform: translate(-40px,10px); opacity:.5} 66% {transform: translate(-80px,-5px); opacity:.4} 100% {transform: translate(-120px,0); opacity:.2} }

.scn-pure-defensive-exhaust {
  background: 
    linear-gradient(180deg, #1f222a 0%, #14171e 40%, #0a0c12 100%),
    radial-gradient(ellipse at 50% 0%, #2a3040 0%, transparent 70%);
}
.scn-pure-defensive-exhaust .stone-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2e3a 0%, #1a1d28 100%);
}
.scn-pure-defensive-exhaust .window-niche {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%; background: linear-gradient(180deg, #0b0e14 0%, #151a24 100%); border-radius: 30% 30% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-pure-defensive-exhaust .window-glow {
  position: absolute; top: 18%; left: 43%; width: 14%; height: 25%; background: radial-gradient(ellipse at center, #6b7a8a 0%, #4a5666 50%, transparent 100%); border-radius: 20%; box-shadow: 0 0 50px 20px rgba(107,122,138,0.3); animation: pde-glow 8s ease-in-out infinite alternate;
}
.scn-pure-defensive-exhaust .guard-figure {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 52px; background: linear-gradient(180deg, #1a1c2a 0%, #0e101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pde-guard 12s ease-in-out infinite;
}
.scn-pure-defensive-exhaust .candle {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 24px; background: linear-gradient(180deg, #e8dac8 0%, #b8a88a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-pure-defensive-exhaust .candle-flicker {
  position: absolute; bottom: 48%; left: 55%; width: 8px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(232,160,64,0.6); animation: pde-flicker 3s ease-in-out infinite alternate;
}
.scn-pure-defensive-exhaust .crate-left {
  position: absolute; bottom: 10%; left: 10%; width: 30px; height: 20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pde-crate 20s ease-in-out infinite;
}
.scn-pure-defensive-exhaust .crate-right {
  position: absolute; bottom: 8%; right: 12%; width: 26px; height: 22px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pde-crate 20s ease-in-out infinite reverse;
}
@keyframes pde-glow { 0% {opacity:.6; box-shadow: 0 0 30px 15px rgba(107,122,138,0.2)} 50% {opacity:1; box-shadow: 0 0 60px 30px rgba(107,122,138,0.4)} 100% {opacity:.7; box-shadow: 0 0 40px 20px rgba(107,122,138,0.3)} }
@keyframes pde-guard { 0% {transform: translate(0,0) rotate(1deg)} 25% {transform: translate(2px,-1px) rotate(-1deg)} 50% {transform: translate(0,0) rotate(0deg)} 75% {transform: translate(-2px,-1px) rotate(1deg)} 100% {transform: translate(0,0) rotate(-1deg)} }
@keyframes pde-flicker { 0% {transform: scale(1) rotate(-2deg); opacity:.8} 50% {transform: scale(1.2) rotate(3deg); opacity:1} 100% {transform: scale(1) rotate(2deg); opacity:.9} }
@keyframes pde-crate { 0% {transform: scale(1)} 50% {transform: scale(0.98)} 100% {transform: scale(1)} }

.scn-preservation-our-own-forces {
  background: 
    linear-gradient(180deg, #201f26 0%, #14131a 40%, #0a0910 100%),
    radial-gradient(ellipse at 50% 90%, #2a2835 0%, transparent 70%);
}
.scn-preservation-our-own-forces .cellar-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2730 0%, #1a1822 100%);
}
.scn-preservation-our-own-forces .barrel {
  position: absolute; bottom: 12%; width: 36px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-preservation-our-own-forces .barrel-back { left: 20%; animation: pdo-barrel-sway 15s ease-in-out infinite; }
.scn-preservation-our-own-forces .barrel-front { left: 60%; animation: pdo-barrel-sway 15s ease-in-out infinite reverse; }
.scn-preservation-our-own-forces .lantern-hanging {
  position: absolute; top: 8%; left: 48%; width: 16px; height: 30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: pdo-lantern-swing 6s ease-in-out infinite;
}
.scn-preservation-our-own-forces .lantern-light {
  position: absolute; top: 14%; left: 48%; width: 12px; height: 16px; background: radial-gradient(circle, #e8c060 0%, #c8a040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,160,64,0.5); animation: pdo-light-pulse 4s ease-in-out infinite alternate;
}
.scn-preservation-our-own-forces .sack {
  position: absolute; bottom: 6%; left: 38%; width: 28px; height: 24px; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-preservation-our-own-forces .rat {
  position: absolute; bottom: 15%; left: 28%; width: 14px; height: 8px; background: #3a3a3a; border-radius: 50% 50% 30% 30%; animation: pdo-rat 12s ease-in-out infinite;
}
.scn-preservation-our-own-forces .cobweb {
  position: absolute; top: 5%; right: 10%; width: 40px; height: 20px; background: radial-gradient(ellipse at center, rgba(200,200,200,0.15) 0%, transparent 70%); border-radius: 50%; filter: blur(1px); animation: pdo-web 30s linear infinite;
}
@keyframes pdo-barrel-sway { 0% {transform: rotate(0deg)} 50% {transform: rotate(1deg)} 100% {transform: rotate(0deg)} }
@keyframes pdo-lantern-swing { 0% {transform: rotate(-2deg)} 25% {transform: rotate(2deg)} 50% {transform: rotate(-2deg)} 75% {transform: rotate(1deg)} 100% {transform: rotate(-2deg)} }
@keyframes pdo-light-pulse { 0% {opacity:.7; box-shadow: 0 0 30px 10px rgba(200,160,64,0.3)} 50% {opacity:1; box-shadow: 0 0 50px 20px rgba(200,160,64,0.6)} 100% {opacity:.8; box-shadow: 0 0 40px 15px rgba(200,160,64,0.4)} }
@keyframes pdo-rat { 0% {transform: translate(0,0)} 20% {transform: translate(10px,-2px)} 40% {transform: translate(20px,0)} 60% {transform: translate(10px,-1px)} 80% {transform: translate(5px,0)} 100% {transform: translate(0,0)} }
@keyframes pdo-web { 0% {opacity:.1} 50% {opacity:.3} 100% {opacity:.1} }

.scn-positive-calls-forth-destruction {
  background: 
    linear-gradient(180deg, #2a201c 0%, #1a1410 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-positive-calls-forth-destruction .forge-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
}
.scn-positive-calls-forth-destruction .anvil {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 60px; height: 20px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.8);
}
.scn-positive-calls-forth-destruction .hammer-tool {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom center; animation: pcf-hammer 4s ease-in-out infinite;
}
.scn-positive-calls-forth-destruction .charcoal-bed {
  position: absolute; bottom: 2%; left: 20%; width: 60%; height: 12%; background: linear-gradient(0deg, #1a0a00 0%, #2a150a 30%, #3a2010 60%, #1a0a00 100%); border-radius: 50% 50% 20% 20% / 100% 100% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-positive-calls-forth-destruction .ember {
  position: absolute; border-radius: 50%; filter: blur(2px);
}
.scn-positive-calls-forth-destruction .ember-1 {
  bottom: 10%; left: 35%; width: 10px; height: 10px; background: radial-gradient(circle, #e06020 0%, #c04010 50%, transparent 100%); box-shadow: 0 0 20px 8px rgba(224,96,32,0.6); animation: pcf-ember1 5s ease-in-out infinite alternate;
}
.scn-positive-calls-forth-destruction .ember-2 {
  bottom: 6%; left: 55%; width: 8px; height: 8px; background: radial-gradient(circle, #e07030 0%, #c05020 50%, transparent 100%); box-shadow: 0 0 15px 6px rgba(224,112,48,0.5); animation: pcf-ember2 7s ease-in-out infinite alternate;
}
.scn-positive-calls-forth-destruction .bellows {
  position: absolute; bottom: 18%; right: 15%; width: 20px; height: 30px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 40% 40% 20% 20%; animation: pcf-bellows 8s ease-in-out infinite;
}
.scn-positive-calls-forth-destruction .smoke {
  position: absolute; top: 5%; left: 30%; width: 50px; height: 30px; background: radial-gradient(ellipse at center, rgba(80,70,60,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: pcf-smoke 15s linear infinite;
}
@keyframes pcf-hammer { 0% {transform: rotate(-30deg) translateY(0)} 25% {transform: rotate(0deg) translateY(-5px)} 50% {transform: rotate(30deg) translateY(0)} 75% {transform: rotate(0deg) translateY(-3px)} 100% {transform: rotate(-30deg) translateY(0)} }
@keyframes pcf-ember1 { 0% {transform: translate(0,0) scale(1); opacity:.8} 50% {transform: translate(5px,-15px) scale(1.3); opacity:1} 100% {transform: translate(-5px,-5px) scale(0.8); opacity:.6} }
@keyframes pcf-ember2 { 0% {transform: translate(0,0) scale(1); opacity:.7} 50% {transform: translate(-4px,-12px) scale(1.2); opacity:1} 100% {transform: translate(4px,-3px) scale(0.9); opacity:.5} }
@keyframes pcf-bellows { 0% {transform: scale(1,1)} 50% {transform: scale(0.9,1.1)} 100% {transform: scale(1,1)} }
@keyframes pcf-smoke { 0% {transform: translate(0,0); opacity:.2} 50% {transform: translate(20px,-15px); opacity:.4} 100% {transform: translate(40px,-30px); opacity:0} }

.scn-reconnaissance-fourth-class {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 40%, #1e1a2a 100%), radial-gradient(ellipse at 70% 80%, #3a1a1a 0%, transparent 60%);
}
.scn-reconnaissance-fourth-class .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e1a 100%);
  animation: rfc-wall 14s ease-in-out infinite alternate;
}
.scn-reconnaissance-fourth-class .window-frame {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 50%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); border: 6px solid #3a2a1a;
  animation: rfc-window 18s ease-in-out infinite alternate;
}
.scn-reconnaissance-fourth-class .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 60%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 24px rgba(0,0,0,0.6);
  animation: rfc-desk 8s ease-in-out infinite alternate;
}
.scn-reconnaissance-fourth-class .lamp {
  position: absolute; bottom: 35%; left: 40%; width: 10%; height: 15%; background: radial-gradient(circle at 50% 30%, #ffc070 0%, #b06020 80%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(255,192,112,0.3);
  animation: rfc-lamp 5s ease-in-out infinite alternate;
}
.scn-reconnaissance-fourth-class .map-wall {
  position: absolute; top: 30%; right: 10%; width: 25%; height: 40%; background: linear-gradient(135deg, #5a4a30 0%, #3a2a10 100%); border: 3px solid #4a3a1a; border-radius: 2px; transform: rotate(2deg); opacity: 0.9;
  animation: rfc-map 24s ease-in-out infinite;
}
.scn-reconnaissance-fourth-class .chair {
  position: absolute; bottom: 5%; left: 50%; width: 20%; height: 30%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: translateX(-60px);
  animation: rfc-chair 12s ease-in-out infinite alternate;
}
.scn-reconnaissance-fourth-class .star {
  position: absolute; top: 8%; left: 15%; width: 6px; height: 6px; background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0.3) 60%); border-radius: 50%; filter: blur(1px);
  animation: rfc-star 4s ease-in-out infinite;
}
@keyframes rfc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rfc-window { 0% { filter: brightness(1); } 50% { filter: brightness(0.8); } 100% { filter: brightness(1); } }
@keyframes rfc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rfc-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,192,112,0.25); } 50% { box-shadow: 0 0 50px 25px rgba(255,192,112,0.4); } 100% { box-shadow: 0 0 35px 18px rgba(255,192,112,0.3); } }
@keyframes rfc-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes rfc-chair { 0% { transform: translateX(-60px) rotate(0deg); } 50% { transform: translateX(-55px) rotate(1deg); } 100% { transform: translateX(-60px) rotate(0deg); } }
@keyframes rfc-star { 0% { opacity: 0.2; } 50% { opacity: 0.9; } 100% { opacity: 0.3; } }

.scn-item-reconnaissance-pretext {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 40%, #1e1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-item-reconnaissance-pretext .table-top {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40%; background: linear-gradient(180deg, #5a4a30 0%, #3a2818 100%); border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,0.7);
  animation: irp-table 10s ease-in-out infinite alternate;
}
.scn-item-reconnaissance-pretext .document {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 20%; background: linear-gradient(135deg, #d4c4a0 0%, #a89070 100%); border: 2px solid #7a6a50; border-radius: 2px; transform: rotate(-3deg);
  animation: irp-doc 6s ease-in-out infinite;
}
.scn-item-reconnaissance-pretext .candle {
  position: absolute; bottom: 50%; left: 25%; width: 8%; height: 15%; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 10px rgba(255,200,100,0.3);
  animation: irp-candle 4s ease-in-out infinite alternate;
}
.scn-item-reconnaissance-pretext .inkwell {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 8%; background: radial-gradient(circle at 30% 30%, #3a3a3a 0%, #0a0a0a 100%); border-radius: 50%; border: 2px solid #2a2a2a;
  animation: irp-ink 14s ease-in-out infinite;
}
.scn-item-reconnaissance-pretext .quill {
  position: absolute; bottom: 45%; left: 55%; width: 2%; height: 20%; background: linear-gradient(180deg, #8a7a60 0%, #4a3a20 100%); border-radius: 1px 1px 40% 40%; transform: rotate(20deg);
  animation: irp-quill 8s ease-in-out infinite alternate;
}
.scn-item-reconnaissance-pretext .hand-reach {
  position: absolute; bottom: 30%; right: 30%; width: 12%; height: 18%; background: linear-gradient(180deg, #c89070 0%, #a07050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; opacity: 0.8;
  animation: irp-hand 7s ease-in-out infinite;
}
@keyframes irp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes irp-doc { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.01); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes irp-candle { 0% { box-shadow: 0 0 15px 5px rgba(255,200,100,0.2); } 50% { box-shadow: 0 0 25px 12px rgba(255,200,100,0.35); } 100% { box-shadow: 0 0 18px 8px rgba(255,200,100,0.25); } }
@keyframes irp-ink { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes irp-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes irp-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-absolute-relative-defence {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 40%, #1e1a2a 100%), radial-gradient(ellipse at 60% 70%, #2a1a1a 0%, transparent 60%);
}
.scn-absolute-relative-defence .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a221a 0%, #0a0804 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: ard-ground 20s ease-in-out infinite alternate;
}
.scn-absolute-relative-defence .easel {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: ard-easel 12s ease-in-out infinite alternate;
}
.scn-absolute-relative-defence .battle-map {
  position: absolute; bottom: 30%; left: 32%; width: 16%; height: 25%; background: linear-gradient(135deg, #5a4820 0%, #3a2810 100%); border: 3px solid #4a3a1a; border-radius: 2px; transform: rotate(2deg);
  animation: ard-map 18s ease-in-out infinite;
}
.scn-absolute-relative-defence .soldier-silhouette {
  position: absolute; bottom: 5%; left: 40%; width: 15%; height: 45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ard-soldier 9s ease-in-out infinite;
}
.scn-absolute-relative-defence .floor-lamp {
  position: absolute; bottom: 10%; left: 20%; width: 6%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 2% 2%; box-shadow: 0 0 30px 10px rgba(255,180,80,0.15); 
  animation: ard-lamp 5s ease-in-out infinite alternate;
}
.scn-absolute-relative-defence .shelf {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ard-shelf 22s ease-in-out infinite;
}
.scn-absolute-relative-defence .scroll {
  position: absolute; top: 12%; right: 20%; width: 12%; height: 8%; background: linear-gradient(135deg, #d4c4a0 0%, #a89070 100%); border-radius: 20% 20% 60% 60% / 30% 30% 70% 70%; transform: rotate(15deg);
  animation: ard-scroll 16s ease-in-out infinite alternate;
}
@keyframes ard-ground { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ard-easel { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ard-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.01); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes ard-soldier { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ard-lamp { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.85); } }
@keyframes ard-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ard-scroll { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(16deg) scale(1.02); } 100% { transform: rotate(15deg) scale(1); } }

.scn-retreat-line-importance {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a2e 40%, #1e1a2a 100%), radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 60%);
}
.scn-retreat-line-importance .map-table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #5a4a30 0%, #3a2818 100%); border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,0.7);
  animation: rli-table 14s ease-in-out infinite alternate;
}
.scn-retreat-line-importance .retreat-line {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 3%; background: linear-gradient(90deg, #c06040 0%, #e08060 40%, #c06040 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(224,128,96,0.4);
  animation: rli-line 8s ease-in-out infinite;
}
.scn-retreat-line-importance .compass {
  position: absolute; bottom: 40%; right: 15%; width: 10%; height: 10%; background: radial-gradient(circle at 50% 50%, #b0a080 0%, #705840 100%); border-radius: 50%; border: 3px solid #4a3a1a; transform: rotate(15deg);
  animation: rli-compass 30s linear infinite;
}
.scn-retreat-line-importance .figure-left {
  position: absolute; bottom: 5%; left: 15%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: rli-figure1 11s ease-in-out infinite;
}
.scn-retreat-line-importance .figure-right {
  position: absolute; bottom: 5%; right: 20%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: rli-figure2 13s ease-in-out infinite;
}
.scn-retreat-line-importance .ink-spot {
  position: absolute; bottom: 30%; left: 40%; width: 4%; height: 4%; background: radial-gradient(circle, #2a2a3a 0%, #0a0a0a 100%); border-radius: 50%;
  animation: rli-spot 20s ease-in-out infinite alternate;
}
.scn-retreat-line-importance .paper-edge {
  position: absolute; bottom: 38%; left: 30%; width: 20%; height: 10%; background: linear-gradient(135deg, #c4b49a 0%, #a09070 100%); border-radius: 2px; transform: rotate(-4deg);
  animation: rli-paper 9s ease-in-out infinite;
}
@keyframes rli-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rli-line { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rli-compass { 0% { transform: rotate(15deg); } 100% { transform: rotate(375deg); } }
@keyframes rli-figure1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rli-figure2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rli-spot { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes rli-paper { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }

/* indolent-men-in-war */
.scn-indolent-men-in-war {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a120a 70%),
    linear-gradient(180deg, #2a1f12 0%, #0e0a06 100%);
}
.scn-indolent-men-in-war .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2d20 0%, #1e150e 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: imw-wall 20s ease-in-out infinite alternate;
}
.scn-indolent-men-in-war .bg-shadow {
  position: absolute; inset: 40% 10% 0 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: imw-shadow 10s ease-in-out infinite alternate;
}
.scn-indolent-men-in-war .figure-seated {
  position: absolute; bottom: 15%; left: 30%;
  width: 30%; height: 45%;
  background: linear-gradient(180deg, #2a1f12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: imw-seated 8s ease-in-out infinite alternate;
}
.scn-indolent-men-in-war .table {
  position: absolute; bottom: 12%; left: 20%;
  width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-indolent-men-in-war .candle {
  position: absolute; bottom: 28%; left: 45%;
  width: 4%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-indolent-men-in-war .flame {
  position: absolute; bottom: 38%; left: 46%;
  width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, #803000 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,160,64,0.6), 0 0 40px 15px rgba(255,160,64,0.3);
  animation: imw-flame 3s ease-in-out infinite alternate;
}
.scn-indolent-men-in-war .helmet {
  position: absolute; bottom: 14%; left: 58%;
  width: 12%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
}
.scn-indolent-men-in-war .dust {
  position: absolute; inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 20% 30%, rgba(200,180,150,0.1) 0%, transparent 50%);
  animation: imw-dust 30s linear infinite;
}
@keyframes imw-wall { 0% { opacity: 0.7 } 100% { opacity: 1 } }
@keyframes imw-shadow { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.95) } }
@keyframes imw-seated { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes imw-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0) } 50% { transform: scaleY(1.1) scaleX(0.9) translateY(-2px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px) } }
@keyframes imw-dust { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* second-class-easily-excited */
.scn-second-class-easily-excited {
  background: 
    radial-gradient(ellipse at 40% 70%, #2a2015 0%, #120d08 70%),
    linear-gradient(180deg, #1f1710 0%, #0a0705 100%);
}
.scn-second-class-easily-excited .bg-corner {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #30281e 0%, #1a120a 50%);
  border-radius: 0 0 40% 0 / 0 0 60% 0;
  animation: sce-corner 15s ease-in-out infinite alternate;
}
.scn-second-class-easily-excited .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #201810 0%, #0a0705 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-second-class-easily-excited .figure-kneeling {
  position: absolute; bottom: 12%; left: 25%;
  width: 25%; height: 50%;
  background: linear-gradient(180deg, #2a1f12 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sce-kneel 6s ease-in-out infinite alternate;
}
.scn-second-class-easily-excited .figure-prostrate {
  position: absolute; bottom: 10%; right: 20%;
  width: 35%; height: 20%;
  background: linear-gradient(180deg, #1f1710 0%, #0a0705 100%);
  border-radius: 30% 70% 20% 80% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: sce-prostrate 10s ease-in-out infinite alternate;
}
.scn-second-class-easily-excited .candle-low {
  position: absolute; bottom: 22%; left: 15%;
  width: 3%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px 2px rgba(200,120,40,0.4);
}
.scn-second-class-easily-excited .glow-spot {
  position: absolute; bottom: 26%; left: 16%;
  width: 8%; height: 10%;
  background: radial-gradient(circle, #ffc070 0%, #a06020 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sce-glow 4s ease-in-out infinite alternate;
}
.scn-second-class-easily-excited .debris {
  position: absolute; bottom: 5%; left: 40%;
  width: 20%; height: 5%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a120a 50%, #2a1f12 100%);
  border-radius: 50% 20% 40% 10%;
  animation: sce-debris 12s ease-in-out infinite alternate;
}
@keyframes sce-corner { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes sce-kneel { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes sce-prostrate { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(3px) rotate(6deg) } }
@keyframes sce-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.8; transform: scale(0.9) } }
@keyframes sce-debris { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(0.8) } 100% { transform: translateY(-1px) scaleX(1.1) } }

/* excitable-inflammable-feelings */
.scn-excitable-inflammable-feelings {
  background: 
    radial-gradient(ellipse at 55% 50%, #3a2a18 0%, #1a1008 70%),
    linear-gradient(180deg, #2a1e12 0%, #0e0a04 100%);
}
.scn-excitable-inflammable-feelings .bg-dark {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #2a2015 0%, #1a120a 100%);
  animation: eif-bg 18s ease-in-out infinite alternate;
}
.scn-excitable-inflammable-feelings .figure-standing {
  position: absolute; bottom: 5%; left: 35%;
  width: 30%; height: 60%;
  background: linear-gradient(135deg, #2a1f12 0%, #0e0a06 100%);
  border-radius: 50% 50% 35% 35% / 70% 70% 25% 25%;
  transform-origin: bottom center;
  animation: eif-stand 7s ease-in-out infinite alternate;
}
.scn-excitable-inflammable-feelings .arms-gesture {
  position: absolute; bottom: 40%; left: 40%;
  width: 20%; height: 5%;
  background: linear-gradient(180deg, #1f1710 0%, #0a0705 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: eif-arms 5s ease-in-out infinite alternate;
}
.scn-excitable-inflammable-feelings .candle-table {
  position: absolute; bottom: 10%; right: 20%;
  width: 5%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-excitable-inflammable-feelings .flame-tall {
  position: absolute; bottom: 22%; right: 21%;
  width: 3%; height: 8%;
  background: radial-gradient(circle at bottom, #ffc070 0%, #ff8020 60%, #402000 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(255,128,32,0.5), 0 0 30px 10px rgba(255,128,32,0.2);
  animation: eif-flame 3.5s ease-in-out infinite alternate;
}
.scn-excitable-inflammable-feelings .shadow-move {
  position: absolute; bottom: 0; left: 20%;
  width: 60%; height: 20%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: eif-shadow 9s ease-in-out infinite alternate;
}
.scn-excitable-inflammable-feelings .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 20%, rgba(200,180,150,0.08) 0%, transparent 50%);
  animation: eif-dust 25s linear infinite;
}
@keyframes eif-bg { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes eif-stand { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(1px) rotate(0) } }
@keyframes eif-arms { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.2) } 100% { transform: rotate(-15deg) scaleY(0.9) } }
@keyframes eif-flame { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.3) scaleX(0.8) translateY(-2px) } 100% { transform: scaleY(0.9) scaleX(1.1) translateY(1px) } }
@keyframes eif-shadow { 0% { opacity: 0.4; transform: skewX(-5deg) } 50% { opacity: 0.7; transform: skewX(5deg) } 100% { opacity: 0.5; transform: skewX(-2deg) } }
@keyframes eif-dust { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }

/* excitable-lose-head */
.scn-excitable-lose-head {
  background: 
    radial-gradient(ellipse at 50% 40%, #2a1e15 0%, #0e0a06 70%),
    linear-gradient(180deg, #1f1710 0%, #0a0705 100%);
}
.scn-excitable-lose-head .bg-panelled {
  position: absolute; inset: 0 0 10% 0;
  background: 
    linear-gradient(90deg, transparent 0%, #2a2015 10%, transparent 20%, #2a2015 30%, transparent 40%, #2a2015 50%, transparent 60%, #2a2015 70%, transparent 80%, #2a2015 90%, transparent 100%);
  background-size: 80% 100%;
  opacity: 0.3;
  animation: elh-panel 25s ease-in-out infinite alternate;
}
.scn-excitable-lose-head .figure-collapsed {
  position: absolute; bottom: 5%; left: 30%;
  width: 40%; height: 55%;
  background: linear-gradient(180deg, #1f1710 0%, #0a0705 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: elh-collapse 8s ease-in-out infinite alternate;
}
.scn-excitable-lose-head .hands-head {
  position: absolute; bottom: 40%; left: 38%;
  width: 15%; height: 12%;
  background: radial-gradient(ellipse at 30% 50%, #2a1f12 0%, #0e0a06 100%);
  border-radius: 50% 50% 30% 30%;
  animation: elh-hands 6s ease-in-out infinite alternate;
}
.scn-excitable-lose-head .lamp-swing {
  position: absolute; top: 10%; left: 50%;
  width: 4%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: top center;
  animation: elh-lamp 4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 8px rgba(200,150,80,0.4);
}
.scn-excitable-lose-head .light-pool {
  position: absolute; top: 15%; left: 45%;
  width: 15%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,120,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: elh-pool 7s ease-in-out infinite alternate;
}
.scn-excitable-lose-head .chair-tipped {
  position: absolute; bottom: 8%; right: 10%;
  width: 20%; height: 25%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 40% 10% 60%;
  transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: elh-chair 12s ease-in-out infinite alternate;
}
.scn-excitable-lose-head .papers {
  position: absolute; bottom: 2%; left: 15%;
  width: 30%; height: 6%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 20%, #4a3a2a 40%, #3a2a1a 60%, #4a3a2a 80%, #3a2a1a 100%);
  border-radius: 10% 30% 20% 40%;
  transform: rotate(-5deg);
  animation: elh-papers 15s ease-in-out infinite alternate;
}
@keyframes elh-panel { 0% { opacity: 0.2; transform: scaleX(1.02) } 100% { opacity: 0.4; transform: scaleX(0.98) } }
@keyframes elh-collapse { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-5px) rotate(-5deg) } 100% { transform: translateY(2px) rotate(-12deg) } }
@keyframes elh-hands { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(10deg) } 100% { transform: translateY(1px) rotate(-5deg) } }
@keyframes elh-lamp { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-10deg) } }
@keyframes elh-pool { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(0.9) } }
@keyframes elh-chair { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(18deg) translateY(1px) } }
@keyframes elh-papers { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(8px) rotate(-2deg) } 100% { transform: translateX(-4px) rotate(-7deg) } }

/* === marches-identical-with-use === */
.scn-marches-identical-with-use {
  background: linear-gradient(180deg, #1e1e2f 0%, #2a2a3e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-marches-identical-with-use .mim-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a44 0%, transparent 60%); }
.scn-marches-identical-with-use .mim-desk { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 12px 12px; box-shadow: 0 6px 20px rgba(0,0,0,.6); transform: perspective(600px) rotateX(5deg); }
.scn-marches-identical-with-use .mim-map { position:absolute; bottom:30%; left:15%; width:70%; height:45%; background: linear-gradient(135deg, #5a5a4a 0%, #7a7a5a 50%, #4a4a3a 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,.4); transform: perspective(600px) rotateX(8deg); animation: mim-map-float 6s ease-in-out infinite; }
.scn-marches-identical-with-use .mim-figure { position:absolute; bottom:32%; width:12px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-marches-identical-with-use .mim-fig1 { left:18%; animation: mim-fig-march 4s ease-in-out infinite; }
.scn-marches-identical-with-use .mim-fig2 { left:38%; animation: mim-fig-march 4.5s ease-in-out infinite 0.5s; }
.scn-marches-identical-with-use .mim-fig3 { left:58%; animation: mim-fig-march 5s ease-in-out infinite 1s; }
.scn-marches-identical-with-use .mim-lantern { position:absolute; top:20%; right:15%; width:14px; height:20px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 8px #c08040; animation: mim-lantern-glow 3s ease-in-out infinite alternate; }
.scn-marches-identical-with-use .mim-scroll { position:absolute; bottom:36%; left:42%; width:40px; height:8px; background: linear-gradient(180deg, #b8a070 0%, #8a6a40 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-15deg); animation: mim-scroll-unfurl 8s ease-in-out infinite; }
.scn-marches-identical-with-use .mim-shadow { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%); pointer-events: none; }

@keyframes mim-map-float { 0% { transform: perspective(600px) rotateX(8deg) translateY(0); } 50% { transform: perspective(600px) rotateX(8deg) translateY(-2px); } 100% { transform: perspective(600px) rotateX(8deg) translateY(0); } }
@keyframes mim-fig-march { 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 mim-lantern-glow { 0% { box-shadow: 0 0 20px 4px #c08040; opacity:0.7; } 50% { box-shadow: 0 0 40px 12px #e0a060; opacity:1; } 100% { box-shadow: 0 0 25px 6px #c08040; opacity:0.8; } }
@keyframes mim-scroll-unfurl { 0% { transform: rotate(-15deg) scaleX(0.6); } 50% { transform: rotate(-15deg) scaleX(1.2); } 100% { transform: rotate(-15deg) scaleX(0.6); } }

/* === march-outside-combat-instrument-strategy === */
.scn-march-outside-combat-instrument-strategy {
  background: linear-gradient(180deg, #1a1a2e 0%, #2e2e4a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #4a4a6a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-march-outside-combat-instrument-strategy .mcs-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 70%); }
.scn-march-outside-combat-instrument-strategy .mcs-book { position:absolute; bottom:15%; left:50%; width:60%; height:55%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 20px 20px; box-shadow: 0 8px 30px rgba(0,0,0,.6); }
.scn-march-outside-combat-instrument-strategy .mcs-page-left { position:absolute; bottom:20%; left:25%; width:25%; height:40%; background: linear-gradient(135deg, #b8a878 0%, #d8c898 50%, #a89868 100%); border-radius: 2px 8px 8px 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); transform: skewY(2deg); animation: mcs-page-turn 10s ease-in-out infinite; }
.scn-march-outside-combat-instrument-strategy .mcs-page-right { position:absolute; bottom:20%; right:25%; width:25%; height:40%; background: linear-gradient(225deg, #b8a878 0%, #d8c898 50%, #a89868 100%); border-radius: 8px 2px 2px 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); transform: skewY(-2deg); animation: mcs-page-turn 10s ease-in-out infinite 5s; }
.scn-march-outside-combat-instrument-strategy .mcs-hand { position:absolute; bottom:25%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom right; animation: mcs-hand-write 6s ease-in-out infinite; }
.scn-march-outside-combat-instrument-strategy .mcs-quill { position:absolute; bottom:35%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #d8c8b0 0%, #a09070 100%); border-radius: 20% 20% 40% 40%; transform: rotate(30deg); animation: mcs-quill-dip 6s ease-in-out infinite; }
.scn-march-outside-combat-instrument-strategy .mcs-inkwell { position:absolute; bottom:20%; left:35%; width:16px; height:18px; background: radial-gradient(circle at 50% 30%, #2a2a3e 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mcs-inkwell-shake 8s ease-in-out infinite; }
.scn-march-outside-combat-instrument-strategy .mcs-candle { position:absolute; top:15%; left:50%; width:8px; height:40px; background: linear-gradient(180deg, #d8c8a0 0%, #a89870 100%); border-radius: 4px; box-shadow: 0 0 20px 6px #e0c080; animation: mcs-candle-flicker 3s ease-in-out infinite alternate; }

@keyframes mcs-page-turn { 0% { transform: skewY(2deg) scaleX(1); } 50% { transform: skewY(2deg) scaleX(0.95); } 100% { transform: skewY(2deg) scaleX(1); } }
@keyframes mcs-hand-write { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(5deg) translate(2px,-3px); } 50% { transform: rotate(0deg) translate(0,-2px); } 75% { transform: rotate(-5deg) translate(-2px,-3px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes mcs-quill-dip { 0% { transform: rotate(30deg) translateY(0); } 30% { transform: rotate(30deg) translateY(10px); } 40% { transform: rotate(30deg) translateY(10px); } 70% { transform: rotate(30deg) translateY(0); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes mcs-inkwell-shake { 0% { transform: translate(0,0); } 50% { transform: translate(1px,-1px); } 100% { transform: translate(0,0); } }
@keyframes mcs-candle-flicker { 0% { box-shadow: 0 0 15px 4px #e0c080; opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #f0d090; opacity:1; } 100% { box-shadow: 0 0 18px 5px #e0c080; opacity:0.9; } }

/* === column-route-tactical-arrangements === */
.scn-column-route-tactical-arrangements {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #4a4a5e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-column-route-tactical-arrangements .ctr-terrain { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-column-route-tactical-arrangements .ctr-road { position:absolute; bottom:20%; left:10%; width:80%; height:8%; background: linear-gradient(90deg, #6a6a4a 0%, #8a8a5a 30%, #6a6a4a 60%, #8a8a5a 100%); border-radius: 20px; transform: perspective(400px) rotateX(30deg); animation: ctr-road-shimmer 12s ease-in-out infinite; }
.scn-column-route-tactical-arrangements .ctr-column { position:absolute; bottom:28%; width:10px; height:14px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 20% 20% 10% 10%; }
.scn-column-route-tactical-arrangements .ctr-col1 { left:20%; animation: ctr-col-march 6s ease-in-out infinite, ctr-col-bounce 2s ease-in-out infinite; }
.scn-column-route-tactical-arrangements .ctr-col2 { left:42%; animation: ctr-col-march 6.5s ease-in-out infinite 0.5s, ctr-col-bounce 2.2s ease-in-out infinite 0.3s; }
.scn-column-route-tactical-arrangements .ctr-col3 { left:64%; animation: ctr-col-march 7s ease-in-out infinite 1s, ctr-col-bounce 2.4s ease-in-out infinite 0.6s; }
.scn-column-route-tactical-arrangements .ctr-compass { position:absolute; top:10%; right:10%; width:50px; height:50px; background: radial-gradient(circle, #8a7a5a 0%, #4a3a1a 70%); border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: ctr-compass-spin 30s linear infinite; }
.scn-column-route-tactical-arrangements .ctr-ridge { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #2a3a2a 40%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: ctr-ridge-swell 18s ease-in-out infinite; }

@keyframes ctr-road-shimmer { 0% { opacity:0.7; transform: perspective(400px) rotateX(30deg) scaleX(1); } 50% { opacity:1; transform: perspective(400px) rotateX(30deg) scaleX(1.05); } 100% { opacity:0.7; transform: perspective(400px) rotateX(30deg) scaleX(1); } }
@keyframes ctr-col-march { 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 ctr-col-bounce { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes ctr-compass-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ctr-ridge-swell { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } 100% { transform: scaleY(1); } }

/* === order-of-march-tactical === */
.scn-order-of-march-tactical {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-order-of-march-tactical .omt-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2e2e4a 0%, #3a3a5a 50%, #2e2e4a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-order-of-march-tactical .omt-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-order-of-march-tactical .omt-lantern { position:absolute; top:15%; left:50%; width:12px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 40px 12px #c08040; animation: omt-lantern-glow 3s ease-in-out infinite alternate; }
.scn-order-of-march-tactical .omt-soldier { position:absolute; bottom:10%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; }
.scn-order-of-march-tactical .omt-s1 { left:15%; animation: omt-soldier-breathe 6s ease-in-out infinite; }
.scn-order-of-march-tactical .omt-s2 { left:35%; animation: omt-soldier-breathe 6.5s ease-in-out infinite 0.5s; }
.scn-order-of-march-tactical .omt-s3 { left:55%; animation: omt-soldier-breathe 7s ease-in-out infinite 1s; }
.scn-order-of-march-tactical .omt-s4 { left:75%; animation: omt-soldier-breathe 7.5s ease-in-out infinite 1.5s; }

@keyframes omt-lantern-glow { 0% { box-shadow: 0 0 20px 4px #c08040; opacity:0.7; } 50% { box-shadow: 0 0 50px 16px #e0a060; opacity:1; } 100% { box-shadow: 0 0 25px 6px #c08040; opacity:0.8; } }
@keyframes omt-soldier-breathe { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.03) translateY(-2px); } 50% { transform: scaleY(1) translateY(0); } 75% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-the-cordon-not-opposed-to-concept {
  background:
    linear-gradient(165deg, #e8dcc8 0%, #d4c4a8 50%, #b8a488 100%),
    radial-gradient(ellipse at 50% 30%, #efebe0 0%, transparent 80%);
}

.scn-the-cordon-not-opposed-to-concept .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dccdb8 0%, #c4b09a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}

.scn-the-cordon-not-opposed-to-concept .window {
  position: absolute; top: 12%; left: 25%; width: 28%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #e0f0f8 0%, #b8d0e0 100%);
  border: 6px solid #9a8a72; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,230,0.4);
  animation: cn1-window 12s ease-in-out infinite alternate;
}

.scn-the-cordon-not-opposed-to-concept .table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #8a705a 0%, #6a5542 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.scn-the-cordon-not-opposed-to-concept .map {
  position: absolute; bottom: 14%; left: 20%; width: 50%; height: 14%;
  background: linear-gradient(135deg, #e8d8a8 0%, #c4b488 50%, #a4986a 100%);
  border-radius: 2px;
  animation: cn1-map 20s ease-in-out infinite;
}

.scn-the-cordon-not-opposed-to-concept .candle {
  position: absolute; bottom: 24%; left: 58%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a850 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 20px 8px rgba(255,220,150,0.6);
  animation: cn1-candle 4s ease-in-out infinite alternate;
}

.scn-the-cordon-not-opposed-to-concept .officer {
  position: absolute; bottom: 12%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a251e 0%, #15100a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: cn1-officer 6s ease-in-out infinite;
}

.scn-the-cordon-not-opposed-to-concept .chair {
  position: absolute; bottom: 6%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}

.scn-the-cordon-not-opposed-to-concept .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: cn1-shadow 8s ease-in-out infinite alternate;
}

@keyframes cn1-window { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes cn1-map { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateX(2px); } }
@keyframes cn1-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cn1-officer { 0%,100% { transform: rotate(-1deg) translateX(0); } 25% { transform: rotate(1deg) translateX(4px); } 50% { transform: rotate(-0.5deg) translateX(8px); } 75% { transform: rotate(1deg) translateX(12px); } }
@keyframes cn1-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 1; } }

.scn-the-cordon-mountain-extension {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #b8b0a0 100%),
    radial-gradient(ellipse at 80% 50%, #efebe0 0%, transparent 60%);
}

.scn-the-cordon-mountain-extension .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 100%);
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.08);
}

.scn-the-cordon-mountain-extension .shelf {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 4px;
  background: linear-gradient(90deg, #8a7a6a 0%, #a09080 50%, #8a7a6a 100%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.scn-the-cordon-mountain-extension .globe {
  position: absolute; top: 8%; left: 65%; width: 36px; height: 36px;
  background: radial-gradient(circle at 40% 30%, #a0c8e0 0%, #5080a0 60%, #306080 100%);
  border-radius: 50%; box-shadow: 6px -4px 12px rgba(0,0,0,0.2);
  animation: cn2-globe 20s linear infinite;
}

.scn-the-cordon-mountain-extension .telescope {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a 0%, #8a7a6a 50%, #5a4a3a 100%);
  border-radius: 50% 50% 10% 10% / 50% 50% 10% 10%;
  transform: rotate(-30deg); transform-origin: 0% 50%;
  animation: cn2-telescope 8s ease-in-out infinite alternate;
}

.scn-the-cordon-mountain-extension .map-case {
  position: absolute; bottom: 8%; left: 20%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #b8a898 0%, #988878 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

.scn-the-cordon-mountain-extension .lantern {
  position: absolute; bottom: 20%; left: 15%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f4e4c0 0%, #d4b070 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,210,130,0.5);
  animation: cn2-lantern 5s ease-in-out infinite alternate;
}

.scn-the-cordon-mountain-extension .seal {
  position: absolute; bottom: 12%; left: 70%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b04030 0%, #702020 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(160,60,40,0.4);
}

.scn-the-cordon-mountain-extension .inkwell {
  position: absolute; bottom: 10%; left: 75%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 50% 50% 10% 10%;
}

@keyframes cn2-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes cn2-telescope { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes cn2-lantern { 0%,100% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } }

.scn-the-cordon-open-plains {
  background:
    linear-gradient(180deg, #dfe8e0 0%, #c8d0c0 50%, #b0b8a8 100%),
    radial-gradient(ellipse at 50% 80%, #f0f4ec 0%, transparent 70%);
}

.scn-the-cordon-open-plains .sky-out {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e8f0 0%, #b4c8d8 100%);
  animation: cn3-sky 15s ease-in-out infinite alternate;
}

.scn-the-cordon-open-plains .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #9ab0a8, transparent);
}

.scn-the-cordon-open-plains .plain {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8c8a8 0%, #889878 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
  animation: cn3-plain 20s ease-in-out infinite alternate;
}

.scn-the-cordon-open-plains .map-table {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.3);
}

.scn-the-cordon-open-plains .compass {
  position: absolute; bottom: 8%; left: 25%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #c8b888 0%, #a09070 100%);
  border-radius: 50%; border: 2px solid #6a5a4a;
  animation: cn3-compass 10s linear infinite;
}

.scn-the-cordon-open-plains .figure {
  position: absolute; bottom: 16%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: cn3-figure 7s ease-in-out infinite;
}

.scn-the-cordon-open-plains .banner {
  position: absolute; bottom: 28%; left: 65%; width: 4px; height: 24px;
  background: #4a3a2a;
}

.scn-the-cordon-open-plains .banner::after {
  content: ''; position: absolute; top: -4px; left: 4px; width: 14px; height: 8px;
  background: #7a5a4a; border-radius: 0 50% 50% 0;
  animation: cn3-banner 4s ease-in-out infinite alternate;
}

.scn-the-cordon-open-plains .dust {
  position: absolute; bottom: 20%; left: 45%; width: 4px; height: 4px;
  background: rgba(180,160,140,0.4); border-radius: 50%; filter: blur(1px);
  animation: cn3-dust 8s linear infinite;
}

@keyframes cn3-sky { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes cn3-plain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cn3-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes cn3-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-0.5deg); } 75% { transform: translateX(24px) rotate(1deg); } }
@keyframes cn3-banner { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes cn3-dust { 0% { transform: translate(0,0); opacity: 0; } 50% { opacity: 0.6; } 100% { transform: translate(20px, -10px); opacity: 0; } }

.scn-the-cordon-slippery-slope {
  background:
    linear-gradient(150deg, #3a4048 0%, #2a3038 50%, #1a2028 100%),
    radial-gradient(ellipse at 60% 40%, #4a5058 0%, transparent 80%);
}

.scn-the-cordon-slippery-slope .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a5058 0%, #303840 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}

.scn-the-cordon-slippery-slope .desk {
  position: absolute; bottom: 0; left: 8%; width: 84%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}

.scn-the-cordon-slippery-slope .map-paper {
  position: absolute; bottom: 12%; left: 18%; width: 60%; height: 16%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 50%, #887858 100%);
  border-radius: 2px; transform: rotate(-2deg);
  animation: cn4-map 12s ease-in-out infinite alternate;
}

.scn-the-cordon-slippery-slope .clock {
  position: absolute; top: 12%; right: 10%; width: 20px; height: 20px;
  border-radius: 50%; border: 3px solid #8a7a6a;
  background: radial-gradient(circle at 50% 50%, #efe8d8 0%, #c8b898 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: cn4-clock 2s ease-in-out infinite;
}

.scn-the-cordon-slippery-slope .clock::before {
  content: ''; position: absolute; top: 50%; left: 50%; width: 50%; height: 2px;
  background: #4a3a2a; transform-origin: 0% 50%;
  animation: cn4-hand 30s linear infinite;
}

.scn-the-cordon-slippery-slope .candle {
  position: absolute; bottom: 20%; left: 40%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0e0c0 0%, #b89870 100%);
  border-radius: 2px; box-shadow: 0 0 14px 6px rgba(255,200,120,0.5);
  animation: cn4-candle 3s ease-in-out infinite alternate;
}

.scn-the-cordon-slippery-slope .hand {
  position: absolute; bottom: 10%; left: 48%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 30% 30%;
  transform-origin: 50% 90%;
  animation: cn4-hand 8s ease-in-out infinite;
}

.scn-the-cordon-slippery-slope .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cn4-shadow 5s ease-in-out infinite alternate;
}

.scn-the-cordon-slippery-slope .ink-splash {
  position: absolute; bottom: 14%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50%;
  animation: cn4-splash 4s ease-in-out infinite;
}

@keyframes cn4-map { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes cn4-clock { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes cn4-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes cn4-candle { 0%,100% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } }
@keyframes cn4-hand-move { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } }
.scn-the-cordon-slippery-slope .hand { animation: cn4-hand-move 8s ease-in-out infinite; }
@keyframes cn4-shadow { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes cn4-splash { 0%,100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.3); opacity: 1; } }

/* resolution-office-removing-doubts */
.scn-resolution-office-removing-doubts {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 60%, #0f0c0a 100%), radial-gradient(ellipse at 50% 30%, #3d2b1f 0%, transparent 70%);
}
.scn-resolution-office-removing-doubts .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 80%), linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  animation: s1-breathe 12s ease-in-out infinite alternate;
}
.scn-resolution-office-removing-doubts .window {
  position: absolute; top: 10%; left: 65%; width: 28%; height: 35%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1f1a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: s1-glow 8s ease-in-out infinite alternate;
}
.scn-resolution-office-removing-doubts .desk {
  position: absolute; bottom: 20%; left: 10%; width: 55%; height: 10%; background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -4px 15px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(10deg);
}
.scn-resolution-office-removing-doubts .chair {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 28%; background: linear-gradient(180deg, #3a2a1a 0%, #201810 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
}
.scn-resolution-office-removing-doubts .figure {
  position: absolute; bottom: 30%; left: 40%; width: 14%; height: 35%; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: s1-sit 6s ease-in-out infinite alternate;
}
.scn-resolution-office-removing-doubts .lamp {
  position: absolute; bottom: 35%; left: 20%; width: 4%; height: 12%; background: #5a3a20;
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 8px #aa7a4a, 0 0 60px 20px rgba(170,122,74,0.3);
  animation: s1-flicker 4s ease-in-out infinite alternate;
}
.scn-resolution-office-removing-doubts .papers {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 6%; background: #2a1f1a;
  border-radius: 1px; box-shadow: 0 2px 5px rgba(0,0,0,0.4); transform: rotate(-5deg);
  animation: s1-papers 10s ease-in-out infinite alternate;
}
.scn-resolution-office-removing-doubts .bookshelf {
  position: absolute; top: 15%; right: 5%; width: 12%; height: 55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
@keyframes s1-breathe { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 0.9; } }
@keyframes s1-glow { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(170,122,74,0.2); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 20px rgba(170,122,74,0.4); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 15px rgba(170,122,74,0.3); } }
@keyframes s1-sit { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes s1-flicker { 0% { box-shadow: 0 0 30px 8px #aa7a4a, 0 0 60px 20px rgba(170,122,74,0.3); } 50% { box-shadow: 0 0 40px 12px #cc8844, 0 0 80px 25px rgba(204,136,68,0.5); } 100% { box-shadow: 0 0 25px 6px #aa7a4a, 0 0 50px 15px rgba(170,122,74,0.2); } }
@keyframes s1-papers { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(3px); } 100% { transform: rotate(-4deg) translateX(-2px); } }

/* resolution-called-forth-by-intellect */
.scn-resolution-called-forth-by-intellect {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 50%, #0f0c0a 100%), radial-gradient(ellipse at 50% 60%, #3d2b1f 0%, transparent 70%);
}
.scn-resolution-called-forth-by-intellect .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  animation: s2-bg 15s ease-in-out infinite alternate;
}
.scn-resolution-called-forth-by-intellect .table {
  position: absolute; bottom: 15%; left: 15%; width: 60%; height: 10%; background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%);
  border-radius: 3px; transform: perspective(400px) rotateX(12deg);
}
.scn-resolution-called-forth-by-intellect .book {
  position: absolute; bottom: 22%; left: 30%; width: 15%; height: 20%; background: linear-gradient(180deg, #6a5038 0%, #4a3525 100%);
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.5); transform: rotate(-5deg);
  animation: s2-book 8s ease-in-out infinite alternate;
}
.scn-resolution-called-forth-by-intellect .globe {
  position: absolute; bottom: 25%; left: 55%; width: 14%; height: 28%; background: radial-gradient(circle at 40% 30%, #8a7050 0%, #4a3525 100%);
  border-radius: 50%; box-shadow: 0 0 15px rgba(0,0,0,0.5); transform: rotate(10deg);
  animation: s2-globe 20s linear infinite;
}
.scn-resolution-called-forth-by-intellect .figure-reading {
  position: absolute; bottom: 18%; left: 25%; width: 16%; height: 40%; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: s2-read 6s ease-in-out infinite alternate;
}
.scn-resolution-called-forth-by-intellect .candle {
  position: absolute; bottom: 28%; left: 45%; width: 3%; height: 10%; background: linear-gradient(180deg, #cc8844 0%, #aa7a4a 50%, #5a3a20 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 15px #aa7a4a, 0 0 80px 30px rgba(170,122,74,0.3);
  animation: s2-candle 4s ease-in-out infinite alternate;
}
.scn-resolution-called-forth-by-intellect .shelf {
  position: absolute; top: 10%; left: 5%; width: 10%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
@keyframes s2-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s2-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-4deg) translateY(-2px); } }
@keyframes s2-globe { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(-2px); } }
@keyframes s2-read { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes s2-candle { 0% { box-shadow: 0 0 40px 15px #aa7a4a, 0 0 80px 30px rgba(170,122,74,0.3); } 50% { box-shadow: 0 0 50px 20px #cc8844, 0 0 100px 40px rgba(204,136,68,0.5); } 100% { box-shadow: 0 0 35px 12px #aa7a4a, 0 0 70px 25px rgba(170,122,74,0.2); } }

/* resolution-genealogy-strong-head */
.scn-resolution-genealogy-strong-head {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 40%, #0f0c0a 100%), radial-gradient(ellipse at 50% 20%, #3d2b1f 0%, transparent 70%);
}
.scn-resolution-genealogy-strong-head .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  animation: s3-bg 14s ease-in-out infinite alternate;
}
.scn-resolution-genealogy-strong-head .portrait {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 22%; height: 35%;
  background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6), inset 0 0 10px rgba(0,0,0,0.3);
}
.scn-resolution-genealogy-strong-head .desk {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 8%; background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%);
  border-radius: 2px; transform: perspective(400px) rotateX(10deg);
}
.scn-resolution-genealogy-strong-head .inkwell {
  position: absolute; bottom: 24%; left: 40%; width: 6%; height: 8%; background: linear-gradient(180deg, #2a1f1a 0%, #0e0a08 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  animation: s3-ink 7s ease-in-out infinite alternate;
}
.scn-resolution-genealogy-strong-head .quill {
  position: absolute; bottom: 28%; left: 35%; width: 3%; height: 15%; background: linear-gradient(180deg, #8a7050 0%, #4a3525 100%);
  border-radius: 0 0 50% 50%; transform: rotate(30deg); transform-origin: bottom center;
  animation: s3-quill 5s ease-in-out infinite alternate;
}
.scn-resolution-genealogy-strong-head .figure {
  position: absolute; bottom: 20%; left: 25%; width: 15%; height: 38%; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: s3-figure 6s ease-in-out infinite alternate;
}
.scn-resolution-genealogy-strong-head .candle {
  position: absolute; bottom: 28%; left: 55%; width: 3%; height: 10%; background: linear-gradient(180deg, #cc8844 0%, #aa7a4a 50%, #5a3a20 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px #aa7a4a, 0 0 60px 20px rgba(170,122,74,0.3);
  animation: s3-candle 4s ease-in-out infinite alternate;
}
@keyframes s3-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s3-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(-1px); } }
@keyframes s3-quill { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(28deg) translateY(-3px); } 100% { transform: rotate(32deg) translateY(-2px); } }
@keyframes s3-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes s3-candle { 0% { box-shadow: 0 0 30px 10px #aa7a4a, 0 0 60px 20px rgba(170,122,74,0.3); } 50% { box-shadow: 0 0 40px 15px #cc8844, 0 0 80px 30px rgba(204,136,68,0.5); } 100% { box-shadow: 0 0 25px 8px #aa7a4a, 0 0 50px 15px rgba(170,122,74,0.2); } }

/* presence-of-mind */
.scn-presence-of-mind {
  background: linear-gradient(180deg, #1a222a 0%, #121a20 50%, #0a1014 100%), radial-gradient(ellipse at 50% 40%, #2a3a4a 0%, transparent 70%);
}
.scn-presence-of-mind .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #141e24 0%, #0a1014 100%);
  animation: s4-bg 16s ease-in-out infinite alternate;
}
.scn-presence-of-mind .table {
  position: absolute; bottom: 12%; left: 10%; width: 70%; height: 10%; background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 3px; transform: perspective(400px) rotateX(12deg);
}
.scn-presence-of-mind .chessboard {
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 25%; background: linear-gradient(135deg, #3a2a1a 25%, #1a100a 25%, #1a100a 50%, #3a2a1a 50%, #3a2a1a 75%, #1a100a 75%);
  background-size: 25% 25%; border-radius: 2px; box-shadow: 0 0 15px rgba(0,0,0,0.6);
  animation: s4-board 12s ease-in-out infinite alternate;
}
.scn-presence-of-mind .piece {
  position: absolute; bottom: 30%; left: 40%; width: 4%; height: 8%; background: linear-gradient(180deg, #cc8844 0%, #8a6a3a 100%);
  border-radius: 30% 30% 0 0; box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  animation: s4-piece 5s ease-in-out infinite alternate;
}
.scn-presence-of-mind .figure-standing {
  position: absolute; bottom: 15%; left: 20%; width: 14%; height: 45%; background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: s4-stand 7s ease-in-out infinite alternate;
}
.scn-presence-of-mind .lamp {
  position: absolute; bottom: 28%; left: 60%; width: 3%; height: 20%; background: #5a3a20;
  border-radius: 50% 50% 0 0; box-shadow: 0 0 35px 12px #aa7a4a, 0 0 70px 25px rgba(170,122,74,0.3);
  animation: s4-lamp 4s ease-in-out infinite alternate;
}
.scn-presence-of-mind .shadow {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 8%; background: rgba(10,8,6,0.6);
  border-radius: 50%; filter: blur(4px); transform: skewX(-20deg);
  animation: s4-shadow 8s ease-in-out infinite alternate;
}
@keyframes s4-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s4-board { 0% { transform: perspective(300px) rotateY(0); } 50% { transform: perspective(300px) rotateY(5deg); } 100% { transform: perspective(300px) rotateY(-5deg); } }
@keyframes s4-piece { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes s4-stand { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes s4-lamp { 0% { box-shadow: 0 0 35px 12px #aa7a4a, 0 0 70px 25px rgba(170,122,74,0.3); } 50% { box-shadow: 0 0 45px 16px #cc8844, 0 0 90px 35px rgba(204,136,68,0.5); } 100% { box-shadow: 0 0 30px 10px #aa7a4a, 0 0 60px 20px rgba(170,122,74,0.2); } }
@keyframes s4-shadow { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-18deg) scaleX(1.05); } 100% { transform: skewX(-22deg) scaleX(0.95); } }

.scn-origin-offensive-defensive {
  background: 
    linear-gradient(180deg, #1a1620 0%, #2a2030 60%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-origin-offensive-defensive .dark-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 80%); }
.scn-origin-offensive-defensive .table { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.6); }
.scn-origin-offensive-defensive .candle-body { position:absolute; bottom:38%; left:50%; width:10px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b080 0%, #a08a60 100%); border-radius: 2px; }
.scn-origin-offensive-defensive .flame { position:absolute; bottom:75%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse 50% 60% at 50% 40%, #ffd060 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3); animation: ood-flame 2.5s ease-in-out infinite alternate; }
.scn-origin-offensive-defensive .offensive-flag { position:absolute; bottom:38%; left:30%; width:20px; height:14px; background: linear-gradient(180deg, #8a3a2a 0%, #5e1a1d 100%); clip-path: polygon(0 0, 100% 50%, 0 100%); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ood-flag-sway 4s ease-in-out infinite; transform-origin: bottom left; }
.scn-origin-offensive-defensive .defensive-flag { position:absolute; bottom:38%; right:30%; width:20px; height:14px; background: linear-gradient(180deg, #3a5a7a 0%, #1a3a5a 100%); clip-path: polygon(100% 0, 0 50%, 100% 100%); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ood-flag-sway 4s ease-in-out infinite reverse; transform-origin: bottom right; }
.scn-origin-offensive-defensive .table-shadow { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: ood-shadow 8s ease-in-out infinite alternate; }
@keyframes ood-flame { 0% { transform: translateX(-50%) scaleY(0.9); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:.85; } }
@keyframes ood-flag-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ood-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.98); } }

.scn-weaker-resists-stronger {
  background: 
    linear-gradient(180deg, #1a1620 0%, #2a2030 60%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 80%, #2a2030 0%, transparent 90%);
}
.scn-weaker-resists-stronger .deep-back { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a2030 0%, #0e0a14 100%); }
.scn-weaker-resists-stronger .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); }
.scn-weaker-resists-stronger .giant-silhouette { position:absolute; bottom:25%; left:60%; width:120px; height:180px; background: linear-gradient(180deg, #0e0a14 0%, #1a131c 70%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: wrs-giant 8s ease-in-out infinite alternate; }
.scn-weaker-resists-stronger .small-figure { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a131c 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: wrs-small 6s ease-in-out infinite alternate; }
.scn-weaker-resists-stronger .shield-glow { position:absolute; bottom:35%; left:38%; width:18px; height:22px; background: radial-gradient(circle, #3a5a7a 0%, #1a3a5a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #2a4a6a, 0 0 40px 12px rgba(42,74,106,.3); animation: wrs-shield 3s ease-in-out infinite alternate; }
.scn-weaker-resists-stronger .ground-shadow { position:absolute; bottom:25%; left:30%; right:30%; height:6%; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5) 50%, transparent); animation: wrs-ground 12s ease-in-out infinite alternate; }
@keyframes wrs-giant { 0% { transform: translateX(-50%) scale(1) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.02) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-50%) scale(0.98) translateY(0) rotate(0deg); } }
@keyframes wrs-small { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.03); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes wrs-shield { 0% { box-shadow: 0 0 16px 4px #2a4a6a, 0 0 32px 8px rgba(42,74,106,.2); opacity:.8; } 50% { box-shadow: 0 0 24px 8px #3a5a7a, 0 0 48px 16px rgba(58,90,122,.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #2a4a6a, 0 0 36px 10px rgba(42,74,106,.25); opacity:.9; } }
@keyframes wrs-ground { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(0.95); } }

.scn-frederick-seven-years-war-example {
  background: 
    linear-gradient(180deg, #1a1620 0%, #2a2030 60%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-frederick-seven-years-war-example .study-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 80%); }
.scn-frederick-seven-years-war-example .desk { position:absolute; bottom:18%; left:15%; right:15%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.6); }
.scn-frederick-seven-years-war-example .frederick-torso { position:absolute; bottom:40%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: fsw-torso 8s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war-example .frederick-head { position:absolute; bottom:67%; left:30%; width:20px; height:22px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; transform: translateX(-50%); animation: fsw-head 8s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war-example .map-scroll { position:absolute; bottom:20%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); }
.scn-frederick-seven-years-war-example .candle-fsw { position:absolute; bottom:40%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #c8b080 0%, #a08a60 100%); border-radius: 2px; }
.scn-frederick-seven-years-war-example .flame-fsw { position:absolute; bottom:68%; left:70%; width:6px; height:16px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #ffd060 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: fsw-flame 2.5s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war-example .inkpot { position:absolute; bottom:22%; left:72%; width:12px; height:12px; background: radial-gradient(circle, #2a2a2a 0%, #0e0e0e 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
@keyframes fsw-torso { 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 fsw-head { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fsw-flame { 0% { transform: translateX(-50%) scaleY(0.9); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:.85; } }

.scn-many-ways-to-object {
  background: 
    linear-gradient(180deg, #1a1620 0%, #2a2030 60%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 80%);
}
.scn-many-ways-to-object .canopy-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2030 0%, #0e0a14 100%); }
.scn-many-ways-to-object .map-surface { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,.7); }
.scn-many-ways-to-object .path-left { position:absolute; bottom:45%; left:20%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform: rotate(-20deg); transform-origin: bottom center; border-radius: 2px; animation: mwt-path 6s ease-in-out infinite; }
.scn-many-ways-to-object .path-center { position:absolute; bottom:45%; left:50%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform: translateX(-50%); border-radius: 2px; animation: mwt-path 6s ease-in-out infinite 2s; }
.scn-many-ways-to-object .path-right { position:absolute; bottom:45%; right:20%; width:4px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); transform: rotate(20deg); transform-origin: bottom center; border-radius: 2px; animation: mwt-path 6s ease-in-out infinite 4s; }
.scn-many-ways-to-object .target-circle { position:absolute; bottom:25%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #3a5a7a 0%, #1a3a5a 70%, transparent 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 12px 4px #2a4a6a; animation: mwt-target 4s ease-in-out infinite alternate; }
.scn-many-ways-to-object .lantern-spot { position:absolute; top:10%; left:10%; width:30px; height:30px; background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,.2); animation: mwt-lantern 8s ease-in-out infinite alternate; }
@keyframes mwt-path { 0% { opacity:.4; transform: scaleY(0.8); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.5; transform: scaleY(0.9); } }
@keyframes mwt-target { 0% { box-shadow: 0 0 8px 2px #2a4a6a; transform: translateX(-50%) scale(1); } 50% { box-shadow: 0 0 16px 4px #3a5a7a; transform: translateX(-50%) scale(1.05); } 100% { box-shadow: 0 0 10px 3px #2a4a6a; transform: translateX(-50%) scale(0.98); } }
@keyframes mwt-lantern { 0% { transform: scale(0.9) rotate(-2deg); opacity:.8; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(0deg); opacity:.9; } }

/* ===== Scene: defence-mountains-refuge-for-weak ===== */
.scn-defence-mountains-refuge-for-weak {
  background: linear-gradient(180deg, #f7e8c8 0%, #e3d0a0 40%, #d4b87a 100%), radial-gradient(ellipse at 50% 100%, #c0a070 0%, transparent 70%);
}
.scn-defence-mountains-refuge-for-weak .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f2dfc0 0%, #dcc8a0 100%); z-index: 1;
}
.scn-defence-mountains-refuge-for-weak .window-frame {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 50%; transform: translateX(-50%); background: #b89878; border-radius: 6px; box-shadow: inset 0 0 0 12px #8a7a5a, 0 8px 20px rgba(0,0,0,0.3); z-index: 2;
}
.scn-defence-mountains-refuge-for-weak .mountain-peak {
  position: absolute; top: 12%; left: 52%; width: 120px; height: 100px; background: linear-gradient(180deg, #c0d8e8 0%, #90a8c0 100%); clip-path: polygon(50% 100%, 0% 0%, 100% 0%); transform: translateX(-50%); z-index: 3; animation: ref-mountain 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-refuge-for-weak .hearth {
  position: absolute; bottom: 0; left: 15%; width: 30%; height: 40%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; z-index: 4;
}
.scn-defence-mountains-refuge-for-weak .fire-glow {
  position: absolute; bottom: 5%; left: 20%; width: 20%; height: 20%; background: radial-gradient(circle, #f8c088 0%, #d08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,100,40,0.6); z-index: 5; animation: ref-glow 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-refuge-for-weak .chair {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 100px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; z-index: 6; animation: ref-chair 6s ease-in-out infinite;
}
.scn-defence-mountains-refuge-for-weak .table-lamp {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 50px; background: linear-gradient(180deg, #c0a070 0%, #806050 100%); border-radius: 10% 10% 30% 30%; z-index: 7;
}
.scn-defence-mountains-refuge-for-weak .lamp-light {
  position: absolute; bottom: 25%; left: 37%; width: 60px; height: 60px; background: radial-gradient(circle, #fff0c0 0%, rgba(255,240,192,0.4) 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,240,192,0.3); z-index: 8; animation: ref-lamp 3s ease-in-out infinite alternate;
}
@keyframes ref-mountain { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes ref-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes ref-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes ref-lamp { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(255,240,192,0.2) } 100% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,240,192,0.5) } }

/* ===== Scene: defence-mountains-habitual-opinion ===== */
.scn-defence-mountains-habitual-opinion {
  background: linear-gradient(180deg, #f3eac8 0%, #d9caa0 50%, #c0b080 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-defence-mountains-habitual-opinion .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc0 0%, #d0c4a0 100%); z-index: 1;
}
.scn-defence-mountains-habitual-opinion .bookshelf-left {
  position: absolute; top: 5%; left: 2%; width: 18%; height: 80%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #6a5a4a; z-index: 2; animation: opi-shelf 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-habitual-opinion .bookshelf-right {
  position: absolute; top: 5%; right: 2%; width: 18%; height: 80%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #6a5a4a; z-index: 2; animation: opi-shelf 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-habitual-opinion .desk {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 35%; background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); z-index: 3;
}
.scn-defence-mountains-habitual-opinion .desk-lamp {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 60px; background: linear-gradient(180deg, #d0b88a 0%, #a08868 100%); border-radius: 10% 10% 30% 30%; z-index: 4; transform-origin: bottom center; animation: opi-lamp-sway 8s ease-in-out infinite;
}
.scn-defence-mountains-habitual-opinion .lamp-halo {
  position: absolute; bottom: 30%; left: 43%; width: 80px; height: 80px; background: radial-gradient(circle, #fff4d0 0%, rgba(255,244,208,0.5) 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,244,208,0.3); z-index: 5; animation: opi-halo 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-habitual-opinion .window-mountains {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 70%); border-radius: 8px; box-shadow: inset 0 0 0 6px #8a7a5a; z-index: 6; animation: opi-sky 30s ease-in-out infinite alternate;
}
.scn-defence-mountains-habitual-opinion .open-book {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 40px; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border-radius: 2px; transform: perspective(200px) rotateX(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); z-index: 7; animation: opi-book 10s ease-in-out infinite;
}
@keyframes opi-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes opi-lamp-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes opi-halo { 0% { opacity: 0.7; transform: scale(1) } 100% { opacity: 1; transform: scale(1.08) } }
@keyframes opi-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes opi-book { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(12deg) translateY(-1px) } }

/* ===== Scene: defence-mountains-false-deductions ===== */
.scn-defence-mountains-false-deductions {
  background: linear-gradient(180deg, #f5ecd5 0%, #ded3b8 50%, #c8bca0 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-defence-mountains-false-deductions .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #e8dcc0 0%, #d0c4a0 50%, #e8dcc0 100%); z-index: 1;
}
.scn-defence-mountains-false-deductions .map-table {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 40%; background: linear-gradient(180deg, #a09070 0%, #7a6a4a 100%); border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); z-index: 2;
}
.scn-defence-mountains-false-deductions .map-roll {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px; background: linear-gradient(180deg, #d0c8a0 0%, #b0a080 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform: rotate(10deg); z-index: 3; animation: ded-map 12s ease-in-out infinite;
}
.scn-defence-mountains-false-deductions .window-alps {
  position: absolute; top: 10%; left: 36%; width: 28%; height: 45%; background: linear-gradient(180deg, #c8ddeb 0%, #a0b8d0 70%, #7888a0 100%); border-radius: 6px; box-shadow: inset 0 0 0 8px #8a7a5a; z-index: 4; animation: ded-sky 25s ease-in-out infinite alternate;
}
.scn-defence-mountains-false-deductions .chandelier {
  position: absolute; top: 2%; left: 45%; width: 80px; height: 40px; background: linear-gradient(180deg, #c0a070 0%, #8a7a5a 100%); border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%; z-index: 5; transform-origin: top center; animation: ded-chandelier 6s ease-in-out infinite;
}
.scn-defence-mountains-false-deductions .chandelier-glow {
  position: absolute; top: 5%; left: 44%; width: 100px; height: 100px; background: radial-gradient(circle, #fff4c0 0%, rgba(255,244,192,0.4) 40%, transparent 70%); border-radius: 50%; z-index: 6; animation: ded-glow 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-false-deductions .chair-left {
  position: absolute; bottom: 10%; left: 12%; width: 50px; height: 70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; z-index: 7; animation: ded-chair 8s ease-in-out infinite;
}
.scn-defence-mountains-false-deductions .chair-right {
  position: absolute; bottom: 10%; right: 12%; width: 50px; height: 70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; z-index: 7; animation: ded-chair 9s ease-in-out infinite;
}
.scn-defence-mountains-false-deductions .candle-holder {
  position: absolute; bottom: 25%; left: 50%; width: 12px; height: 40px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%); border-radius: 10% 10% 30% 30%; z-index: 8; transform: translateX(-50%); animation: ded-candle 5s ease-in-out infinite alternate;
}
@keyframes ded-map { 0%,100% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } }
@keyframes ded-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ded-chandelier { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes ded-glow { 0% { box-shadow: 0 0 40px 10px rgba(255,244,192,0.3); opacity: 0.7 } 100% { box-shadow: 0 0 80px 20px rgba(255,244,192,0.6); opacity: 1 } }
@keyframes ded-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ded-candle { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.05) } }

/* ===== Scene: defence-mountains-pyrenees-example ===== */
.scn-defence-mountains-pyrenees-example {
  background: linear-gradient(180deg, #e8dfc8 0%, #ccb89a 50%, #b0a080 100%), radial-gradient(ellipse at 50% 80%, #fff8e0 0%, transparent 60%);
}
.scn-defence-mountains-pyrenees-example .stone-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #a09078 0%, #7a6a52 50%, #5a4a3a 100%); z-index: 1;
}
.scn-defence-mountains-pyrenees-example .arch-opening {
  position: absolute; top: 15%; left: 20%; width: 60%; height: 60%; background: linear-gradient(180deg, #b0a898 0%, #8a7a5a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 0 20px #605040; z-index: 2;
}
.scn-defence-mountains-pyrenees-example .mountain-range {
  position: absolute; top: 18%; left: 22%; width: 56%; height: 50%; background: linear-gradient(180deg, #b8c8d8 0%, #8090a8 70%); clip-path: polygon(0% 100%, 10% 40%, 25% 70%, 40% 20%, 60% 60%, 75% 10%, 90% 50%, 100% 100%); z-index: 3; animation: pyr-mt 25s ease-in-out infinite alternate;
}
.scn-defence-mountains-pyrenees-example .telescope {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 80px; background: linear-gradient(180deg, #b89878 0%, #805030 100%); border-radius: 10% 10% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; z-index: 4; animation: pyr-tel 10s ease-in-out infinite;
}
.scn-defence-mountains-pyrenees-example .telescope-lens {
  position: absolute; bottom: 35%; left: 34%; width: 30px; height: 20px; background: radial-gradient(circle, #e0f0ff 0%, #80a0c0 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(128,160,192,0.5); z-index: 5; animation: pyr-lens 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-pyrenees-example .flag {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; transform-origin: bottom left; z-index: 6; animation: pyr-flag 6s ease-in-out infinite;
}
.scn-defence-mountains-pyrenees-example .shadow-beam {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 40%, rgba(0,0,0,0.15) 60%, transparent 100%); z-index: 7; animation: pyr-shadow 15s ease-in-out infinite alternate;
}
@keyframes pyr-mt { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pyr-tel { 0%,100% { transform: rotate(14deg) } 50% { transform: rotate(16deg) } }
@keyframes pyr-lens { 0% { box-shadow: 0 0 15px 3px rgba(128,160,192,0.3) } 100% { box-shadow: 0 0 30px 8px rgba(128,160,192,0.7) } }
@keyframes pyr-flag { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes pyr-shadow { 0% { opacity: 0.2; transform: translateX(-5%) } 100% { opacity: 0.4; transform: translateX(5%) } }

.scn-gunpowder-progress-not-changed {
  background: linear-gradient(180deg, #1a1108 0%, #2b1b0e 50%, #1a1108 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-gunpowder-progress-not-changed .tbl {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 -3px 6px rgba(0,0,0,.5);
  animation: gpc-tbl 20s ease-in-out infinite alternate;
}
.scn-gunpowder-progress-not-changed .cndl {
  position: absolute; bottom: 8%; left: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #d4b88a 0%, #8a6a4a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: gpc-cndl 12s ease-in-out infinite alternate;
}
.scn-gunpowder-progress-not-changed .flm {
  position: absolute; bottom: 38%; left: 30%; width: 8px; height: 12px;
  margin-left: -2px; margin-bottom: -10px;
  background: radial-gradient(ellipse, #ffd080 0%, #d4884a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 16px 6px rgba(212,136,74,.6);
  animation: gpc-flame 1.5s ease-in-out infinite alternate;
}
.scn-gunpowder-progress-not-changed .barl {
  position: absolute; bottom: 10%; left: 48%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1108 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: gpc-barl 6s ease-in-out infinite alternate;
}
.scn-gunpowder-progress-not-changed .fuse {
  position: absolute; bottom: 22%; left: 36%; width: 2px; height: 14px;
  background: #6a4a2a; border-radius: 50%;
  transform: rotate(-10deg); transform-origin: bottom center;
  animation: gpc-fuse 8s ease-in-out infinite alternate;
}
.scn-gunpowder-progress-not-changed .powder {
  position: absolute; bottom: 12%; left: 52%; width: 12px; height: 6px;
  background: radial-gradient(ellipse, #2a1a0a 0%, #1a1108 100%);
  border-radius: 50%; filter: blur(1px);
  animation: gpc-powder 5s ease-in-out infinite alternate;
}
@keyframes gpc-tbl { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes gpc-cndl { 0% { opacity: .95; } 100% { opacity: .85; } }
@keyframes gpc-flame { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.15) scaleX(.9); } 100% { transform: scaleY(1) scaleX(1.05); } }
@keyframes gpc-barl { 0% { transform: translateX(0); } 100% { transform: translateX(1px); } }
@keyframes gpc-fuse { 0% { transform: rotate(-10deg); background: #6a4a2a; } 50% { background: #8a5a3a; } 100% { transform: rotate(-8deg); background: #6a4a2a; } }
@keyframes gpc-powder { 0% { opacity: .6; } 100% { opacity: .8; } }

.scn-item-musket {
  background: linear-gradient(180deg, #1a1110 0%, #2a1a12 50%, #1a1110 100%),
              radial-gradient(ellipse at 70% 20%, #3a2a1a 0%, transparent 80%);
}
.scn-item-musket .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a1110 0%, #2a1a12 30%, #1a1110 100%);
  animation: mus-wall 30s ease-in-out infinite alternate;
}
.scn-item-musket .flr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1108 100%);
  border-radius: 30% 30% 0 0;
  animation: mus-flr 15s ease-in-out infinite alternate;
}
.scn-item-musket .stock {
  position: absolute; bottom: 18%; left: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: mus-stock 5s ease-in-out infinite alternate;
}
.scn-item-musket .barrel {
  position: absolute; bottom: 58%; left: 40%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 5% 5%; transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: mus-barrel 6s ease-in-out infinite alternate;
}
.scn-item-musket .sling {
  position: absolute; bottom: 30%; left: 42%; width: 2px; height: 40px;
  background: #5a3a2a; border-radius: 50% / 20%;
  transform: rotate(15deg); transform-origin: top center;
  animation: mus-sling 7s ease-in-out infinite alternate;
}
.scn-item-musket .bayonet {
  position: absolute; bottom: 88%; left: 41%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 100%);
  border-radius: 0 0 40% 40%; transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: mus-bayonet 4s ease-in-out infinite alternate;
}
@keyframes mus-wall { 0% { opacity: .95; } 100% { opacity: .85; } }
@keyframes mus-flr { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }
@keyframes mus-stock { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-5deg); } }
@keyframes mus-barrel { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(-5deg); } }
@keyframes mus-sling { 0% { transform: rotate(15deg); } 100% { transform: rotate(13deg); } }
@keyframes mus-bayonet { 0% { transform: rotate(-5deg); } 100% { transform: rotate(-4deg); } }

.scn-aim-disarm-enemy-intro {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 50%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-aim-disarm-enemy-intro .barricade {
  position: absolute; bottom: 10%; left: 30%; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1108 100%);
  border-radius: 20% 0 0 20% / 40% 0 0 40%;
  animation: aim-barricade 12s ease-in-out infinite alternate;
}
.scn-aim-disarm-enemy-intro .fig {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: aim-fig 6s ease-in-out infinite alternate;
}
.scn-aim-disarm-enemy-intro .arm {
  position: absolute; bottom: 50%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 50% 50%; transform: rotate(-30deg);
  transform-origin: top right;
  animation: aim-arm 4s ease-in-out infinite alternate;
}
.scn-aim-disarm-enemy-intro .musket {
  position: absolute; bottom: 48%; left: 65%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 0 0; transform: rotate(-60deg);
  transform-origin: bottom left;
  animation: aim-musket 5s ease-in-out infinite alternate;
}
.scn-aim-disarm-enemy-intro .crate {
  position: absolute; bottom: 8%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 3px 6px rgba(0,0,0,.5);
  animation: aim-crate 8s ease-in-out infinite alternate;
}
@keyframes aim-barricade { 0% { transform: translateX(0); } 100% { transform: translateX(-1px); } }
@keyframes aim-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes aim-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-28deg); } }
@keyframes aim-musket { 0% { transform: rotate(-60deg); } 100% { transform: rotate(-58deg); } }
@keyframes aim-crate { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }

.scn-disarm-enemy-reason {
  background: linear-gradient(180deg, #1a0e06 0%, #2a1a0a 50%, #1a0e06 100%),
              radial-gradient(ellipse at 30% 60%, #d4884a 0%, transparent 60%);
}
.scn-disarm-enemy-reason .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1108 100%);
  border-radius: 40% 40% 0 0;
  animation: dis-ground 10s ease-in-out infinite alternate;
}
.scn-disarm-enemy-reason .arm-l {
  position: absolute; bottom: 20%; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 50% 50%; transform: rotate(40deg);
  transform-origin: bottom right;
  animation: dis-arml 5s ease-in-out infinite alternate;
}
.scn-disarm-enemy-reason .arm-r {
  position: absolute; bottom: 25%; right: 20%; width: 12px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 50% 50%; transform: rotate(-35deg);
  transform-origin: bottom left;
  animation: dis-armr 5s ease-in-out infinite alternate-reverse;
}
.scn-disarm-enemy-reason .wep {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 10% 10% 0 0; transform: rotate(10deg);
  transform-origin: bottom center;
  animation: dis-wep 7s ease-in-out infinite alternate;
}
.scn-disarm-enemy-reason .grip {
  position: absolute; bottom: 48%; left: 50%; width: 6px; height: 8px;
  margin-left: -3px; margin-bottom: -4px;
  background: #6a4a2a; border-radius: 30%;
  animation: dis-grip 4s ease-in-out infinite alternate;
}
@keyframes dis-ground { 0% { opacity: .9; } 100% { opacity: .7; } }
@keyframes dis-arml { 0% { transform: rotate(40deg); } 50% { transform: rotate(36deg); } 100% { transform: rotate(40deg); } }
@keyframes dis-armr { 0% { transform: rotate(-35deg); } 50% { transform: rotate(-31deg); } 100% { transform: rotate(-35deg); } }
@keyframes dis-wep { 0% { transform: rotate(10deg); } 100% { transform: rotate(8deg); } }
@keyframes dis-grip { 0% { opacity: .8; } 100% { opacity: 1; } }

/* ---- scene: brief-memoir-letters-explanation ---- */
.scn-brief-memoir-letters-explanation {
  background: 
    linear-gradient(180deg, #3b2e24 0%, #2a1e16 40%, #1f1510 100%),
    radial-gradient(ellipse at 60% 60%, #5a3e2a 0%, transparent 70%);
}
.scn-brief-memoir-letters-explanation .wall {
  position: absolute; inset: 20% 5% 30% 5%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 -12px 24px rgba(0,0,0,0.5);
}
.scn-brief-memoir-letters-explanation .desk {
  position: absolute; left: 15%; right: 15%; bottom: 15%; height: 14%;
  background: linear-gradient(180deg, #6b4f32 0%, #4a3520 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-brief-memoir-letters-explanation .letter {
  position: absolute; left: 35%; bottom: 30%; width: 30%; height: 22%;
  background: linear-gradient(135deg, #d4bf9a 0%, #b8a078 60%, #a08858 100%);
  border-radius: 4% 6% 3% 5%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-3deg);
  animation: bl1-letter 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-letters-explanation .candle-glow {
  position: absolute; left: 55%; bottom: 30%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 40%, #f5d6a0 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: bl1-glow 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-letters-explanation .candle-flame {
  position: absolute; left: 57%; bottom: 38%; width: 8px; height: 16px;
  background: radial-gradient(ellipse, #fb9 0%, #fa7 40%, #f80 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 16px 6px #fc8;
  animation: bl1-flame 2s ease-in-out infinite alternate;
}
.scn-brief-memoir-letters-explanation .inkwell {
  position: absolute; left: 25%; bottom: 32%; width: 20px; height: 18px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes bl1-letter {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes bl1-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.55; transform: scale(0.98); }
}
@keyframes bl1-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.85; }
}

/* ---- scene: brief-memoir-second-letter-bitterness ---- */
.scn-brief-memoir-second-letter-bitterness {
  background:
    linear-gradient(180deg, #2a2630 0%, #1d1820 40%, #121016 100%),
    radial-gradient(ellipse at 40% 50%, #3a2e38 0%, transparent 70%);
}
.scn-brief-memoir-second-letter-bitterness .bg-tension {
  position: absolute; inset: 0;
  background: linear-gradient(120deg, #25202a 0%, #1a1520 100%);
}
.scn-brief-memoir-second-letter-bitterness .figure-tense {
  position: absolute; left: 30%; bottom: 15%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #3a2e38 0%, #1c1620 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: bl2-figure 6s ease-in-out infinite;
}
.scn-brief-memoir-second-letter-bitterness .letter-crumple {
  position: absolute; left: 45%; bottom: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c0a888 0%, #a08868 100%);
  border-radius: 20% 30% 40% 10%;
  box-shadow: -2px 4px 6px rgba(0,0,0,0.4);
  transform: rotate(45deg) scale(0.8);
  animation: bl2-crumple 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-second-letter-bitterness .lamp {
  position: absolute; right: 15%; bottom: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 8px 2px #8a6a3a;
}
.scn-brief-memoir-second-letter-bitterness .lamp-glow {
  position: absolute; right: 12%; bottom: 38%; width: 50px; height: 60px;
  background: radial-gradient(circle, #b09050 0%, transparent 70%);
  opacity: 0.5;
  animation: bl2-lampglow 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-second-letter-bitterness .shadow-figure {
  position: absolute; left: 20%; bottom: 12%; width: 100px; height: 120px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: bl2-shadow 8s ease-in-out infinite alternate;
}
@keyframes bl2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bl2-crumple {
  0% { transform: rotate(45deg) scale(0.8) translateY(0); }
  50% { transform: rotate(50deg) scale(0.75) translateY(-2px); }
  100% { transform: rotate(40deg) scale(0.85) translateY(0); }
}
@keyframes bl2-lampglow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.45; transform: scale(0.95); }
}
@keyframes bl2-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(5px) scale(1.02); opacity: 0.7; }
  100% { transform: translateX(-2px) scale(0.98); opacity: 0.55; }
}

/* ---- scene: brief-memoir-york-chamber-scene ---- */
.scn-brief-memoir-york-chamber-scene {
  background:
    linear-gradient(180deg, #2a1a12 0%, #1f120a 40%, #0f0804 100%),
    radial-gradient(ellipse at 50% 70%, #5a2a1a 0%, transparent 70%);
}
.scn-brief-memoir-york-chamber-scene .wall-chamber {
  position: absolute; inset: 10% 8% 30% 8%;
  background: linear-gradient(135deg, #3a2818 0%, #1e140c 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-brief-memoir-york-chamber-scene .fireplace {
  position: absolute; left: 10%; right: 10%; bottom: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1c10 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-brief-memoir-york-chamber-scene .flames {
  position: absolute; left: 25%; right: 25%; bottom: 28%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #e07030 0%, #b04020 40%, #802010 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(4px);
  animation: yc-flames 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-chamber-scene .york-figure {
  position: absolute; left: 20%; bottom: 15%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yc-york 7s ease-in-out infinite;
}
.scn-brief-memoir-york-chamber-scene .author-figure {
  position: absolute; right: 15%; bottom: 15%; width: 65px; height: 130px;
  background: linear-gradient(180deg, #201810 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yc-author 9s ease-in-out infinite;
}
.scn-brief-memoir-york-chamber-scene .york-shadow {
  position: absolute; left: 15%; bottom: 10%; width: 100px; height: 130px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(12px);
  animation: yc-shadow-y 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-chamber-scene .author-shadow {
  position: absolute; right: 10%; bottom: 10%; width: 90px; height: 120px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: yc-shadow-a 10s ease-in-out infinite alternate;
}
@keyframes yc-flames {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(2px); opacity: 0.85; }
}
@keyframes yc-york {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes yc-author {
  0%,100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-3px) scale(0.98); }
}
@keyframes yc-shadow-y {
  0% { opacity: 0.5; transform: translateX(0) scale(1); }
  50% { opacity: 0.7; transform: translateX(6px) scale(1.05); }
  100% { opacity: 0.55; transform: translateX(-2px) scale(0.95); }
}
@keyframes yc-shadow-a {
  0% { opacity: 0.4; transform: translateX(0) scale(1); }
  50% { opacity: 0.6; transform: translateX(-4px) scale(1.02); }
  100% { opacity: 0.45; transform: translateX(2px) scale(0.98); }
}

/* ---- scene: brief-memoir-york-refuses-keep-off ---- */
.scn-brief-memoir-york-refuses-keep-off {
  background:
    linear-gradient(180deg, #2e1e14 0%, #1a0e08 40%, #0d0603 100%),
    radial-gradient(ellipse at 30% 60%, #6a341a 0%, transparent 70%);
}
.scn-brief-memoir-york-refuses-keep-off .bg-firelight {
  position: absolute; inset: 0;
  background: linear-gradient(120deg, #3a2010 0%, #1a1008 100%);
}
.scn-brief-memoir-york-refuses-keep-off .york-hand {
  position: absolute; left: 45%; bottom: 25%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2e1e14 0%, #160e08 100%);
  border-radius: 100% 100% 80% 80% / 120% 120% 70% 70%;
  transform: rotate(-10deg);
  box-shadow: 0 0 20px 8px rgba(0,0,0,0.5);
  animation: yr-hand 6s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-refuses-keep-off .letter-held {
  position: absolute; left: 48%; bottom: 30%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #d4bf9a 0%, #b8a078 60%, #a08858 100%);
  border-radius: 4% 6% 3% 5%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-15deg) translateX(5px);
  animation: yr-letter 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-refuses-keep-off .fire-glow {
  position: absolute; left: 10%; bottom: 5%; width: 200px; height: 200px;
  background: radial-gradient(circle, #e07030 0%, #b04020 30%, transparent 70%);
  opacity: 0.4;
  filter: blur(20px);
  animation: yr-glow 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-refuses-keep-off .hand-shadow {
  position: absolute; left: 38%; bottom: 18%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(12px);
  animation: yr-shadow 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-york-refuses-keep-off .floor-board {
  position: absolute; left: 0; right: 0; bottom: 0; height: 18%;
  background: linear-gradient(180deg, #2a1a0e 0%, #140a04 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
@keyframes yr-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
  100% { transform: rotate(-12deg) translateY(2px); }
}
@keyframes yr-letter {
  0% { transform: rotate(-15deg) translateX(5px); opacity: 0.9; }
  50% { transform: rotate(-12deg) translateX(8px); opacity: 1; }
  100% { transform: rotate(-18deg) translateX(3px); opacity: 0.85; }
}
@keyframes yr-glow {
  0% { opacity: 0.35; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes yr-shadow {
  0% { opacity: 0.5; transform: translateX(0) scale(1); }
  50% { opacity: 0.7; transform: translateX(10px) scale(1.1); }
  100% { opacity: 0.55; transform: translateX(-5px) scale(0.9); }
}

/* courage-element-danger */
.scn-courage-element-danger {
  background: linear-gradient(180deg, #1a0f0a 0%, #2d1d12 40%, #3b2a1c 100%), 
              radial-gradient(ellipse at 50% 70%, #5a3a28 0%, transparent 60%);
}
.scn-courage-element-danger .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2d1d12 0%, #1a0f0a 100%);
  animation: cd-wall 15s ease-in-out infinite alternate;
}
.scn-courage-element-danger .fg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3b2a1c 0%, #1f140e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-courage-element-danger .light-source {
  position: absolute; bottom: 45%; left: 25%; width: 12px; height: 20px;
  background: radial-gradient(circle, #f5c27a 0%, #c09050 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 10px #c09050, 0 0 60px 20px rgba(192,144,80,0.4);
  animation: cd-flicker 0.8s ease-in-out infinite alternate;
}
.scn-courage-element-danger .figure {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-stand 4s ease-in-out infinite;
}
.scn-courage-element-danger .weapon {
  position: absolute; bottom: 25%; left: 52%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6b4a2e 0%, #3d2a1a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: cd-weapon 4s ease-in-out infinite;
}
.scn-courage-element-danger .shadow-creep {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 80%, #000 0%, transparent 60%);
  opacity: 0.3;
  animation: cd-shadow 6s ease-in-out infinite alternate;
}
.scn-courage-element-danger .window-shape {
  position: absolute; top: 15%; right: 10%; width: 40px; height: 50px;
  border: 2px solid #5a3a28; border-radius: 4px;
  background: linear-gradient(135deg, #1a0f0a 0%, #2d1d12 100%);
  box-shadow: inset 0 0 10px #000;
  animation: cd-window 12s linear infinite;
}
@keyframes cd-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes cd-flicker { 0% { opacity:0.7; transform:scale(0.95); } 100% { opacity:1; transform:scale(1.05); } }
@keyframes cd-stand { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(-0.5deg); } 50% { transform: translateY(0) rotate(0.5deg); } 75% { transform: translateY(-2px) rotate(-0.5deg); } }
@keyframes cd-weapon { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg); } }
@keyframes cd-shadow { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } 75% { opacity:0.2; } }
@keyframes cd-window { 0%,100% { background: linear-gradient(135deg, #1a0f0a 0%, #2d1d12 100%); } 50% { background: linear-gradient(135deg, #2d1d12 0%, #3b2a1c 100%); } }

/* extent-of-influence-of-danger */
.scn-extent-of-influence-of-danger {
  background: linear-gradient(180deg, #1c1512 0%, #2a201c 30%, #3d2e28 60%, #1c1512 100%),
              radial-gradient(ellipse at 30% 50%, #4a3528 0%, transparent 70%);
}
.scn-extent-of-influence-of-danger .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #1c1512 0%, #2a201c 100%);
  animation: ed-room 18s ease-in-out infinite alternate;
}
.scn-extent-of-influence-of-danger .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%);
  border-radius: 8px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
  animation: ed-table 10s ease-in-out infinite;
}
.scn-extent-of-influence-of-danger .lamp {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #f5d6a0 0%, #c8a86e 60%, #8a6030 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 40px 15px #c8a86e, 0 0 80px 30px rgba(200,168,110,0.3);
  animation: ed-lamp 3s ease-in-out infinite alternate;
}
.scn-extent-of-influence-of-danger .figure {
  position: absolute; bottom: 20%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1f18 0%, #120c08 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: center bottom;
  animation: ed-figure 5s ease-in-out infinite;
}
.scn-extent-of-influence-of-danger .papers {
  position: absolute; bottom: 22%; left: 25%; right: 25%; height: 4%;
  background: linear-gradient(90deg, #d9c8aa 0%, #f0e0c8 50%, #d9c8aa 100%);
  border-radius: 2px;
  opacity: 0.6;
  animation: ed-papers 8s ease-in-out infinite;
}
.scn-extent-of-influence-of-danger .shadow-hand {
  position: absolute; bottom: 20%; left: 48%; width: 16px; height: 30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  transform-origin: top center;
  animation: ed-hand 6s ease-in-out infinite alternate;
}
.scn-extent-of-influence-of-danger .shadow-head {
  position: absolute; bottom: 40%; left: 44%; width: 30px; height: 40px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ed-head 9s ease-in-out infinite alternate;
}
@keyframes ed-room { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ed-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ed-lamp { 0% { opacity:0.8; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes ed-figure { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ed-papers { 0%,100% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.1); } }
@keyframes ed-hand { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-5px); } }
@keyframes ed-head { 0%,100% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(3px) scale(1.1); opacity:0.6; } }

/* affections-excited-hostility-danger */
.scn-affections-excited-hostility-danger {
  background: linear-gradient(180deg, #1a1814 0%, #2a241e 40%, #1a1814 100%),
              radial-gradient(ellipse at 50% 30%, #3d2e22 0%, transparent 60%);
}
.scn-affections-excited-hostility-danger .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a241e 0%, #1a1814 100%);
  animation: ah-room 12s ease-in-out infinite alternate;
}
.scn-affections-excited-hostility-danger .fireplace {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #2a1c14 0%, #0d0805 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}
.scn-affections-excited-hostility-danger .armchair {
  position: absolute; bottom: 10%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: ah-chair 20s ease-in-out infinite;
}
.scn-affections-excited-hostility-danger .figure {
  position: absolute; bottom: 15%; left: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1f18 0%, #120c08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: center bottom;
  animation: ah-figure 8s ease-in-out infinite;
}
.scn-affections-excited-hostility-danger .book {
  position: absolute; bottom: 20%; left: 30%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: ah-book 12s ease-in-out infinite;
}
.scn-affections-excited-hostility-danger .ember-glow {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f5a060 0%, #c07030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c07030;
  animation: ah-ember 4s ease-in-out infinite alternate;
}
@keyframes ah-room { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes ah-chair { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } }
@keyframes ah-figure { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ah-book { 0%,100% { transform: rotate(0) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } }
@keyframes ah-ember { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.2); } }

/* peculiar-characteristics-of-mind */
.scn-peculiar-characteristics-of-mind {
  background: linear-gradient(180deg, #1c1816 0%, #2a241e 30%, #3d322c 60%, #1c1816 100%),
              radial-gradient(ellipse at 80% 40%, #4a3830 0%, transparent 70%);
}
.scn-peculiar-characteristics-of-mind .bg-study {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #2a241e 0%, #1c1816 100%);
  animation: pc-room 14s ease-in-out infinite alternate;
}
.scn-peculiar-characteristics-of-mind .bookshelf {
  position: absolute; top: 10%; right: 5%; width: 30%; height: 70%;
  background: linear-gradient(90deg, #4a3528 0%, #3a2a1e 50%, #2a1a14 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  animation: pc-shelf 20s ease-in-out infinite;
}
.scn-peculiar-characteristics-of-mind .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 5%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 6px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.4);
}
.scn-peculiar-characteristics-of-mind .figure {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1f18 0%, #120c08 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: center bottom;
  animation: pc-figure 10s ease-in-out infinite;
}
.scn-peculiar-characteristics-of-mind .lamp-light {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #f5d6a0 0%, #c8a86e 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #c8a86e, 0 0 60px 20px rgba(200,168,110,0.2);
  animation: pc-lamp 5s ease-in-out infinite alternate;
}
.scn-peculiar-characteristics-of-mind .thought-lines {
  position: absolute; top: 15%; left: 30%; width: 40px; height: 2px;
  background: linear-gradient(90deg, transparent, #f5d6a0 50%, transparent);
  border-radius: 1px;
  opacity: 0.4;
  animation: pc-thought 8s ease-in-out infinite;
}
@keyframes pc-room { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes pc-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pc-figure { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes pc-lamp { 0% { opacity:0.8; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes pc-thought { 0%,100% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.6; transform: scaleX(1.2); } }

.scn-defence-mountains-march-vs-attack {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d8c0 50%, #dcc8a8 100%),
    radial-gradient(ellipse at 50% 80%, #fff8e8 0%, transparent 70%);
}
.scn-defence-mountains-march-vs-attack .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #f7e9d3 0%, #e2d0b0 100%); animation: dm1-bg 8s ease-in-out infinite alternate; }
.scn-defence-mountains-march-vs-attack .table  { position:absolute; bottom:5%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #b89a6a 0%, #8a6e44 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.15); }
.scn-defence-mountains-march-vs-attack .map    { position:absolute; bottom:18%; left:15%; right:15%; height:40%; background: linear-gradient(135deg, #ead3a0 0%, #d4b87a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dm1-map 12s ease-in-out infinite; }
.scn-defence-mountains-march-vs-attack .serpent{ position:absolute; bottom:30%; left:20%; width:60%; height:12%; background: radial-gradient(ellipse at 30% 50%, #6b4e2e 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: dm1-serpent 18s linear infinite; }
.scn-defence-mountains-march-vs-attack .column { position:absolute; bottom:22%; left:30%; width:4%; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3e24 100%); border-radius: 2px; transform: rotate(10deg); animation: dm1-column 4s ease-in-out infinite alternate; }
.scn-defence-mountains-march-vs-attack .candle { position:absolute; bottom:50%; left:50%; width:4px; height:20px; background: linear-gradient(180deg, #f5e0b0 0%, #c8a060 100%); border-radius: 2px 2px 1px 1px; transform: translateX(-50%); }
.scn-defence-mountains-march-vs-attack .glow   { position:absolute; bottom:48%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #ffec80 0%, #ffe060 30%, transparent 70%); transform: translate(-50%,30%); filter: blur(4px); animation: dm1-glow 3s ease-in-out infinite alternate; }
.scn-defence-mountains-march-vs-attack .scroll { position:absolute; bottom:15%; left:70%; width:12%; height:20%; background: linear-gradient(180deg, #dcc8a8 0%, #b8a080 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dm1-scroll 20s ease-in-out infinite; }
@keyframes dm1-bg      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dm1-map     { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes dm1-serpent { 0% { transform: translateX(-10px) scaleX(1); opacity:.6 } 50% { transform: translateX(10px) scaleX(1.2); opacity:.8 } 100% { transform: translateX(-10px) scaleX(1); opacity:.6 } }
@keyframes dm1-column  { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes dm1-glow    { 0% { opacity:.5; transform: translate(-50%,30%) scale(1) } 50% { opacity:.9; transform: translate(-50%,30%) scale(1.3) } 100% { opacity:.6; transform: translate(-50%,30%) scale(1) } }
@keyframes dm1-scroll  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-7deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-defence-mountains-false-conclusion {
  background: 
    linear-gradient(180deg, #f0e2c8 0%, #e2d0b0 50%, #d4be9a 100%),
    radial-gradient(ellipse at 40% 70%, #fff4dc 0%, transparent 60%);
}
.scn-defence-mountains-false-conclusion .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #f5ead8 0%, #dcc8a8 100%); animation: dm2-bg 10s ease-in-out infinite alternate; }
.scn-defence-mountains-false-conclusion .desk        { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #a08060 0%, #705440 100%); border-radius: 6px; box-shadow: 0 -6px 12px rgba(0,0,0,.15); }
.scn-defence-mountains-false-conclusion .paper-stack { position:absolute; bottom:20%; left:30%; width:30%; height:20%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dm2-stack 6s ease-in-out infinite; }
.scn-defence-mountains-false-conclusion .broken-line { position:absolute; bottom:40%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, #5a3e24 0%, #5a3e24 30%, transparent 30%, #5a3e24 30%, #5a3e24 60%, transparent 60%, #5a3e24 60%, #5a3e24 100%); filter: blur(1px); animation: dm2-line 8s ease-in-out infinite alternate; }
.scn-defence-mountains-false-conclusion .quill       { position:absolute; bottom:45%; left:45%; width:6px; height:40px; background: linear-gradient(180deg, #c8a860 0%, #8a6e30 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-30deg); transform-origin: bottom center; animation: dm2-quill 5s ease-in-out infinite alternate; }
.scn-defence-mountains-false-conclusion .inkwell     { position:absolute; bottom:20%; left:70%; width:16px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); }
.scn-defence-mountains-false-conclusion .shadow-blot { position:absolute; bottom:18%; left:68%; width:30px; height:20px; background: radial-gradient(ellipse, #2a1a1a 0%, transparent 70%); filter: blur(3px); animation: dm2-blot 12s ease-in-out infinite; }
@keyframes dm2-bg   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dm2-stack{ 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dm2-line { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(1) } }
@keyframes dm2-quill{ 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes dm2-blot { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.3) } 100% { opacity:.3; transform: scale(1) } }

.scn-defence-mountains-historical-evolution {
  background: 
    linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 50%, #c0ac88 100%),
    radial-gradient(ellipse at 30% 50%, #fff8ec 0%, transparent 60%);
}
.scn-defence-mountains-historical-evolution .bg-parchment { position:absolute; inset:0; background: linear-gradient(135deg, #f0e6d0 0%, #dcc8a8 100%); animation: dm3-bg 14s ease-in-out infinite alternate; }
.scn-defence-mountains-historical-evolution .layer-ancient { position:absolute; bottom:30%; left:10%; width:25%; height:40%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 4px; opacity:.6; animation: dm3-layer 20s ease-in-out infinite; }
.scn-defence-mountains-historical-evolution .layer-medieval { position:absolute; bottom:25%; left:30%; width:25%; height:50%; background: linear-gradient(180deg, #c8a880 0%, #947458 100%); border-radius: 4px; opacity:.7; animation: dm3-layer 24s ease-in-out infinite reverse; }
.scn-defence-mountains-historical-evolution .layer-modern { position:absolute; bottom:20%; left:50%; width:25%; height:60%; background: linear-gradient(180deg, #dcc09c 0%, #a88868 100%); border-radius: 4px; opacity:.8; animation: dm3-layer 28s ease-in-out infinite; }
.scn-defence-mountains-historical-evolution .timeline { position:absolute; bottom:10%; left:5%; right:5%; height:2px; background: linear-gradient(90deg, transparent, #5a3e24 20%, #5a3e24 80%, transparent); filter: blur(1px); animation: dm3-line 16s linear infinite; }
.scn-defence-mountains-historical-evolution .figure-eras { position:absolute; bottom:38%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30%; transform: scale(0.8); animation: dm3-figure 6s ease-in-out infinite alternate; }
.scn-defence-mountains-historical-evolution .dust-motes { position:absolute; top:10%; left:0; width:100%; height:10%; background: radial-gradient(circle, rgba(255,255,200,.2) 0%, transparent 70%); filter: blur(6px); animation: dm3-dust 30s linear infinite; }
@keyframes dm3-bg     { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dm3-layer  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes dm3-line   { 0% { background-position: 0% 0%; opacity:.3 } 50% { background-position: 100% 0%; opacity:.6 } 100% { background-position: 0% 0%; opacity:.3 } }
@keyframes dm3-figure { 0% { transform: scale(0.8) translateX(0) } 50% { transform: scale(1) translateX(8px) } 100% { transform: scale(0.8) translateX(0) } }
@keyframes dm3-dust   { 0% { transform: translateY(0) scale(1); opacity:.2 } 50% { transform: translateY(-20px) scale(1.2); opacity:.5 } 100% { transform: translateY(0) scale(1); opacity:.2 } }

.scn-defence-mountains-small-post-strength {
  background: 
    linear-gradient(180deg, #f0e4cc 0%, #decab0 50%, #cab094 100%),
    radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 70%);
}
.scn-defence-mountains-small-post-strength .bg-chamber { position:absolute; inset:0; background: linear-gradient(135deg, #f2e6d2 0%, #d8c4a8 100%); animation: dm4-bg 9s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-strength .window     { position:absolute; top:10%; left:50%; width:40%; height:30%; background: linear-gradient(180deg, #b8d0e0 0%, #8aacbc 100%); border-radius: 8px; transform: translateX(-50%); box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 0 0 6px #a08060; }
.scn-defence-mountains-small-post-strength .mountains-outside { position:absolute; top:10%; left:50%; width:40%; height:30%; transform: translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #705440 100%); clip-path: polygon(0% 100%, 20% 40%, 40% 60%, 60% 20%, 100% 100%); animation: dm4-mountains 20s ease-in-out infinite; }
.scn-defence-mountains-small-post-strength .small-fort  { position:absolute; bottom:30%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #c8a880 0%, #8a6e44 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dm4-fort 10s ease-in-out infinite; }
.scn-defence-mountains-small-post-strength .flag        { position:absolute; bottom:52%; left:48%; width:4px; height:20px; background: #5a3e24; animation: dm4-flag 4s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-strength .flag::after { content:''; position:absolute; top:0; left:2px; width:16px; height:10px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 0 50% 50% 0; animation: dm4-flag-wind 2s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-strength .guard       { position:absolute; bottom:25%; left:45%; width:10px; height:30px; background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%); border-radius: 30% 30% 20% 20%; animation: dm4-guard 6s ease-in-out infinite; }
.scn-defence-mountains-small-post-strength .lantern     { position:absolute; bottom:35%; left:60%; width:6px; height:8px; background: #ffd680; border-radius: 50%; box-shadow: 0 0 16px 4px #ffd680, 0 0 32px 8px rgba(255,214,128,.4); animation: dm4-lantern 3s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-strength .shadow      { position:absolute; bottom:22%; left:40%; width:30%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 70%); filter: blur(4px); animation: dm4-shadow 8s ease-in-out infinite; }
@keyframes dm4-bg        { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dm4-mountains { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes dm4-fort      { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes dm4-flag      { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes dm4-flag-wind { 0% { transform: scaleX(1) } 100% { transform: scaleX(1.2) } }
@keyframes dm4-guard     { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes dm4-lantern   { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.8; transform: scale(1) } }
@keyframes dm4-shadow    { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.15) } 100% { opacity:.3; transform: scaleX(1) } }

/* retreat-into-interior-intro */
.scn-retreat-into-interior-intro {
  background: linear-gradient(180deg, #f5ecd9 0%, #e8dcc4 40%, #d4c5a4 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
  overflow: hidden;
}
.scn-retreat-into-interior-intro .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f2e8d0 0%, #dacba8 100%);
}
.scn-retreat-into-interior-intro .window {
  position: absolute; top: 8%; left: 50%; width: 200px; height: 260px; transform: translateX(-50%); background: linear-gradient(180deg, #b8d4e8 0%, #a0c4d8 100%); border: 6px solid #b0956a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(180,200,220,0.3);
}
.scn-retreat-into-interior-intro .desk {
  position: absolute; bottom: 18%; left: 25%; width: 240px; height: 120px; background: linear-gradient(180deg, #8b7355 0%, #6d5b40 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); transform: perspective(600px) rotateX(5deg);
}
.scn-retreat-into-interior-intro .map {
  position: absolute; bottom: 35%; left: 28%; width: 180px; height: 90px; background: linear-gradient(135deg, #d4b87a 0%, #c4a86a 50%, #b8985a 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: rii-map 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-intro .figure {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 110px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rii-figure 6s ease-in-out infinite;
}
.scn-retreat-into-interior-intro .candle {
  position: absolute; bottom: 28%; left: 22%; width: 6px; height: 40px; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 20px 6px rgba(240,200,120,0.4); animation: rii-candle 3s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-intro .bookshelf {
  position: absolute; top: 12%; right: 10%; width: 120px; height: 200px; background: linear-gradient(180deg, #6d5b3e 0%, #4a3a24 50%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-retreat-into-interior-intro .curtain-left {
  position: absolute; top: 8%; left: 48%; width: 20px; height: 250px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 0 4px 4px 0; filter: blur(1px); animation: rii-curtain 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-intro .curtain-right {
  position: absolute; top: 8%; right: 48%; width: 20px; height: 250px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 4px 0 0 4px; filter: blur(1px); animation: rii-curtain 12s ease-in-out infinite alternate-reverse;
}
@keyframes rii-map { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(-3deg) scale(0.99); } }
@keyframes rii-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rii-candle { 0% { opacity: 0.9; box-shadow: 0 0 15px 4px rgba(240,200,120,0.3); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(240,200,120,0.6); } 100% { opacity: 0.95; box-shadow: 0 0 18px 5px rgba(240,200,120,0.4); } }
@keyframes rii-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }

/* retreat-into-interior-losses-in-advance */
.scn-retreat-into-interior-losses-in-advance {
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c5a4 50%, #bfb08a 100%), radial-gradient(ellipse at 30% 40%, #fff5e6 0%, transparent 60%);
}
.scn-retreat-into-interior-losses-in-advance .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0d2b8 0%, #beae8e 100%);
}
.scn-retreat-into-interior-losses-in-advance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #9c8a6e 0%, #7a6a50 30%, #6a5a42 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-retreat-into-interior-losses-in-advance .door {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 160px; background: linear-gradient(180deg, #7a6a54 0%, #584a36 100%); border: 4px solid #4a3a28; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: rla-door 10s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-losses-in-advance .wall-map {
  position: absolute; top: 18%; left: 50%; width: 140px; height: 100px; background: linear-gradient(135deg, #d8c090 0%, #c0a870 50%, #a89060 100%); border: 3px solid #8a7a5a; border-radius: 2px; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: rla-wall-map 14s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-losses-in-advance .table {
  position: absolute; bottom: 24%; right: 18%; width: 100px; height: 60px; background: linear-gradient(180deg, #8b7355 0%, #6d5b40 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-retreat-into-interior-losses-in-advance .lantern {
  position: absolute; bottom: 35%; right: 21%; width: 16px; height: 30px; background: linear-gradient(180deg, #d4b080 0%, #a08050 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 6px rgba(200,160,80,0.5); animation: rla-lantern 4s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-losses-in-advance .figure-standing {
  position: absolute; bottom: 24%; left: 55%; width: 36px; height: 110px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rla-figure 7s ease-in-out infinite;
}
.scn-retreat-into-interior-losses-in-advance .shadow {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); transform: translateX(-50%); animation: rla-shadow 7s ease-in-out infinite;
}
@keyframes rla-door { 0% { transform: translateX(0); } 50% { transform: translateX(3px) scale(1.005); } 100% { transform: translateX(-2px); } }
@keyframes rla-wall-map { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes rla-lantern { 0% { opacity: 0.85; box-shadow: 0 0 15px 4px rgba(200,160,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(200,160,80,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 18px 5px rgba(200,160,80,0.4); } }
@keyframes rla-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rla-shadow { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.7; } }

/* retreat-into-interior-daily-resistance */
.scn-retreat-into-interior-daily-resistance {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #d0c0a0 100%), radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 50%);
}
.scn-retreat-into-interior-daily-resistance .desk-top {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 140px; background: linear-gradient(180deg, #8b7355 0%, #6d5b40 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-retreat-into-interior-daily-resistance .paper {
  position: absolute; bottom: 50%; left: 30%; width: 150px; height: 100px; background: linear-gradient(135deg, #f5ecdc 0%, #e0d4bc 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); transform: rotate(-2deg); animation: rdr-paper 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-daily-resistance .quill {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 60px; background: linear-gradient(180deg, #c0a870 0%, #8a7040 100%); border-radius: 1px; transform-origin: bottom center; animation: rdr-quill 4s ease-in-out infinite;
}
.scn-retreat-into-interior-daily-resistance .inkwell {
  position: absolute; bottom: 38%; left: 25%; width: 18px; height: 22px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a08 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-retreat-into-interior-daily-resistance .hand {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 40px; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rdr-hand 5s ease-in-out infinite;
}
.scn-retreat-into-interior-daily-resistance .candle {
  position: absolute; bottom: 40%; left: 18%; width: 6px; height: 36px; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 20px 6px rgba(240,200,120,0.4); animation: rdr-candle 3s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-daily-resistance .blotter {
  position: absolute; bottom: 35%; right: 22%; width: 40px; height: 50px; background: linear-gradient(180deg, #88807a 0%, #5a524a 100%); border-radius: 2px; transform: rotate(5deg);
}
@keyframes rdr-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes rdr-quill { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes rdr-hand { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rdr-candle { 0% { opacity: 0.9; box-shadow: 0 0 15px 4px rgba(240,200,120,0.3); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(240,200,120,0.6); } 100% { opacity: 0.95; box-shadow: 0 0 18px 5px rgba(240,200,120,0.4); } }

/* retreat-into-interior-equal-wear */
.scn-retreat-into-interior-equal-wear {
  background: linear-gradient(180deg, #ede4d0 0%, #d8cbb0 40%, #c4b89a 100%), radial-gradient(ellipse at 60% 20%, #fff8e8 0%, transparent 50%);
}
.scn-retreat-into-interior-equal-wear .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8ddc4 0%, #cebea0 100%);
}
.scn-retreat-into-interior-equal-wear .window-pane {
  position: absolute; top: 10%; left: 55%; width: 180px; height: 240px; background: linear-gradient(180deg, #b0c8da 0%, #9ab8ce 100%); border: 8px solid #a08860; border-radius: 4px; box-shadow: inset 0 0 40px rgba(180,200,220,0.3);
}
.scn-retreat-into-interior-equal-wear .armchair {
  position: absolute; bottom: 18%; left: 20%; width: 120px; height: 130px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-retreat-into-interior-equal-wear .book {
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 30px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: rew-book 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-equal-wear .figure-resting {
  position: absolute; bottom: 18%; left: 22%; width: 40px; height: 100px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rew-figure 12s ease-in-out infinite;
}
.scn-retreat-into-interior-equal-wear .rug {
  position: absolute; bottom: 8%; left: 15%; right: 30%; height: 30px; background: linear-gradient(90deg, #b8a888 0%, #c8b898 25%, #d0c0a0 50%, #c8b898 75%, #b8a888 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; opacity: 0.8; animation: rew-rug 15s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-equal-wear .side-table {
  position: absolute; bottom: 30%; right: 20%; width: 60px; height: 50px; background: linear-gradient(180deg, #8b7355 0%, #6d5b40 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
@keyframes rew-book { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes rew-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rew-rug { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.02); opacity: 0.9; } 100% { transform: scaleX(0.98); opacity: 0.7; } }

.scn-precise-moment-description {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e14 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-precise-moment-description .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: pmd-wall 20s ease-in-out infinite alternate;
}
.scn-precise-moment-description .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: pmd-desk 12s ease-in-out infinite;
}
.scn-precise-moment-description .map {
  position: absolute; bottom: 28%; left: 18%; width: 45%; height: 22%;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 50%, #806040 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pmd-map 8s ease-in-out infinite alternate;
}
.scn-precise-moment-description .candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080;
  animation: pmd-candle 3s ease-in-out infinite alternate;
}
.scn-precise-moment-description .light {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: pmd-light 4s ease-in-out infinite;
}
.scn-precise-moment-description .figure {
  position: absolute; bottom: 10%; left: 25%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pmd-figure 6s ease-in-out infinite;
}
.scn-precise-moment-description .shadow {
  position: absolute; bottom: 6%; left: 30%; width: 20%; height: 8%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: pmd-shadow 6s ease-in-out infinite;
}
@keyframes pmd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pmd-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pmd-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes pmd-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes pmd-light { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes pmd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmd-shadow { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } }

.scn-modern-battle-wearing-away {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2220 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 80%, #4a3428 0%, transparent 70%);
}
.scn-modern-battle-wearing-away .bunker-wall {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(0deg, #2a221e 0px, #2a221e 4px, #1e1814 4px, #1e1814 8px);
  animation: mbw-wall 30s linear infinite;
}
.scn-modern-battle-wearing-away .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: mbw-table 10s ease-in-out infinite alternate;
}
.scn-modern-battle-wearing-away .radio {
  position: absolute; bottom: 28%; left: 25%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 0 2px #5a4a3a;
  animation: mbw-radio 6s ease-in-out infinite;
}
.scn-modern-battle-wearing-away .cup {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: mbw-cup 4s ease-in-out infinite alternate;
}
.scn-modern-battle-wearing-away .soldier {
  position: absolute; bottom: 12%; left: 10%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mbw-soldier 8s ease-in-out infinite;
}
.scn-modern-battle-wearing-away .breathe {
  position: absolute; bottom: 30%; left: 15%; width: 6%; height: 8%;
  background: radial-gradient(circle, rgba(180,200,220,0.15) 0%, transparent 80%);
  border-radius: 50%;
  animation: mbw-breathe 4s ease-in-out infinite;
}
.scn-modern-battle-wearing-away .dust {
  position: absolute; top: 20%; left: 40%; width: 15%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.08) 0%, transparent 70%);
  filter: blur(4px);
  animation: mbw-dust 20s linear infinite;
}
@keyframes mbw-wall { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes mbw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mbw-radio { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 0 2px #7a6a5a; } }
@keyframes mbw-cup { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes mbw-soldier { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mbw-breathe { 0%,100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.5); } }
@keyframes mbw-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 10% { opacity: 0.5; } 90% { opacity: 0.3; } 100% { transform: translateY(-30px) scale(1.2); opacity: 0; } }

.scn-item-reserves-decision-modern {
  background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-item-reserves-decision-modern .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  animation: ird-room 15s ease-in-out infinite alternate;
}
.scn-item-reserves-decision-modern .lamp {
  position: absolute; top: 10%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px #5a5a7a;
  animation: ird-lamp 3s ease-in-out infinite alternate;
}
.scn-item-reserves-decision-modern .table-ird {
  position: absolute; bottom: 15%; left: 8%; right: 8%; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 6px;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: ird-table 10s ease-in-out infinite;
}
.scn-item-reserves-decision-modern .papers {
  position: absolute; bottom: 28%; left: 20%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ird-papers 5s ease-in-out infinite alternate;
}
.scn-item-reserves-decision-modern .hand {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: ird-hand 2s ease-in-out infinite;
}
.scn-item-reserves-decision-modern .tense-figure {
  position: absolute; bottom: 10%; right: 15%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ird-figure 4s ease-in-out infinite;
}
.scn-item-reserves-decision-modern .clock {
  position: absolute; top: 25%; right: 10%; width: 12%; height: 12%;
  background: radial-gradient(circle, #5a5a7a 30%, #2a2a3a 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #3a3a5a;
  animation: ird-clock 60s linear infinite;
}
.scn-item-reserves-decision-modern .pulse {
  position: absolute; top: 50%; left: 50%; width: 40%; height: 40%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(100,100,150,0.08) 0%, transparent 60%);
  animation: ird-pulse 2s ease-in-out infinite;
}
@keyframes ird-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ird-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 ird-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ird-papers { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(1deg); } 100% { transform: scale(0.95) rotate(-1deg); } }
@keyframes ird-hand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(10deg); } }
@keyframes ird-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ird-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ird-pulse { 0%,100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.1); } }

.scn-battle-direction-commencement {
  background: linear-gradient(180deg, #1a1816 0%, #2a221e 40%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-battle-direction-commencement .chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a221e 0%, #1a1410 100%);
  animation: bdc-chamber 20s ease-in-out infinite alternate;
}
.scn-battle-direction-commencement .table-bdc {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: bdc-table 12s ease-in-out infinite;
}
.scn-battle-direction-commencement .map-bdc {
  position: absolute; bottom: 32%; left: 15%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #b8a890 0%, #988070 50%, #786050 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bdc-map 8s ease-in-out infinite alternate;
}
.scn-battle-direction-commencement .pointing-hand {
  position: absolute; bottom: 35%; left: 38%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bdc-hand 3s ease-in-out infinite;
}
.scn-battle-direction-commencement .general {
  position: absolute; bottom: 10%; left: 25%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bdc-general 6s ease-in-out infinite;
}
.scn-battle-direction-commencement .door {
  position: absolute; right: 5%; top: 10%; width: 15%; height: 50%;
  background: repeating-linear-gradient(90deg, #3a2a22 0px, #3a2a22 4px, #2a1e14 4px, #2a1e14 8px);
  border-radius: 4px 0 0 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: bdc-door 15s ease-in-out infinite alternate;
}
.scn-battle-direction-commencement .light-beam {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(255,220,180,0.1) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: bdc-beam 4s ease-in-out infinite;
}
.scn-battle-direction-commencement .shadow-fig {
  position: absolute; bottom: 8%; right: 8%; width: 10%; height: 20%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: bdc-shadow 6s ease-in-out infinite;
}
@keyframes bdc-chamber { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bdc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bdc-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(0.97) rotate(-2deg); } }
@keyframes bdc-hand { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-6px) rotate(10deg); } }
@keyframes bdc-general { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bdc-door { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes bdc-beam { 0%,100% { opacity: 0.3; } 50% { opacity: 0.7; } }
@keyframes bdc-shadow { 0%,100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } }

.scn-defence-of-theatre-centre-of-gravity {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c4b090 100%),
    radial-gradient(ellipse at 50% 60%, #f5ede0 0%, transparent 70%);
}
.scn-defence-of-theatre-centre-of-gravity .bg-warm {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 50%, #c4b090 100%);
  animation: ctrg-bg 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-centre-of-gravity .table-top {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #b09878 0%, #8a7458 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-centre-of-gravity .gravity-centre {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle at 40% 40%, #f0d080 0%, #c09050 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,144,80,0.6);
  animation: ctrg-pulse 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-centre-of-gravity .force-line {
  position: absolute; bottom: 42%; height: 2px; width: 60px;
  background: linear-gradient(90deg, transparent 0%, #a08060 50%, transparent 100%);
  transform-origin: center bottom;
  animation: ctrg-line 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-centre-of-gravity .line-a {
  left: 20%; transform: rotate(-20deg); animation-delay: 0s;
}
.scn-defence-of-theatre-centre-of-gravity .line-b {
  left: 40%; transform: rotate(-5deg); animation-delay: 1s;
}
.scn-defence-of-theatre-centre-of-gravity .line-c {
  left: 60%; transform: rotate(10deg); animation-delay: 2s;
}
.scn-defence-of-theatre-centre-of-gravity .highlight-glow {
  position: absolute; bottom: 36%; left: 48%; width: 4%; height: 10%;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 100%);
  filter: blur(6px);
  animation: ctrg-glow 5s ease-in-out infinite;
}
.scn-defence-of-theatre-centre-of-gravity .map-edge {
  position: absolute; bottom: 25%; left: 8%; right: 8%; height: 30%;
  border: 1px solid rgba(160,128,96,0.3);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: ctrg-edge 10s linear infinite;
}
@keyframes ctrg-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ctrg-pulse { 0% { transform: translate(-50%,0) scale(1); box-shadow: 0 0 30px 8px rgba(192,144,80,0.5); } 50% { transform: translate(-50%,-2px) scale(1.08); box-shadow: 0 0 60px 15px rgba(192,144,80,0.7); } 100% { transform: translate(-50%,0) scale(1); box-shadow: 0 0 40px 10px rgba(192,144,80,0.6); } }
@keyframes ctrg-line { 0% { opacity:0.3; width:40px; } 50% { opacity:0.8; width:80px; } 100% { opacity:0.3; width:40px; } }
@keyframes ctrg-glow { 0% { opacity:0.4; filter:blur(4px); } 50% { opacity:0.8; filter:blur(8px); } 100% { opacity:0.4; filter:blur(4px); } }
@keyframes ctrg-edge { 0% { border-color: rgba(160,128,96,0.3); } 50% { border-color: rgba(160,128,96,0.5); } 100% { border-color: rgba(160,128,96,0.3); } }

.scn-defence-of-theatre-measure-of-force {
  background: 
    linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 50%, #b0a090 100%),
    radial-gradient(ellipse at 50% 70%, #f0ecd8 0%, transparent 60%);
}
.scn-defence-of-theatre-measure-of-force .bg-neutral {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #e0d4c0, #c8b8a0, #b0a090);
  animation: meas-bg 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-measure-of-force .scale-stand {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a68 0%, #6a5a48 100%);
  border-radius: 4px;
}
.scn-defence-of-theatre-measure-of-force .scale-beam {
  position: absolute; bottom: 65%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(180deg, #b09878 0%, #8a7a68 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: meas-beam 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-measure-of-force .scale-left {
  position: absolute; bottom: 62%; left: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #c8b898 0%, #a09070 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotateY(20deg);
  animation: meas-pan 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-measure-of-force .scale-right {
  position: absolute; bottom: 62%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #c8b898 0%, #a09070 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotateY(-20deg);
  animation: meas-pan 6s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-measure-of-force .weight-left {
  position: absolute; bottom: 65%; left: 15%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #705040 0%, #402820 100%);
  border-radius: 20%;
  animation: meas-weight 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-measure-of-force .weight-right {
  position: absolute; bottom: 65%; right: 15%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #705040 0%, #402820 100%);
  border-radius: 20%;
  animation: meas-weight 4s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-measure-of-force .pendulum {
  position: absolute; bottom: 70%; left: 50%; width: 4px; height: 40px;
  transform-origin: top center;
  background: linear-gradient(180deg, #a08060 0%, transparent 100%);
  animation: meas-pend 6s ease-in-out infinite;
}
@keyframes meas-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes meas-beam { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes meas-pan { 0% { transform: rotateY(20deg) translateY(0); } 50% { transform: rotateY(25deg) translateY(-2px); } 100% { transform: rotateY(20deg) translateY(0); } }
@keyframes meas-weight { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes meas-pend { 0% { transform: rotate(5deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(5deg); } }

.scn-defence-of-theatre-judgment {
  background: 
    linear-gradient(180deg, #3a3030 0%, #2a2020 40%, #1a1010 100%),
    radial-gradient(ellipse at 50% 80%, #4a4030 0%, transparent 70%);
}
.scn-defence-of-theatre-judgment .bg-dark {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #3a3030, #2a2020, #1a1010);
  animation: judg-bg 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-judgment .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-judgment .judge-figure {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a4040 0%, #2a2020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: judg-figure 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-judgment .gavel {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%);
  border-radius: 4px;
  transform: translate(0, 0);
  animation: judg-gavel 3s ease-in-out infinite;
}
.scn-defence-of-theatre-judgment .lamp-glow {
  position: absolute; bottom: 50%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d080 0%, transparent 80%);
  filter: blur(6px);
  animation: judg-lamp 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-judgment .papers {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: judg-papers 7s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-judgment .chair-back {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4840 0%, #3a2820 100%);
  border-radius: 40% 40% 20% 20%;
  z-index: -1;
  animation: judg-chair 12s ease-in-out infinite;
}
@keyframes judg-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes judg-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes judg-gavel { 0% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(5px,-2px) rotate(0); } 50% { transform: translate(0,0) rotate(10deg); } 75% { transform: translate(-5px,-2px) rotate(0); } 100% { transform: translate(0,0) rotate(-10deg); } }
@keyframes judg-lamp { 0% { opacity:0.6; filter:blur(4px); } 50% { opacity:0.9; filter:blur(8px); } 100% { opacity:0.6; filter:blur(4px); } }
@keyframes judg-papers { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes judg-chair { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }

.scn-defence-of-theatre-theatres-originate {
  background: 
    linear-gradient(180deg, #d8d0c0 0%, #c0b8a0 40%, #a8a090 100%),
    radial-gradient(ellipse at 50% 40%, #ede8d8 0%, transparent 70%);
}
.scn-defence-of-theatre-theatres-originate .bg-map {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #d8d0c0, #c0b8a0, #a8a090);
  animation: theo-bg 16s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-theatres-originate .region {
  position: absolute; border-radius: 60% 40% 50% 30% / 50% 60% 40% 50%;
  background: linear-gradient(135deg, rgba(160,140,120,0.5) 0%, rgba(120,100,80,0.3) 100%);
  border: 1px solid rgba(100,80,60,0.3);
}
.scn-defence-of-theatre-theatres-originate .region-a {
  top: 20%; left: 20%; width: 25%; height: 30%;
  animation: theo-region-a 8s ease-in-out infinite alternate;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}
.scn-defence-of-theatre-theatres-originate .region-b {
  top: 40%; left: 50%; width: 30%; height: 25%;
  animation: theo-region-b 10s ease-in-out infinite alternate-reverse;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}
.scn-defence-of-theatre-theatres-originate .region-c {
  top: 55%; left: 15%; width: 20%; height: 20%;
  animation: theo-region-c 12s ease-in-out infinite alternate;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
}
.scn-defence-of-theatre-theatres-originate .boundary-line {
  position: absolute; height: 2px; width: 60%; 
  background: linear-gradient(90deg, transparent, rgba(100,80,60,0.4), transparent);
  transform-origin: left center;
}
.scn-defence-of-theatre-theatres-originate .line-h {
  top: 48%; left: 10%; animation: theo-line-h 6s ease-in-out infinite;
}
.scn-defence-of-theatre-theatres-originate .line-v {
  top: 25%; left: 45%; width: 2px; height: 40%;
  background: linear-gradient(180deg, transparent, rgba(100,80,60,0.4), transparent);
  animation: theo-line-v 7s ease-in-out infinite;
}
.scn-defence-of-theatre-theatres-originate .compass-rose {
  position: absolute; bottom: 10%; right: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0a880 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  animation: theo-compass 30s linear infinite;
}
.scn-defence-of-theatre-theatres-originate .corner-fold {
  position: absolute; top: 0; right: 0; width: 50px; height: 50px;
  background: linear-gradient(225deg, transparent 49%, #d8d0c0 50%, #c0b8a0 100%);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
  animation: theo-fold 20s ease-in-out infinite alternate;
}
@keyframes theo-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes theo-region-a { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.03) translate(2px,-2px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes theo-region-b { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(0.98) translate(-3px,1px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes theo-region-c { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes theo-line-h { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.7; transform: scaleX(1); } 100% { opacity:0.3; transform: scaleX(0.8); } }
@keyframes theo-line-v { 0% { opacity:0.3; transform: scaleY(0.8); } 50% { opacity:0.7; transform: scaleY(1); } 100% { opacity:0.3; transform: scaleY(0.8); } }
@keyframes theo-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes theo-fold { 0% { width:50px; height:50px; » } 50% { width:60px; height:60px; } 100% { width:50px; height:50px; } }

.scn-physical-exertion-suffering {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%),
    radial-gradient(ellipse at 60% 70%, #5a3a2a 0%, transparent 70%);
}
.scn-physical-exertion-suffering .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2a24 0%, #1e1410 100%);
  animation: pes-wall 18s ease-in-out infinite alternate;
}
.scn-physical-exertion-suffering .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #2a1e1a 0%, #3a2a24 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: pes-floor 22s ease-in-out infinite alternate;
}
.scn-physical-exertion-suffering .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:5%;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-physical-exertion-suffering .lamp {
  position:absolute; bottom:40%; left:55%; width:12px; height:20px;
  background: radial-gradient(circle, #d4a86a 0%, #b08040 50%, #5a3020 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(180,120,60,0.5), 0 0 60px 20px rgba(180,120,60,0.2);
  animation: pes-lamp 4s ease-in-out infinite alternate;
}
.scn-physical-exertion-suffering .figure {
  position:absolute; bottom:25%; left:30%; 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: pes-figure 6s ease-in-out infinite;
}
.scn-physical-exertion-suffering .hourglass {
  position:absolute; bottom:28%; left:65%; width:20px; height:30px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pes-hourglass 12s ease-in-out infinite;
}
.scn-physical-exertion-suffering .shadow {
  position:absolute; bottom:20%; left:25%; right:35%; height:12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pes-shadow 5s ease-in-out infinite alternate;
}
@keyframes pes-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes pes-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes pes-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(180,120,60,0.4), 0 0 40px 12px rgba(180,120,60,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px rgba(180,120,60,0.6), 0 0 80px 24px rgba(180,120,60,0.25); opacity: 1; }
  100% { box-shadow: 0 0 24px 8px rgba(180,120,60,0.45), 0 0 50px 16px rgba(180,120,60,0.18); opacity: 0.92; }
}
@keyframes pes-figure {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(2px,-1px) rotate(2deg); }
  50% { transform: translate(0,-2px) rotate(-1deg); }
  75% { transform: translate(-2px,-1px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes pes-hourglass {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02) rotate(2deg); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes pes-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(0.9); }
  100% { opacity: 0.6; transform: scaleX(1); }
}

.scn-average-intellect-accident {
  background:
    linear-gradient(180deg, #2a201c 0%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #4a3428 0%, transparent 70%);
}
.scn-average-intellect-accident .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #342420 0%, #1c1410 100%);
  animation: aia-wall 20s ease-in-out infinite alternate;
}
.scn-average-intellect-accident .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:6%;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: aia-desk 25s ease-in-out infinite alternate;
}
.scn-average-intellect-accident .candle {
  position:absolute; bottom:35%; left:40%; width:8px; height:25px;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6030 40%, #d0a060 70%, #f0d080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.4);
  animation: aia-candle 3s ease-in-out infinite alternate;
}
.scn-average-intellect-accident .inkwell {
  position:absolute; bottom:24%; left:55%; width:14px; height:12px;
  background: radial-gradient(circle, #3a2a24 0%, #1a1210 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-average-intellect-accident .quill {
  position:absolute; bottom:30%; left:62%; width:2px; height:30px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  transform-origin: bottom center;
  border-radius: 50% 50% 0 0;
  animation: aia-quill 4s ease-in-out infinite;
}
.scn-average-intellect-accident .spill {
  position:absolute; bottom:18%; left:48%; width:20px; height:8px;
  background: radial-gradient(ellipse, #2a1e1a 0%, transparent 70%);
  opacity: 0.6;
  animation: aia-spill 7s ease-in-out infinite alternate;
}
.scn-average-intellect-accident .hand {
  position:absolute; bottom:20%; left:35%; width:16px; height:20px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom left;
  animation: aia-hand 5s ease-in-out infinite;
}
@keyframes aia-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes aia-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes aia-candle {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03) rotate(2deg); }
  100% { opacity: 0.92; transform: scaleY(1); }
}
@keyframes aia-quill {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(15deg) translateX(2px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(-10deg) translateX(-1px); }
  100% { transform: rotate(0deg); }
}
@keyframes aia-spill {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes aia-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  33% { transform: translate(3px,-2px) rotate(5deg); }
  66% { transform: translate(1px,-1px) rotate(-3deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}

.scn-war-province-of-chance {
  background:
    linear-gradient(180deg, #2a241e 0%, #1a1410 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-war-province-of-chance .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #1e1610 100%);
  animation: wpc-wall 16s ease-in-out infinite alternate;
}
.scn-war-province-of-chance .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:5%;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-war-province-of-chance .candle {
  position:absolute; bottom:38%; left:60%; width:8px; height:22px;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6030 40%, #d0a060 70%, #f0d080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.4);
  animation: wpc-candle 4s ease-in-out infinite alternate;
}
.scn-war-province-of-chance .die-1 {
  position:absolute; bottom:27%; left:35%; width:16px; height:16px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: wpc-die1 6s ease-in-out infinite;
}
.scn-war-province-of-chance .die-2 {
  position:absolute; bottom:28%; left:50%; width:16px; height:16px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: wpc-die2 8s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-war-province-of-chance .hand {
  position:absolute; bottom:22%; left:28%; width:18px; height:22px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: wpc-hand 7s ease-in-out infinite;
}
.scn-war-province-of-chance .shadow {
  position:absolute; bottom:18%; left:20%; right:30%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: wpc-shadow 9s ease-in-out infinite alternate;
}
@keyframes wpc-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.72; }
}
@keyframes wpc-candle {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02) rotate(1deg); }
  100% { opacity: 0.92; transform: scaleY(0.98); }
}
@keyframes wpc-die1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(2px,-1px) rotate(15deg); }
  50% { transform: translate(0,0) rotate(0deg); }
  75% { transform: translate(-2px,1px) rotate(-15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes wpc-die2 {
  0% { transform: translate(0,0) rotate(0deg); }
  33% { transform: translate(-1px,-2px) rotate(-10deg); }
  66% { transform: translate(1px,0) rotate(10deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes wpc-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(4px,-2px) rotate(8deg); }
  40% { transform: translate(6px,-3px) rotate(12deg); }
  60% { transform: translate(2px,-1px) rotate(4deg); }
  80% { transform: translate(-2px,1px) rotate(-4deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes wpc-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.55; transform: scaleX(0.95); }
}

.scn-actor-finds-things-different {
  background:
    linear-gradient(180deg, #2a201c 0%, #1a1410 100%),
    radial-gradient(ellipse at 30% 60%, #4a3428 0%, transparent 70%);
}
.scn-actor-finds-things-different .wall {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #342420 0%, #1c1410 100%);
  animation: aftd-wall 14s ease-in-out infinite alternate;
}
.scn-actor-finds-things-different .floor {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #2a1e1a 0%, #3a2a24 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  animation: aftd-floor 20s ease-in-out infinite alternate;
}
.scn-actor-finds-things-different .desk {
  position:absolute; bottom:20%; left:12%; right:12%; height:5%;
  background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-actor-finds-things-different .map {
  position:absolute; bottom:25%; left:20%; width:50%; height:20%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a40 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: aftd-map 10s ease-in-out infinite alternate;
}
.scn-actor-finds-things-different .compass {
  position:absolute; bottom:30%; left:55%; width:14px; height:14px;
  background: radial-gradient(circle, #c8b090 0%, #8a7050 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,180,150,0.3);
  animation: aftd-compass 15s linear infinite;
}
.scn-actor-finds-things-different .hand {
  position:absolute; bottom:22%; left:25%; width:16px; height:22px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom left;
  animation: aftd-hand 6s ease-in-out infinite;
}
.scn-actor-finds-things-different .candle {
  position:absolute; bottom:38%; left:50%; width:8px; height:25px;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6030 40%, #d0a060 70%, #f0d080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.4);
  animation: aftd-candle 3s ease-in-out infinite alternate;
}
.scn-actor-finds-things-different .shadow {
  position:absolute; bottom:18%; left:15%; right:20%; height:12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: aftd-shadow 8s ease-in-out infinite alternate;
}
@keyframes aftd-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.78; }
}
@keyframes aftd-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes aftd-map {
  0% { opacity: 0.8; transform: rotate(0deg) scale(1); }
  50% { opacity: 0.95; transform: rotate(2deg) scale(1.02); }
  100% { opacity: 0.85; transform: rotate(-1deg) scale(0.98); }
}
@keyframes aftd-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes aftd-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(3px,-1px) rotate(5deg); }
  60% { transform: translate(6px,-2px) rotate(10deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes aftd-candle {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03) rotate(1deg); }
  100% { opacity: 0.92; transform: scaleY(1); }
}
@keyframes aftd-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.65; transform: scaleX(1.05); }
  100% { opacity: 0.52; transform: scaleX(0.98); }
}

.scn-destruction-foundation-stone {
  background:
    linear-gradient(180deg, #1e1612 0%, #2a1e1a 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-destruction-foundation-stone .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); opacity:0.5;
}
.scn-destruction-foundation-stone .pedestal {
  position:absolute; bottom:20%; left:50%; width:60%; height:12%; transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-destruction-foundation-stone .stone {
  position:absolute; bottom:32%; left:50%; width:40%; height:18%; transform:translateX(-50%);
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2e24 50%, #1e1612 100%);
  border-radius:10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dfs-stone 12s ease-in-out infinite alternate;
}
.scn-destruction-foundation-stone .shadow {
  position:absolute; bottom:20%; left:50%; width:55%; height:6%; transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
}
.scn-destruction-foundation-stone .candle {
  position:absolute; bottom:30%; left:40%; width:3%; height:12%;
  background: linear-gradient(180deg, #e0a040 0%, #b08040 40%, #5a3a1a 100%);
  border-radius:20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(224,160,64,0.3);
  animation: dfs-candle 4s ease-in-out infinite;
}
.scn-destruction-foundation-stone .glow {
  position:absolute; bottom:30%; left:40%; width:12%; height:20%;
  background: radial-gradient(ellipse, rgba(224,160,64,0.4) 0%, transparent 100%);
  transform:translate(-50%, -50%); pointer-events:none;
  animation: dfs-glow 6s ease-in-out infinite alternate;
}
.scn-destruction-foundation-stone .smoke {
  position:absolute; bottom:42%; left:41%; width:6%; height:20%;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter:blur(6px); animation: dfs-smoke 12s ease-in-out infinite;
}
@keyframes dfs-stone {
  0% { transform:translateX(-50%) translateY(0) scale(1); }
  50% { transform:translateX(-50%) translateY(-4px) scale(1.01); }
  100% { transform:translateX(-50%) translateY(0) scale(1); }
}
@keyframes dfs-candle {
  0% { transform:translateY(0) scaleY(1); opacity:0.9; }
  50% { transform:translateY(-2px) scaleY(1.03); opacity:1; }
  100% { transform:translateY(0) scaleY(1); opacity:0.9; }
}
@keyframes dfs-glow {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.5; }
}
@keyframes dfs-smoke {
  0% { transform:translateY(0) scale(1); opacity:0.3; }
  50% { transform:translateY(-30px) scale(1.5); opacity:0; }
  100% { transform:translateY(0) scale(1); opacity:0.3; }
}

.scn-combat-single-activity-destruction {
  background:
    linear-gradient(90deg, #1a1410 0%, #2a1e1a 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 80%);
}
.scn-combat-single-activity-destruction .bg-walls {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); opacity:0.6;
}
.scn-combat-single-activity-destruction .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-combat-single-activity-destruction .table {
  position:absolute; bottom:20%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-combat-single-activity-destruction .fig-silhouette {
  position:absolute; bottom:15%; left:45%; width:15%; height:45%;
  background: linear-gradient(180deg, #0a0808 0%, #1a1410 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center; transform: rotate(5deg);
  animation: csa-fig 6s ease-in-out infinite alternate;
}
.scn-combat-single-activity-destruction .sword-blade {
  position:absolute; bottom:25%; left:52%; width:2%; height:30%;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 20% 20% 60% 60%; transform: rotate(-20deg);
  box-shadow: 0 0 6px 1px rgba(176,160,144,0.3);
  animation: csa-sword 4s ease-in-out infinite alternate;
}
.scn-combat-single-activity-destruction .candle {
  position:absolute; bottom:20%; left:35%; width:2.5%; height:10%;
  background: linear-gradient(180deg, #d09030 0%, #a07020 50%, #4a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: csa-candle 3s ease-in-out infinite;
}
.scn-combat-single-activity-destruction .candle-glow {
  position:absolute; bottom:20%; left:35%; width:10%; height:15%;
  background: radial-gradient(ellipse, rgba(208,144,48,0.3) 0%, transparent 100%);
  transform:translate(-50%, -50%); pointer-events:none;
  animation: csa-glow 5s ease-in-out infinite alternate;
}
.scn-combat-single-activity-destruction .dust-motes {
  position:absolute; inset:0;
  background: radial-gradient(circle at 20% 30%, rgba(200,190,180,0.1) 0%, transparent 30%),
              radial-gradient(circle at 70% 60%, rgba(200,190,180,0.08) 0%, transparent 40%);
  filter:blur(2px); animation: csa-dust 15s ease-in-out infinite;
}
@keyframes csa-fig {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes csa-sword {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes csa-candle {
  0% { transform: translateY(0) scaleY(1); opacity:0.85; }
  50% { transform: translateY(-1px) scaleY(1.02); opacity:1; }
  100% { transform: translateY(0) scaleY(1); opacity:0.85; }
}
@keyframes csa-glow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}
@keyframes csa-dust {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.5; transform: scale(1.02); }
  100% { opacity:0.2; transform: scale(1); }
}

.scn-decision-by-arms-react {
  background:
    linear-gradient(135deg, #1e1612 0%, #2a1e1a 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-decision-by-arms-react .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); opacity:0.4;
}
.scn-decision-by-arms-react .window {
  position:absolute; top:15%; left:50%; width:30%; height:40%; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #2a2a4e 0%, #0e0e1e 100%);
  border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: dar-window 8s ease-in-out infinite alternate;
}
.scn-decision-by-arms-react .window-sill {
  position:absolute; top:55%; left:48%; width:34%; height:3%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-decision-by-arms-react .table {
  position:absolute; bottom:15%; left:20%; width:60%; height:14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius:4% 4% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-decision-by-arms-react .map {
  position:absolute; bottom:18%; left:35%; width:30%; height:8%;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2e24 50%, #1e1612 100%);
  border-radius:2%; transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-decision-by-arms-react .candle {
  position:absolute; bottom:20%; left:45%; width:2.5%; height:12%;
  background: linear-gradient(180deg, #e0a040 0%, #b08040 40%, #5a3a1a 100%);
  border-radius:20% 20% 10% 10%;
  animation: dar-candle 4s ease-in-out infinite;
}
.scn-decision-by-arms-react .candle-glow {
  position:absolute; bottom:20%; left:45%; width:12%; height:18%;
  background: radial-gradient(ellipse, rgba(224,160,64,0.3) 0%, transparent 100%);
  transform:translate(-50%, -50%); pointer-events:none;
  animation: dar-glow 5s ease-in-out infinite alternate;
}
.scn-decision-by-arms-react .figure-hands {
  position:absolute; bottom:15%; left:30%; width:8%; height:6%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0a0808 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%;
  animation: dar-hands 6s ease-in-out infinite alternate;
}
@keyframes dar-window {
  0% { opacity:0.6; }
  50% { opacity:0.8; }
  100% { opacity:0.6; }
}
@keyframes dar-candle {
  0% { transform:translateY(0) scaleY(1); opacity:0.85; }
  50% { transform:translateY(-2px) scaleY(1.03); opacity:1; }
  100% { transform:translateY(0) scaleY(1); opacity:0.85; }
}
@keyframes dar-glow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}
@keyframes dar-hands {
  0% { transform: translateX(0) translateY(0) scale(1); }
  50% { transform: translateX(3px) translateY(-1px) scale(1.02); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}

.scn-destruction-superior-means {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e1a 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-destruction-superior-means .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); opacity:0.5;
}
.scn-destruction-superior-means .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-destruction-superior-means .shield {
  position:absolute; bottom:20%; left:40%; width:30%; height:35%;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2e24 50%, #1e1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg); box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dsm-shield 8s ease-in-out infinite alternate;
}
.scn-destruction-superior-means .shield-broken-piece {
  position:absolute; bottom:25%; left:60%; width:12%; height:15%;
  background: linear-gradient(135deg, #5a4a3a 0%, #2a1e1a 100%);
  border-radius: 20% 20% 40% 40%; transform: rotate(30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dsm-piece 10s ease-in-out infinite alternate;
}
.scn-destruction-superior-means .shadow {
  position:absolute; bottom:18%; left:35%; width:40%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
}
.scn-destruction-superior-means .lantern {
  position:absolute; bottom:15%; left:55%; width:4%; height:15%;
  background: linear-gradient(180deg, #e0a040 0%, #b08040 40%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: dsm-lantern 3s ease-in-out infinite;
}
.scn-destruction-superior-means .lantern-glow {
  position:absolute; bottom:15%; left:55%; width:18%; height:25%;
  background: radial-gradient(ellipse, rgba(224,160,64,0.3) 0%, transparent 100%);
  transform:translate(-50%, -50%); pointer-events:none;
  animation: dsm-lantern-glow 5s ease-in-out infinite alternate;
}
@keyframes dsm-shield {
  0% { transform: rotate(-15deg) translateY(0) scale(1); }
  50% { transform: rotate(-13deg) translateY(-3px) scale(1.01); }
  100% { transform: rotate(-15deg) translateY(0) scale(1); }
}
@keyframes dsm-piece {
  0% { transform: rotate(30deg) translateX(0) translateY(0); }
  50% { transform: rotate(32deg) translateX(5px) translateY(-2px); }
  100% { transform: rotate(30deg) translateX(0) translateY(0); }
}
@keyframes dsm-lantern {
  0% { transform: translateY(0) scaleY(1); opacity:0.85; }
  50% { transform: translateY(-2px) scaleY(1.03); opacity:1; }
  100% { transform: translateY(0) scaleY(1); opacity:0.85; }
}
@keyframes dsm-lantern-glow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}

/* Scene: conditions-comm  (com) */
.scn-operating-against-flank-conditions-comm {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4c4a0 100%), radial-gradient(ellipse at 30% 40%, #fcf3e0 0%, transparent 60%);
}
.scn-operating-against-flank-conditions-comm .wall {
  position: absolute; inset: 0; background: rgba(245,230,200,0.15);
  animation: com-wall 12s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conditions-comm .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #705a3d 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.2);
  animation: com-desk 14s ease-in-out infinite;
}
.scn-operating-against-flank-conditions-comm .map {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 24%;
  background: linear-gradient(135deg, #e8dcc0 0%, #cbbaa0 100%);
  border-radius: 2px; transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: com-map 20s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conditions-comm .lamp {
  position: absolute; bottom: 38%; left: 70%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #8c7a45 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,220,150,0.4);
  animation: com-lamp 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conditions-comm .lightcone {
  position: absolute; bottom: 30%; left: 65%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.4) 0%, transparent 70%);
  transform: rotate(-12deg); transform-origin: bottom left;
  animation: com-lightcone 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conditions-comm .marker {
  position: absolute; bottom: 22%; left: 30%; width: 6px; height: 6px;
  background: #6a4a3a; border-radius: 50%;
  box-shadow: 0 0 4px #4a2a1a;
  animation: com-marker 5s ease-in-out infinite;
}
@keyframes com-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes com-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes com-map { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(1) } }
@keyframes com-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,220,150,0.3) } 50% { box-shadow: 0 0 30px 12px rgba(255,220,150,0.6) } 100% { box-shadow: 0 0 18px 6px rgba(255,220,150,0.35) } }
@keyframes com-lightcone { 0% { opacity: 0.6; transform: rotate(-15deg) scaleX(1) } 50% { opacity: 0.9; transform: rotate(-10deg) scaleX(1.1) } 100% { opacity: 0.7; transform: rotate(-12deg) scaleX(1) } }
@keyframes com-marker { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(3px,-2px) scale(1.1) } 50% { transform: translate(6px,0) scale(1) } 75% { transform: translate(3px,1px) scale(0.9) } 100% { transform: translate(0,0) scale(1) } }

/* Scene: obliquity  (obl) */
.scn-operating-against-flank-obliquity {
  background: linear-gradient(135deg, #faf3e6 0%, #e6d6b6 100%), radial-gradient(ellipse at 40% 50%, #fff5e0 0%, transparent 70%);
}
.scn-operating-against-flank-obliquity .wall {
  position: absolute; inset: 0; background: rgba(240,230,210,0.2);
  animation: obl-wall 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-obliquity .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,0.15);
}
.scn-operating-against-flank-obliquity .triangle {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform-origin: 50% 0%;
  animation: obl-triangle 8s ease-in-out infinite alternate;
}
.scn-operating-against-flank-obliquity .protractor {
  position: absolute; bottom: 15%; right: 10%; width: 50px; height: 50px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 50%; border: 2px solid #8a7a5a;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: obl-protractor 12s ease-in-out infinite;
}
.scn-operating-against-flank-obliquity .angle-mark {
  position: absolute; bottom: 25%; left: 40%; width: 10px; height: 10px;
  background: #5a4a3a; border-radius: 50%;
  animation: obl-angle 6s ease-in-out infinite;
}
.scn-operating-against-flank-obliquity .compass {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 12px;
  background: linear-gradient(180deg, #c0a060 0%, #907040 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,0.2);
  animation: obl-compass 3s ease-in-out infinite alternate;
}
@keyframes obl-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes obl-triangle { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.03) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes obl-protractor { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes obl-angle { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(5px,-3px) scale(1.2) } 50% { transform: translate(10px,0) scale(1) } 75% { transform: translate(5px,2px) scale(0.9) } 100% { transform: translate(0,0) scale(1) } }
@keyframes obl-compass { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(20deg) scale(1.1) } 100% { transform: rotate(-15deg) scale(1) } }

/* Scene: blind-room  (bli) */
.scn-operating-against-flank-blind-room {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #2c2c3e 0%, transparent 60%);
}
.scn-operating-against-flank-blind-room .bg {
  position: absolute; inset: 0; background: rgba(10,10,20,0.3);
}
.scn-operating-against-flank-blind-room .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, #1e1e30 0%, #121220 100%);
  border-radius: 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-operating-against-flank-blind-room .blind {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 50%;
  background: repeating-linear-gradient(180deg, #2a2a3e 0px, #2a2a3e 4px, #1a1a2e 4px, #1a1a2e 8px);
  border-radius: 2px;
  animation: bli-blind 2s ease-in-out infinite alternate;
}
.scn-operating-against-flank-blind-room .beam {
  position: absolute; top: 22%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,220,160,0.15) 0%, rgba(255,220,160,0) 100%);
  transform: skewX(-5deg); transform-origin: top center;
  animation: bli-beam 1.5s ease-in-out infinite alternate;
}
.scn-operating-against-flank-blind-room .figure {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bli-figure 4s ease-in-out infinite;
}
.scn-operating-against-flank-blind-room .chair {
  position: absolute; bottom: 5%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  animation: bli-chair 10s ease-in-out infinite;
}
@keyframes bli-blind { 0% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-2px) skewX(2deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes bli-beam { 0% { opacity: 0.3; transform: skewX(-8deg) scaleY(1) } 50% { opacity: 0.7; transform: skewX(0deg) scaleY(1.05) } 100% { opacity: 0.4; transform: skewX(-5deg) scaleY(1) } }
@keyframes bli-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bli-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* Scene: perpendicular-cover  (per) */
.scn-operating-against-flank-perpendicular-cover {
  background: linear-gradient(135deg, #f7efe0 0%, #e2d4bc 100%), radial-gradient(ellipse at 60% 40%, #fcf5e8 0%, transparent 60%);
}
.scn-operating-against-flank-perpendicular-cover .wall {
  position: absolute; inset: 0; background: rgba(245,235,220,0.15);
  animation: per-wall 14s ease-in-out infinite alternate;
}
.scn-operating-against-flank-perpendicular-cover .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #8b7355 0%, #6e583e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,0.1);
}
.scn-operating-against-flank-perpendicular-cover .circle {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #d4c4a0 0%, #b8a888 100%);
  border-radius: 50%; border: 2px solid #8a7a5a;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: per-circle 20s ease-in-out infinite alternate;
}
.scn-operating-against-flank-perpendicular-cover .line-a {
  position: absolute; bottom: 45%; left: 30%; width: 2px; height: 40px;
  background: #4a3a2a; transform-origin: bottom center;
  animation: per-linea 8s ease-in-out infinite;
}
.scn-operating-against-flank-perpendicular-cover .line-b {
  position: absolute; bottom: 45%; left: 30%; width: 2px; height: 40px;
  background: #4a3a2a; transform-origin: bottom center;
  animation: per-lineb 8s ease-in-out infinite;
}
.scn-operating-against-flank-perpendicular-cover .needle {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 2px;
  background: #8c6040; transform-origin: 0 50%;
  animation: per-needle 5s ease-in-out infinite alternate;
}
@keyframes per-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes per-circle { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes per-linea { 0% { transform: rotate(0deg) scaleY(1) } 33% { transform: rotate(15deg) scaleY(1.1) } 66% { transform: rotate(-10deg) scaleY(0.9) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes per-lineb { 0% { transform: rotate(90deg) scaleY(1) } 33% { transform: rotate(75deg) scaleY(1.1) } 66% { transform: rotate(100deg) scaleY(0.9) } 100% { transform: rotate(90deg) scaleY(1) } }
@keyframes per-needle { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-20deg) } }

.scn-theory-directed-to-material-things {
  background: linear-gradient(180deg, #1a1411 0%, #2c221e 40%, #1e1613 100%),
              radial-gradient(ellipse at 60% 50%, #3d2b23 0%, transparent 70%);
}
.scn-theory-directed-to-material-things .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c221e 0%, #1a1411 100%);
}
.scn-theory-directed-to-material-things .bookshelf {
  position: absolute; left: 5%; top: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-theory-directed-to-material-things .books {
  position: absolute; left: 7%; top: 12%; width: 26%; height: 44%;
  background: repeating-linear-gradient(
    90deg,
    #4a3a32 0px, #4a3a32 8px,
    #6a4a3a 8px, #6a4a3a 16px,
    #3a2a1a 16px, #3a2a1a 24px,
    #5a3a2a 24px, #5a3a2a 32px
  );
  border-radius: 2px; opacity: 0.9;
}
.scn-theory-directed-to-material-things .desk {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #4a3228 0%, #5a3a2e 40%, #3a2218 100%);
  border-radius: 2px 2px 8px 8px;
}
.scn-theory-directed-to-material-things .candle-glow {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #e8a050 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(232,160,80,0.4);
  animation: th-candle 4s ease-in-out infinite alternate;
}
.scn-theory-directed-to-material-things .candle-body {
  position: absolute; bottom: 18%; left: 49.5%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e8c8a0 0%, #b09070 100%);
  border-radius: 2px; transform: translateX(-50%);
}
.scn-theory-directed-to-material-things .globe {
  position: absolute; bottom: 22%; right: 28%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.5);
  animation: th-globe 12s linear infinite;
}
.scn-theory-directed-to-material-things .writer-silhouette {
  position: absolute; bottom: 12%; right: 15%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: th-writer 5s ease-in-out infinite alternate;
}
@keyframes th-candle {
  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(1px); }
}
@keyframes th-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes th-writer {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-superiority-in-numbers-chosen {
  background: linear-gradient(180deg, #1a1816 0%, #2a2420 40%, #1e1a18 100%),
              radial-gradient(ellipse at 50% 30%, #3a2e2a 0%, transparent 70%);
}
.scn-superiority-in-numbers-chosen .table-top {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #4a382e 0%, #5a4238 40%, #3a2a20 100%);
  border-radius: 6px;
}
.scn-superiority-in-numbers-chosen .paper-map {
  position: absolute; bottom: 28%; left: 15%; width: 40%; height: 22%;
  background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: sn-paper 10s ease-in-out infinite alternate;
}
.scn-superiority-in-numbers-chosen .chess-pieces-cluster-1 {
  position: absolute; bottom: 22%; left: 25%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #5a4a42 0%, #2a1e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 0 0 #6a5a4a, -2px 0 0 #4a3a32;
  animation: sn-chess1 8s ease-in-out infinite alternate;
}
.scn-superiority-in-numbers-chosen .chess-pieces-cluster-2 {
  position: absolute; bottom: 20%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #4a3a32 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 1px 0 0 #5a4a42, -1px 0 0 #3a2a22;
  animation: sn-chess2 6s ease-in-out infinite alternate;
}
.scn-superiority-in-numbers-chosen .oil-lamp {
  position: absolute; bottom: 36%; left: 65%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 6px 6px 10px 10px;
  transform: translateX(-50%);
}
.scn-superiority-in-numbers-chosen .lamp-glow {
  position: absolute; bottom: 32%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 50%, transparent 80%);
  border-radius: 50%;
  animation: sn-lampglow 3s ease-in-out infinite alternate;
}
.scn-superiority-in-numbers-chosen .shadow-figure {
  position: absolute; bottom: 12%; right: 5%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sn-figure 7s ease-in-out infinite alternate;
}
@keyframes sn-paper {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(4px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes sn-chess1 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes sn-chess2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sn-lampglow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes sn-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-subsistence-as-supreme-legislator {
  background: linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #1e1a16 100%),
              radial-gradient(ellipse at 40% 60%, #3a2e26 0%, transparent 70%);
}
.scn-subsistence-as-supreme-legislator .tent-roof {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 8px 8px 0 0;
}
.scn-subsistence-as-supreme-legislator .tent-body {
  position: absolute; top: 26%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 8px 8px;
}
.scn-subsistence-as-supreme-legislator .campfire {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #ffb060 0%, #d08030 50%, transparent 70%);
  border-radius: 50%;
  animation: sb-fire 3s ease-in-out infinite alternate;
}
.scn-subsistence-as-supreme-legislator .fire-glow {
  position: absolute; bottom: 24%; left: 33%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ff8040 0%, #d06020 40%, transparent 70%);
  border-radius: 50%; opacity: 0.5;
  animation: sb-fireglow 2s ease-in-out infinite alternate;
}
.scn-subsistence-as-supreme-legislator .soldier-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-soldier 6s ease-in-out infinite alternate;
}
.scn-subsistence-as-supreme-legislator .crates {
  position: absolute; bottom: 12%; right: 30%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #5a4234 0%, #4a3224 100%);
  border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: sb-crates 8s ease-in-out infinite alternate;
}
.scn-subsistence-as-supreme-legislator .supply-sack {
  position: absolute; bottom: 14%; right: 20%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40%;
  animation: sb-sack 10s ease-in-out infinite alternate;
}
@keyframes sb-fire {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.1) translateY(-3px); }
  100% { transform: scale(0.9) translateY(2px); }
}
@keyframes sb-fireglow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes sb-soldier {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes sb-crates {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sb-sack {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-base-conception-geometrical {
  background: linear-gradient(180deg, #1a1818 0%, #2a2624 40%, #1e1c1a 100%),
              radial-gradient(ellipse at 50% 40%, #3a322e 0%, transparent 70%);
}
.scn-base-conception-geometrical .drafting-table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 14%;
  background: linear-gradient(90deg, #4a3e38 0%, #5a4a42 40%, #3a2e28 100%);
  border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-base-conception-geometrical .blueprint-paper {
  position: absolute; bottom: 24%; left: 20%; width: 50%; height: 28%;
  background: linear-gradient(135deg, #b8a890 0%, #a09080 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: bc-paper 12s ease-in-out infinite alternate;
}
.scn-base-conception-geometrical .compass-tool {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: bc-compass 8s ease-in-out infinite alternate;
}
.scn-base-conception-geometrical .ruler {
  position: absolute; bottom: 22%; left: 30%; width: 34%; height: 4px;
  background: linear-gradient(90deg, #8a7a6a 0%, #7a6a5a 100%);
  border-radius: 2px; transform: rotate(-8deg);
  animation: bc-ruler 10s ease-in-out infinite alternate;
}
.scn-base-conception-geometrical .triangle-shape {
  position: absolute; bottom: 30%; left: 40%; width: 0; height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 30px solid #6a5a4a;
  animation: bc-triangle 14s ease-in-out infinite alternate;
}
.scn-base-conception-geometrical .lamp-object {
  position: absolute; bottom: 34%; left: 70%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px; transform: translateX(-50%);
}
.scn-base-conception-geometrical .lamp-light {
  position: absolute; bottom: 30%; left: 70%; width: 36px; height: 36px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 50%, transparent 80%);
  border-radius: 50%;
  animation: bc-lamp 3s ease-in-out infinite alternate;
}
@keyframes bc-paper {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes bc-compass {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes bc-ruler {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-6deg) translateX(2px); }
  100% { transform: rotate(-8deg) translateX(0); }
}
@keyframes bc-triangle {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes bc-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-war-not-handicraft { background: linear-gradient(180deg, #1a1a1a 0%, #2a2218 50%, #1a1208 100%), radial-gradient(ellipse at 50% 100%, #3a2a18 0%, transparent 60%); }
.scn-war-not-handicraft .bg   { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,8,4,.7) 0%, transparent 60%); animation:wn1-bg 12s ease-in-out infinite alternate; }
.scn-war-not-handicraft .desk { position:absolute; bottom:0; left:5%; right:5%; height:35%; background:linear-gradient(180deg, #3d2a18 0%, #1f1208 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); animation:wn1-desk 18s ease-in-out infinite alternate; }
.scn-war-not-handicraft .candle{ position:absolute; bottom:28%; left:35%; width:10px; height:40px; background:linear-gradient(180deg, #e8d0a0 0%, #b09060 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.5); transform-origin:bottom center; animation:wn1-candle 8s ease-in-out infinite; }
.scn-war-not-handicraft .flame{ position:absolute; bottom:65%; left:35%; width:7px; height:20px; background:radial-gradient(ellipse 50% 100%, #ffdd80 0%, #e8a040 50%, transparent 100%); border-radius:50%; box-shadow:0 0 12px 6px rgba(232,160,64,.6), 0 0 24px 12px rgba(232,160,64,.3); animation:wn1-flame 3s ease-in-out infinite alternate; }
.scn-war-not-handicraft .scroll{ position:absolute; bottom:22%; left:50%; width:50px; height:30px; background:linear-gradient(135deg, #c8b080 0%, #a08860 100%); border-radius:5px; box-shadow:0 2px 6px rgba(0,0,0,.5); transform:rotate(-5deg); animation:wn1-scroll 14s ease-in-out infinite; }
.scn-war-not-handicraft .hand { position:absolute; bottom:18%; left:48%; width:15px; height:25px; background:linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%); border-radius:40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin:bottom center; animation:wn1-hand 4s ease-in-out infinite; }
.scn-war-not-handicraft .inkwell{ position:absolute; bottom:20%; left:58%; width:12px; height:14px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.6); animation:wn1-inkwell 20s ease-in-out infinite alternate; }
@keyframes wn1-bg     { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes wn1-desk   { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-2px) scaleY(1.01)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes wn1-candle { 0%,100%{transform:rotate(0)} 50%{transform:rotate(1deg)} }
@keyframes wn1-flame  { 0%{transform:scaleY(1) translateX(0);opacity:.9;box-shadow:0 0 10px 4px rgba(232,160,64,.5)} 50%{transform:scaleY(1.2) translateX(-1px);opacity:1;box-shadow:0 0 18px 8px rgba(232,160,64,.7)} 100%{transform:scaleY(0.9) translateX(1px);opacity:.85;box-shadow:0 0 12px 5px rgba(232,160,64,.5)} }
@keyframes wn1-scroll { 0%,100%{transform:rotate(-5deg) translateX(0)} 50%{transform:rotate(-3deg) translateX(2px)} }
@keyframes wn1-hand   { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(5px) rotate(-1deg)} 100%{transform:translateX(10px) rotate(2deg)} }
@keyframes wn1-inkwell{ 0%,100%{opacity:.8} 50%{opacity:1} }

.scn-war-part-of-intercourse-of-the-human-race { background: linear-gradient(180deg, #1e1a1c 0%, #2a1e1a 50%, #1a100e 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-war-part-of-intercourse-of-the-human-race .bg   { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,8,4,.5) 0%, transparent 80%); animation:wp2-bg 15s ease-in-out infinite alternate; }
.scn-war-part-of-intercourse-of-the-human-race .floor{ position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a1e12 0%, #120c08 100%); animation:wp2-floor 20s ease-in-out infinite alternate; }
.scn-war-part-of-intercourse-of-the-human-race .figure-l{ position:absolute; bottom:18%; left:15%; width:20px; height:50px; background:linear-gradient(180deg, #1a1210 0%, #0c0808 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(-5deg); transform-origin:bottom center; animation:wp2-figure-l 6s ease-in-out infinite; }
.scn-war-part-of-intercourse-of-the-human-race .figure-r{ position:absolute; bottom:18%; right:15%; width:20px; height:50px; background:linear-gradient(180deg, #1a1210 0%, #0c0808 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(5deg); transform-origin:bottom center; animation:wp2-figure-r 6s ease-in-out infinite 3s; }
.scn-war-part-of-intercourse-of-the-human-race .table { position:absolute; bottom:20%; left:45%; right:45%; height:8px; background:linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.5); animation:wp2-table 14s ease-in-out infinite; }
.scn-war-part-of-intercourse-of-the-human-race .lamp  { position:absolute; bottom:25%; left:50%; width:8px; height:30px; background:linear-gradient(180deg, #c8a060 0%, #8a7030 100%); transform:translateX(-50%); border-radius:20%; animation:wp2-lamp 4s ease-in-out infinite alternate; }
.scn-war-part-of-intercourse-of-the-human-race .glow  { position:absolute; bottom:26%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(200,160,96,.6) 0%, transparent 100%); border-radius:50%; animation:wp2-glow 4s ease-in-out infinite alternate; }
@keyframes wp2-bg     { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes wp2-floor  { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes wp2-figure-l{0%{transform:rotate(-5deg) translateX(0)} 50%{transform:rotate(-3deg) translateX(3px)} 100%{transform:rotate(-5deg) translateX(0)} }
@keyframes wp2-figure-r{0%{transform:rotate(5deg) translateX(0)} 50%{transform:rotate(3deg) translateX(-3px)} 100%{transform:rotate(5deg) translateX(0)} }
@keyframes wp2-table  { 0%,100%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.05)} }
@keyframes wp2-lamp   { 0%{opacity:.7;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.1)} 100%{opacity:.8;transform:translateX(-50%) scaleY(0.95)} }
@keyframes wp2-glow   { 0%{opacity:.4;transform:translate(-50%,-50%) scale(1)} 50%{opacity:.8;transform:translate(-50%,-50%) scale(1.3)} 100%{opacity:.5;transform:translate(-50%,-50%) scale(0.9)} }

.scn-essential-difference-living-reacting-force { background: linear-gradient(180deg, #12121a 0%, #1a1a24 50%, #0e0e14 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 60%); }
.scn-essential-difference-living-reacting-force .bg   { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,14,.4) 0%, transparent 70%); animation:ed3-bg 20s ease-in-out infinite alternate; }
.scn-essential-difference-living-reacting-force .column{ position:absolute; bottom:0; left:50%; width:40px; height:90%; transform:translateX(-50%); background:linear-gradient(180deg, #2a2a30 0%, #1a1a20 50%, #0e0e12 100%); border-radius:5% 5% 0 0 / 10% 10% 0 0; box-shadow:0 0 20px rgba(0,0,0,.5); animation:ed3-column 30s ease-in-out infinite; }
.scn-essential-difference-living-reacting-force .shelf-1{ position:absolute; bottom:55%; left:35%; right:35%; height:4px; background:linear-gradient(90deg, #2a2a30 0%, #3a3a44 50%, #2a2a30 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:ed3-shelf 12s ease-in-out infinite; }
.scn-essential-difference-living-reacting-force .shelf-2{ position:absolute; bottom:30%; left:35%; right:35%; height:4px; background:linear-gradient(90deg, #2a2a30 0%, #3a3a44 50%, #2a2a30 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:ed3-shelf 14s ease-in-out infinite 4s; }
.scn-essential-difference-living-reacting-force .book-a{ position:absolute; bottom:48%; left:40%; width:12px; height:30px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:2px 4px 4px 2px; transform:rotate(2deg); transform-origin:bottom center; animation:ed3-book-a 15s ease-in-out infinite; }
.scn-essential-difference-living-reacting-force .book-b{ position:absolute; bottom:23%; left:46%; width:10px; height:25px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:2px 4px 4px 2px; transform:rotate(-3deg); transform-origin:bottom center; animation:ed3-book-b 18s ease-in-out infinite 5s; }
.scn-essential-difference-living-reacting-force .figure-low{ position:absolute; bottom:10%; left:50%; width:16px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1a20 0%, #0e0e14 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation:ed3-figure 8s ease-in-out infinite; }
@keyframes ed3-bg     { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes ed3-column { 0%,100%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.005)} }
@keyframes ed3-shelf  { 0%,100%{opacity:.8} 50%{opacity:1} }
@keyframes ed3-book-a { 0%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(0deg) translateY(-2px)} 100%{transform:rotate(2deg) translateY(0)} }
@keyframes ed3-book-b { 0%{transform:rotate(-3deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(-3deg) translateY(0)} }
@keyframes ed3-figure { 0%{transform:translateX(-50%) translateY(0) rotate(0)} 50%{transform:translateX(-50%) translateY(-3px) rotate(1deg)} 100%{transform:translateX(-50%) translateY(0) rotate(0)} }

.scn-inquiry-light-up-inner-relations { background: linear-gradient(135deg, #1a1a22 0%, #2a2a36 50%, #121218 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 80%); }
.scn-inquiry-light-up-inner-relations .bg   { position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,14,.5) 0%, transparent 60%); animation:il4-bg 16s ease-in-out infinite alternate; }
.scn-inquiry-light-up-inner-relations .window-frame{ position:absolute; top:10%; left:20%; right:20%; bottom:40%; border:8px solid #2a2a30; border-radius:4px; background:transparent; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation:il4-frame 20s ease-in-out infinite; }
.scn-inquiry-light-up-inner-relations .window-pane{ position:absolute; top:10%; left:20%; right:20%; bottom:40%; background:linear-gradient(135deg, #5a6a7a 0%, #8a9aaa 100%); opacity:.3; border-radius:4px; animation:il4-pane 10s ease-in-out infinite alternate; }
.scn-inquiry-light-up-inner-relations .figure-silhouette{ position:absolute; bottom:30%; left:50%; width:18px; height:45px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1a20 0%, #0e0e14 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation:il4-figure 7s ease-in-out infinite; }
.scn-inquiry-light-up-inner-relations .curtain-l{ position:absolute; top:10%; left:15%; width:10%; height:60%; background:linear-gradient(90deg, #2a2a34 0%, #1a1a22 100%); border-radius:0 10% 10% 0 / 0 20% 20% 0; animation:il4-curtain 12s ease-in-out infinite; }
.scn-inquiry-light-up-inner-relations .curtain-r{ position:absolute; top:10%; right:15%; width:10%; height:60%; background:linear-gradient(90deg, #1a1a22 0%, #2a2a34 100%); border-radius:10% 0 0 10% / 20% 0 0 20%; animation:il4-curtain 12s ease-in-out infinite 6s; }
.scn-inquiry-light-up-inner-relations .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1a20 0%, #0e0e12 100%); animation:il4-floor 22s ease-in-out infinite alternate; }
@keyframes il4-bg     { 0%{opacity:.75} 50%{opacity:1} 100%{opacity:.8} }
@keyframes il4-frame  { 0%,100%{border-color:#2a2a30;box-shadow:inset 0 0 20px rgba(0,0,0,.5)} 50%{border-color:#3a3a44;box-shadow:inset 0 0 30px rgba(0,0,0,.4)} }
@keyframes il4-pane   { 0%{opacity:.25;background-position:0% 0%} 50%{opacity:.4;background-position:50% 50%} 100%{opacity:.3;background-position:100% 100%} }
@keyframes il4-figure { 0%{transform:translateX(-50%) rotate(0);opacity:.8} 50%{transform:translateX(-50%) rotate(2deg);opacity:1} 100%{transform:translateX(-50%) rotate(0);opacity:.85} }
@keyframes il4-curtain{ 0%{transform:scaleX(1);opacity:.8} 50%{transform:scaleX(1.05);opacity:1} 100%{transform:scaleX(1);opacity:.85} }
@keyframes il4-floor  { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.95} }

/* Scene 1: absolute-nowhere-secure */
.scn-absolute-nowhere-secure {
  background: linear-gradient(180deg, #1b1a2e 0%, #2c2638 50%, #1f1a2c 100%),
              radial-gradient(ellipse at 60% 50%, #3a2f4a 0%, transparent 70%);
}
.scn-absolute-nowhere-secure .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a253a 0%, transparent 100%);
  animation: ans-wall 12s ease-in-out infinite alternate;
}
.scn-absolute-nowhere-secure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2330 0%, #1e1a26 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
}
.scn-absolute-nowhere-secure .desk {
  position: absolute; bottom: 18%; left: 25%; width: 45%; height: 8%;
  background: linear-gradient(180deg, #4a3e38 0%, #2e2625 100%);
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ans-desk 14s ease-in-out infinite;
}
.scn-absolute-nowhere-secure .map {
  position: absolute; bottom: 22%; left: 28%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #c8b484 0%, #a3906a 50%, #b7a072 100%);
  border-radius: 2px; transform: rotate(-3deg); opacity: 0.9;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ans-map 30s ease-in-out infinite alternate;
}
.scn-absolute-nowhere-secure .candle {
  position: absolute; bottom: 26%; left: 30%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #f0c068 0%, #d09a40 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200, 140, 60, 0.6), 0 0 40px 15px rgba(200, 140, 60, 0.3);
  animation: ans-flame 2s ease-in-out infinite alternate;
}
.scn-absolute-nowhere-secure .globe {
  position: absolute; bottom: 19%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle at 35% 30%, #7a9a6a 0%, #3a5a3a 60%, #2a3a2a 100%);
  border-radius: 50%; box-shadow: inset -4px -4px 10px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-20deg);
  animation: ans-globe 24s linear infinite;
}
.scn-absolute-nowhere-secure .chair {
  position: absolute; bottom: 11%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a30 0%, #2e221e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform: scale(0.95);
}
.scn-absolute-nowhere-secure .shadow {
  position: absolute; bottom: 0; left: 30%; width: 50%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ans-shadow 8s ease-in-out infinite alternate;
}
@keyframes ans-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.75 } }
@keyframes ans-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ans-map { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-4deg) translateX(5px) } 100% { transform: rotate(-2deg) translateX(-5px) } }
@keyframes ans-flame { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 6px rgba(200,140,60,0.6), 0 0 40px 15px rgba(200,140,60,0.3); } 50% { transform: scaleY(1.1) translateY(-2px); box-shadow: 0 0 28px 10px rgba(220,160,70,0.8), 0 0 50px 20px rgba(220,160,70,0.4); } 100% { transform: scaleY(0.95) translateY(1px); box-shadow: 0 0 18px 4px rgba(180,120,50,0.5), 0 0 36px 12px rgba(180,120,50,0.2); } }
@keyframes ans-globe { 0% { transform: rotate(-20deg) } 100% { transform: rotate(340deg) } }
@keyframes ans-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* Scene 2: human-mind-uncertainty */
.scn-human-mind-uncertainty {
  background: linear-gradient(180deg, #1e2030 0%, #2a2a3e 40%, #35354a 70%, #2e2e44 100%),
              radial-gradient(ellipse at 20% 30%, #4a4a6a 0%, transparent 60%);
}
.scn-human-mind-uncertainty .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #252840 0%, #1a1c30 100%);
}
.scn-human-mind-uncertainty .path {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(90deg, transparent 0%, #3a3a4a 20%, #4a4a5a 50%, #3a3a4a 80%, transparent 100%);
  border-radius: 60% 60% 40% 40% / 30% 30% 20% 20%;
  filter: blur(4px);
  animation: hmu-path 20s ease-in-out infinite alternate;
}
.scn-human-mind-uncertainty .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: hmu-figure 8s ease-in-out infinite;
}
.scn-human-mind-uncertainty .mist {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,60,80,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: hmu-mist 25s ease-in-out infinite alternate;
}
.scn-human-mind-uncertainty .lantern {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c0a060 0%, #806040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 16px 6px rgba(192, 160, 96, 0.6), 0 0 30px 12px rgba(192, 160, 96, 0.3);
  animation: hmu-lantern 4s ease-in-out infinite alternate;
}
.scn-human-mind-uncertainty .fog {
  position: absolute; inset: 10% 20% 20% 10%;
  background: linear-gradient(135deg, rgba(100,100,120,0.1) 0%, transparent 60%);
  filter: blur(20px);
  animation: hmu-fog 30s linear infinite;
}
@keyframes hmu-path { 0% { transform: translateX(-5%) scaleX(1); opacity: 0.6 } 50% { transform: translateX(5%) scaleX(1.05); opacity: 0.8 } 100% { transform: translateX(-2%) scaleX(0.95); opacity: 0.5 } }
@keyframes hmu-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(-4px) rotate(-3deg) } 75% { transform: translateX(6px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(0deg) } }
@keyframes hmu-mist { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5%) scaleY(1.1) } 100% { transform: translateY(2%) scaleY(0.95) } }
@keyframes hmu-lantern { 0% { box-shadow: 0 0 14px 4px rgba(192,160,96,0.5), 0 0 24px 10px rgba(192,160,96,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 24px 8px rgba(220,180,100,0.8), 0 0 40px 18px rgba(220,180,100,0.4); opacity: 1 } 100% { box-shadow: 0 0 16px 5px rgba(192,160,96,0.6), 0 0 28px 12px rgba(192,160,96,0.3); opacity: 0.85 } }
@keyframes hmu-fog { 0% { transform: translate(0, 0) } 50% { transform: translate(15px, -10px) } 100% { transform: translate(-10px, 5px) } }

/* Scene 3: theory-must-account-human-element */
.scn-theory-must-account-human-element {
  background: linear-gradient(180deg, #2a2020 0%, #3a2a2a 40%, #2e2424 70%, #1e1818 100%),
              radial-gradient(ellipse at 70% 60%, #4a3a3a 0%, transparent 60%);
}
.scn-theory-must-account-human-element .tent {
  position: absolute; inset: 20% 15% 10% 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-theory-must-account-human-element .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
}
.scn-theory-must-account-human-element .candle {
  position: absolute; bottom: 26%; left: 38%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #e8c060 0%, #b89040 100%);
  border-radius: 50% 50% 10% 10% / 70% 70% 30% 30%;
  box-shadow: 0 0 18px 6px rgba(200,140,60,0.5), 0 0 36px 12px rgba(200,140,60,0.2);
  animation: the-candle 3s ease-in-out infinite alternate;
}
.scn-theory-must-account-human-element .commander {
  position: absolute; bottom: 15%; left: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(0.5px);
  animation: the-commander 10s ease-in-out infinite;
}
.scn-theory-must-account-human-element .banner {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a5030 0%, #5a3a22 100%);
  border-radius: 0 10% 30% 10% / 0 20% 40% 20%;
  transform-origin: top left;
  animation: the-banner 10s ease-in-out infinite alternate;
}
.scn-theory-must-account-human-element .staff {
  position: absolute; bottom: 18%; left: 18%; width: 2px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%);
  transform: rotate(5deg);
  animation: the-staff 8s ease-in-out infinite alternate;
}
.scn-theory-must-account-human-element .map {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 14%;
  background: linear-gradient(135deg, #b8a080 0%, #a08060 50%, #8a6a50 100%);
  border-radius: 5px; opacity: 0.85;
  transform: rotate(2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: the-map 20s ease-in-out infinite alternate;
}
@keyframes the-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 16px 4px rgba(200,140,60,0.5), 0 0 32px 10px rgba(200,140,60,0.2); } 50% { transform: scaleY(1.15) translateY(-3px); box-shadow: 0 0 24px 8px rgba(220,160,70,0.7), 0 0 48px 18px rgba(220,160,70,0.35); } 100% { transform: scaleY(0.9) translateY(1px); box-shadow: 0 0 14px 3px rgba(180,120,50,0.4), 0 0 28px 8px rgba(180,120,50,0.15); } }
@keyframes the-commander { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-3px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes the-banner { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-1deg) scaleY(0.98) } }
@keyframes the-staff { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(3deg) } }
@keyframes the-map { 0% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(4deg) translateX(8px) } 100% { transform: rotate(0deg) translateX(-4px) } }

/* Scene 4: war-serious-means */
.scn-war-serious-means {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a121a 40%, #0a0a14 100%),
              radial-gradient(ellipse at 60% 20%, #3a2a2a 0%, transparent 60%);
}
.scn-war-serious-means .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #151528 0%, #1e1828 60%, transparent 100%);
  animation: wsm-sky 20s ease-in-out infinite alternate;
}
.scn-war-serious-means .fort {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #2a221e 0%, #1e1a16 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-war-serious-means .cannon {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1a18 100%);
  border-radius: 50% 20% 20% 50% / 60% 30% 30% 60%;
  transform: rotate(-10deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: wsm-cannon 15s ease-in-out infinite alternate;
}
.scn-war-serious-means .fire {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 8px;
  background: radial-gradient(circle, #d07020 0%, #a04010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,80,20,0.7), 0 0 40px 14px rgba(200,80,20,0.3);
  animation: wsm-fire 0.5s steps(3) infinite;
}
.scn-war-serious-means .smoke {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,70,60,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: wsm-smoke 12s ease-in-out infinite alternate;
}
.scn-war-serious-means .chain {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 8px;
  background: repeating-linear-gradient(90deg, #3a3a3a 0px, #3a3a3a 4px, transparent 4px, transparent 8px);
  border-radius: 10px;
  transform: translateY(-20px) rotate(-5deg);
  animation: wsm-chain 6s ease-in-out infinite;
}
@keyframes wsm-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes wsm-cannon { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(3px) } 100% { transform: rotate(-8deg) translateX(-2px) } }
@keyframes wsm-fire { 0% { transform: scale(1); opacity: 0.9 } 33% { transform: scale(1.3); opacity: 1 } 66% { transform: scale(0.8); opacity: 0.7 } 100% { transform: scale(1); opacity: 0.9 } }
@keyframes wsm-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.3 } 50% { transform: translate(20px,-10px) scale(1.5); opacity: 0.6 } 100% { transform: translate(-10px,5px) scale(1.2); opacity: 0.2 } }
@keyframes wsm-chain { 0% { transform: translateY(-20px) rotate(-5deg) } 50% { transform: translateY(-18px) rotate(5deg) } 100% { transform: translateY(-22px) rotate(-3deg) } }

.scn-author-notice-revision-after-eighth {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1c1412 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 100%, #1c1412 0%, transparent 70%);
}
.scn-author-notice-revision-after-eighth .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2b24 0%, #1f1612 100%); }
.scn-author-notice-revision-after-eighth .desk { position:absolute; bottom:8%; left:10%; right:10%; height:24%; background: linear-gradient(180deg, #5a3d2a 0%, #3a261a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-author-notice-revision-after-eighth .book-open { position:absolute; bottom:18%; left:35%; width:28%; height:12%; background: linear-gradient(135deg, #c8a06a 0%, #a07040 50%, #805030 100%); border-radius:2% 2% 4% 4% / 10% 10% 20% 20%; transform: perspective(400px) rotateX(20deg); animation: ar-book 8s ease-in-out infinite alternate; }
.scn-author-notice-revision-after-eighth .lamp-desklamp { position:absolute; bottom:22%; left:68%; width:8%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:50% 50% 20% 20% / 30% 30% 10% 10%; transform-origin: bottom; animation: ar-lamp 6s ease-in-out infinite; }
.scn-author-notice-revision-after-eighth .lamp-glow { position:absolute; bottom:20%; left:63%; width:18%; height:18%; background: radial-gradient(circle, #f0c868 0%, #d09840 40%, transparent 70%); border-radius:50%; filter: blur(8px); opacity:.7; animation: ar-glow 4s ease-in-out infinite alternate; }
.scn-author-notice-revision-after-eighth .window-frame { position:absolute; top:6%; left:15%; width:30%; height:40%; border: 6px solid #2a1a12; background: rgba(20,30,50,.4); border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-author-notice-revision-after-eighth .moon { position:absolute; top:12%; left:28%; width:6%; height:10%; background: radial-gradient(circle at 40% 30%, #e8e0c0 0%, #c0b890 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,190,160,.3); animation: ar-moon 20s ease-in-out infinite alternate; }
.scn-author-notice-revision-after-eighth .curtain-left { position:absolute; top:4%; left:2%; width:12%; height:50%; background: linear-gradient(180deg, #4a3028 0%, #2a1a12 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; animation: ar-curtain 12s ease-in-out infinite alternate; }
.scn-author-notice-revision-after-eighth .curtain-right { position:absolute; top:4%; right:2%; width:12%; height:50%; background: linear-gradient(180deg, #4a3028 0%, #2a1a12 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; animation: ar-curtain 12s ease-in-out infinite alternate-reverse; }
@keyframes ar-book { 0% { transform: perspective(400px) rotateX(20deg) translateY(0); } 50% { transform: perspective(400px) rotateX(22deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(18deg) translateY(0); } }
@keyframes ar-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes ar-glow { 0% { opacity:.5; transform: scale(.9); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(1); } }
@keyframes ar-moon { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-3px); } 100% { transform: translateX(-2px) translateY(2px); } }
@keyframes ar-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }

.scn-author-notice-death-interrupt {
  background:
    linear-gradient(180deg, #1a1412 0%, #12100e 40%, #0a0808 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a14 0%, transparent 80%);
}
.scn-author-notice-death-interrupt .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a18 0%, #12100e 100%); }
.scn-author-notice-death-interrupt .table { position:absolute; bottom:6%; left:8%; right:8%; height:20%; background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%); border-radius:2% 2% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.7); }
.scn-author-notice-death-interrupt .candle-wax { position:absolute; bottom:18%; left:40%; width:4%; height:12%; background: linear-gradient(180deg, #e8dcc8 0%, #b8a88a 50%, #8a7a62 100%); border-radius:30% 30% 10% 10%; transform-origin: bottom; animation: ad-candle 14s ease-in-out infinite; }
.scn-author-notice-death-interrupt .candle-flame { position:absolute; bottom:28%; left:41.5%; width:2%; height:4%; background: radial-gradient(circle, #ffcc40 0%, #e08020 40%, transparent 70%); border-radius:50%; filter: blur(2px); animation: ad-flame 2s ease-in-out infinite alternate; }
.scn-author-notice-death-interrupt .inkwell { position:absolute; bottom:14%; left:55%; width:6%; height:6%; background: radial-gradient(circle at 30% 30%, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.8); }
.scn-author-notice-death-interrupt .quill { position:absolute; bottom:16%; left:50%; width:2%; height:22%; background: linear-gradient(180deg, #b8a890 0%, #8a7a62 40%, #3a2a1a 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; transform: rotate(-20deg); transform-origin: bottom; animation: ad-quill 5s ease-in-out infinite; }
.scn-author-notice-death-interrupt .paper-scroll { position:absolute; bottom:12%; left:28%; width:30%; height:10%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a88a 50%, #a09070 100%); border-radius:2% 2% 4% 4% / 10% 10% 20% 20%; transform: rotate(4deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-author-notice-death-interrupt .shadow-figure { position:absolute; bottom:10%; right:12%; width:12%; height:28%; background: linear-gradient(180deg, #0a0808 0%, #1a1412 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); opacity:.6; animation: ad-shadow 10s ease-in-out infinite alternate; }
@keyframes ad-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ad-flame { 0% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-3px) scale(1.1); opacity:1; } 100% { transform: translateY(1px) scale(0.95); opacity:.85; } }
@keyframes ad-quill { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-18deg) scaleY(1.05); } 100% { transform: rotate(-22deg) scaleY(0.98); } }
@keyframes ad-shadow { 0% { transform: translateX(0) scaleY(1); opacity:.5; } 50% { transform: translateX(-4px) scaleY(1.02); opacity:.7; } 100% { transform: translateX(2px) scaleY(0.98); opacity:.4; } }

.scn-author-notice-impartial-reader {
  background:
    linear-gradient(180deg, #2a201c 0%, #1c1612 50%, #100c0a 100%),
    radial-gradient(ellipse at 40% 60%, #2a1a14 0%, transparent 70%);
}
.scn-author-notice-impartial-reader .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); }
.scn-author-notice-impartial-reader .bookshelf { position:absolute; top:8%; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #4a3628 0%, #2a1a12 100%); border-radius:2% 2% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.6); overflow:hidden; }
.scn-author-notice-impartial-reader .bookshelf::before { content:''; position:absolute; top:10%; left:5%; width:90%; height:80%; background: repeating-linear-gradient(0deg, #5a4030 0px, #5a4030 6px, transparent 6px, transparent 12px); }
.scn-author-notice-impartial-reader .armchair { position:absolute; bottom:12%; left:20%; width:28%; height:30%; background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-author-notice-impartial-reader .reader-silhouette { position:absolute; bottom:14%; left:22%; width:18%; height:28%; background: linear-gradient(180deg, #0a0806 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ai-reader 7s ease-in-out infinite; }
.scn-author-notice-impartial-reader .reading-lamp { position:absolute; bottom:26%; left:50%; width:6%; height:16%; background: linear-gradient(180deg, #8a6a4a 0%, #4a3222 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom; animation: ai-lamp 9s ease-in-out infinite alternate; }
.scn-author-notice-impartial-reader .lamp-halo { position:absolute; bottom:24%; left:44%; width:20%; height:20%; background: radial-gradient(circle, #f0c050 0%, #d09030 30%, transparent 70%); border-radius:50%; filter: blur(10px); opacity:.6; animation: ai-halo 5s ease-in-out infinite alternate; }
.scn-author-notice-impartial-reader .open-book { position:absolute; bottom:8%; left:22%; width:16%; height:8%; background: linear-gradient(135deg, #d8c098 20%, #b09070 50%, #a08060 80%); border-radius:2% 2% 4% 4% / 10% 10% 20% 20%; transform: perspective(300px) rotateX(15deg); animation: ai-book 10s ease-in-out infinite; }
.scn-author-notice-impartial-reader .fireplace-glow { position:absolute; bottom:0; left:60%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #b05020 40%, transparent 70%); filter: blur(12px); opacity:.4; animation: ai-fire 6s ease-in-out infinite alternate; }
@keyframes ai-reader { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ai-lamp { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-4deg); } }
@keyframes ai-halo { 0% { opacity:.4; transform: scale(.8); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.9); } }
@keyframes ai-book { 0% { transform: perspective(300px) rotateX(15deg) translateY(0); } 50% { transform: perspective(300px) rotateX(17deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(13deg) translateY(0); } }
@keyframes ai-fire { 0% { opacity:.3; transform: scaleX(.95); } 50% { opacity:.5; transform: scaleX(1.05); } 100% { opacity:.4; transform: scaleX(.98); } }

.scn-author-notice-signature-berlin {
  background:
    linear-gradient(180deg, #1e1a26 0%, #14121a 50%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 60%, #2a2434 0%, transparent 80%);
}
.scn-author-notice-signature-berlin .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2434 0%, #1a1622 100%); }
.scn-author-notice-signature-berlin .desk-wood { position:absolute; bottom:6%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.6); }
.scn-author-notice-signature-berlin .letter { position:absolute; bottom:14%; left:28%; width:30%; height:12%; background: linear-gradient(135deg, #e0d0b0 0%, #c8b890 50%, #b0a080 100%); border-radius:2%; transform: rotate(-3deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-author-notice-signature-berlin .seal-wax { position:absolute; bottom:18%; left:32%; width:5%; height:5%; background: radial-gradient(circle at 40% 40%, #b04030 0%, #802820 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(128,40,32,.4); }
.scn-author-notice-signature-berlin .quill-ink { position:absolute; bottom:16%; left:60%; width:2%; height:18%; background: linear-gradient(180deg, #a09080 0%, #3a2a1a 60%, #1a0a08 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; transform: rotate(15deg); transform-origin: bottom; animation: as-quill 6s ease-in-out infinite; }
.scn-author-notice-signature-berlin .window-arch { position:absolute; top:4%; left:15%; width:30%; height:40%; border: 6px solid #1a1622; background: rgba(10,20,30,.5); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-author-notice-signature-berlin .city-skyline { position:absolute; top:20%; left:16%; width:28%; height:18%; background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%); clip-path: polygon(0% 100%, 5% 70%, 10% 70%, 10% 40%, 20% 40%, 20% 60%, 25% 60%, 25% 30%, 35% 30%, 35% 50%, 45% 50%, 45% 20%, 55% 20%, 55% 40%, 65% 40%, 65% 60%, 70% 60%, 70% 35%, 80% 35%, 80% 55%, 90% 55%, 90% 30%, 100% 30%, 100% 100%); animation: as-skyline 30s ease-in-out infinite alternate; }
.scn-author-notice-signature-berlin .moonbeam { position:absolute; top:8%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, rgba(200,200,220,.15) 0%, transparent 100%); transform: skewX(-10deg); filter: blur(6px); animation: as-beam 15s ease-in-out infinite alternate; }
@keyframes as-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(13deg) translateY(-3px); } 100% { transform: rotate(17deg) translateY(0); } }
@keyframes as-skyline { 0% { opacity:.6; transform: translateY(0); } 50% { opacity:.8; transform: translateY(2px); } 100% { opacity:.7; transform: translateY(-1px); } }
@keyframes as-beam { 0% { opacity:.2; transform: skewX(-10deg) scaleY(1); } 50% { opacity:.4; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity:.3; transform: skewX(-12deg) scaleY(0.95); } }

/* Scene: effects-victory-introduction (si) */
.scn-effects-victory-introduction {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2c2018 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 40%, #4a3520 0%, transparent 80%);
}
.scn-effects-victory-introduction .si-shadow {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(10,8,6,.6) 0%, transparent 70%); animation: si-shadow 12s ease-in-out infinite alternate;
}
.scn-effects-victory-introduction .si-desk {
  position:absolute; bottom:10%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #5c3f2a 0%, #3a2518 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: si-desk 20s ease-in-out infinite;
}
.scn-effects-victory-introduction .si-candle {
  position:absolute; bottom:24%; left:42%; width:8px; height:35px; background: linear-gradient(180deg, #e8d4b0 0%, #b89870 50%, #806048 100%); border-radius: 3px 3px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: si-candle 6s ease-in-out infinite alternate;
}
.scn-effects-victory-introduction .si-flame {
  position:absolute; bottom:57%; left:42%; width:12px; height:20px; margin-left:-2px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #e89040 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 6px #d09040, 0 0 48px 16px rgba(200,140,60,.3); animation: si-flame 2s ease-in-out infinite alternate;
}
.scn-effects-victory-introduction .si-figure {
  position:absolute; bottom:23%; left:30%; 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: si-figure 8s ease-in-out infinite;
}
.scn-effects-victory-introduction .si-book {
  position:absolute; bottom:12%; left:48%; width:40px; height:12px; background: linear-gradient(180deg, #8a6040 0%, #604028 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(-8deg); animation: si-book 16s ease-in-out infinite alternate;
}
.scn-effects-victory-introduction .si-parchment {
  position:absolute; bottom:14%; left:58%; width:50px; height:16px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform: rotate(3deg); animation: si-parchment 20s ease-in-out infinite alternate;
}
@keyframes si-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes si-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes si-flame { 0% { transform: scale(1) translateY(0) rotate(-3deg) } 50% { transform: scale(1.1) translateY(-2px) rotate(2deg) } 100% { transform: scale(.95) translateY(1px) rotate(-1deg) } }
@keyframes si-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes si-book { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(-10deg) } }
@keyframes si-parchment { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(4deg) scale(1) } }

/* Scene: victory-consequences-insignificant-beginning (vc) */
.scn-victory-consequences-insignificant-beginning {
  background: 
    linear-gradient(180deg, #1e1814 0%, #2c221e 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 35%, #3c2820 0%, transparent 70%);
}
.scn-victory-consequences-insignificant-beginning .vc-table {
  position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #5c3f2a 0%, #3a2518 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,.5); animation: vc-table 18s ease-in-out infinite;
}
.scn-victory-consequences-insignificant-beginning .vc-base {
  position:absolute; bottom:35%; left:50%; width:6px; height:15%; margin-left:-3px; background: linear-gradient(180deg, #8a7060 0%, #5a4030 100%); border-radius: 2px; animation: vc-base 12s ease-in-out infinite alternate;
}
.scn-victory-consequences-insignificant-beginning .vc-pan-left {
  position:absolute; bottom:45%; left:38%; width:40px; height:8px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: 50% 0; animation: vc-pan-left 6s ease-in-out infinite alternate;
}
.scn-victory-consequences-insignificant-beginning .vc-pan-right {
  position:absolute; bottom:45%; right:38%; width:40px; height:8px; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: 50% 0; animation: vc-pan-right 6s ease-in-out infinite alternate;
}
.scn-victory-consequences-insignificant-beginning .vc-weight {
  position:absolute; bottom:47%; left:36%; width:14px; height:14px; background: radial-gradient(circle at 40% 40%, #c0a080 0%, #906040 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: vc-weight 8s ease-in-out infinite alternate;
}
.scn-victory-consequences-insignificant-beginning .vc-shadow {
  position:absolute; bottom:18%; left:30%; right:30%; height:4px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%); animation: vc-shadow 10s ease-in-out infinite alternate;
}
.scn-victory-consequences-insignificant-beginning .vc-highlight {
  position:absolute; top:25%; left:45%; width:20px; height:30px; background: radial-gradient(circle at 50% 50%, rgba(220,200,180,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: vc-highlight 14s ease-in-out infinite alternate;
}
@keyframes vc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes vc-base { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes vc-pan-left { 0% { transform: rotate(0) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(0) } }
@keyframes vc-pan-right { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0) } }
@keyframes vc-weight { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vc-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(.8) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes vc-highlight { 0% { opacity:.1 } 50% { opacity:.2 } 100% { opacity:.15 } }

/* Scene: battle-grand-act-tension (bg) */
.scn-battle-grand-act-tension {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3c2218 40%, #1a0e08 100%),
    radial-gradient(ellipse at 60% 60%, #5a3020 0%, transparent 70%);
}
.scn-battle-grand-act-tension .bg-map {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #8a7050 0%, #6a5030 50%, #5a4020 100%); border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: bg-map 24s ease-in-out infinite;
}
.scn-battle-grand-act-tension .bg-hand {
  position:absolute; bottom:38%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bg-hand 4s ease-in-out infinite alternate;
}
.scn-battle-grand-act-tension .bg-candle-1 {
  position:absolute; bottom:28%; left:20%; width:8px; height:30px; background: linear-gradient(180deg, #e8d4b0 0%, #b89870 50%, #806048 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bg-candle 7s ease-in-out infinite alternate;
}
.scn-battle-grand-act-tension .bg-flame-1 {
  position:absolute; bottom:57%; left:20%; width:10px; height:18px; margin-left:-1px; background: radial-gradient(circle at 50% 20%, #ffc860 0%, #d08030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 4px #c08040, 0 0 40px 12px rgba(200,120,40,.3); animation: bg-flame 2.5s ease-in-out infinite alternate;
}
.scn-battle-grand-act-tension .bg-candle-2 {
  position:absolute; bottom:25%; right:22%; width:8px; height:32px; background: linear-gradient(180deg, #e8d4b0 0%, #b89870 50%, #806048 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bg-candle 7s ease-in-out infinite alternate-reverse;
}
.scn-battle-grand-act-tension .bg-flame-2 {
  position:absolute; bottom:56%; right:22%; width:10px; height:18px; margin-left:-1px; background: radial-gradient(circle at 50% 20%, #ffc860 0%, #d08030 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 4px #c08040, 0 0 40px 12px rgba(200,120,40,.3); animation: bg-flame 2.5s ease-in-out infinite alternate-reverse;
}
.scn-battle-grand-act-tension .bg-marker {
  position:absolute; bottom:28%; left:45%; width:2px; height:4px; background: #a05030; border-radius: 1px; box-shadow: 0 0 4px #a05030; animation: bg-marker 10s ease-in-out infinite alternate;
}
.scn-battle-grand-act-tension .bg-shadow {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 70%, rgba(10,6,4,.5) 0%, transparent 80%); animation: bg-shadow 20s ease-in-out infinite alternate;
}
@keyframes bg-map { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes bg-hand { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(6px) translateY(-2px) rotate(10deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bg-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bg-flame { 0% { transform: scale(1) translateY(0) rotate(-4deg) } 50% { transform: scale(1.15) translateY(-3px) rotate(3deg) } 100% { transform: scale(.95) translateY(1px) rotate(-2deg) } }
@keyframes bg-marker { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes bg-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* Scene: single-fault-repairable (sf) */
.scn-single-fault-repairable {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2c221e 40%, #1a1412 100%),
    radial-gradient(ellipse at 50% 30%, #3c2820 0%, transparent 70%);
}
.scn-single-fault-repairable .sf-bench {
  position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #5c3f2a 0%, #3a2518 100%); border-radius: 4px; box-shadow: inset 0 6px 16px rgba(0,0,0,.5); animation: sf-bench 20s ease-in-out infinite;
}
.scn-single-fault-repairable .sf-hands {
  position:absolute; bottom:27%; left:42%; width:30px; height:30px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-hands 6s ease-in-out infinite alternate;
}
.scn-single-fault-repairable .sf-arrow {
  position:absolute; bottom:20%; left:35%; width:60px; height:4px; background: linear-gradient(90deg, #8a6a50 0%, #5a4030 50%, #3a2818 100%); border-radius: 2px; transform: rotate(25deg); transform-origin: 0% 50%; animation: sf-arrow 10s ease-in-out infinite alternate;
}
.scn-single-fault-repairable .sf-glue {
  position:absolute; bottom:18%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #c0a080 0%, #906040 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sf-glue 8s ease-in-out infinite alternate;
}
.scn-single-fault-repairable .sf-light {
  position:absolute; top:15%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 0%, rgba(255,210,140,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: sf-light 14s ease-in-out infinite alternate;
}
.scn-single-fault-repairable .sf-backdrop {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(10,8,6,.3) 0%, transparent 70%); animation: sf-backdrop 18s ease-in-out infinite alternate;
}
@keyframes sf-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sf-hands { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sf-arrow { 0% { transform: rotate(25deg) scaleX(1) } 50% { transform: rotate(28deg) scaleX(1.02) } 100% { transform: rotate(22deg) scaleX(1) } }
@keyframes sf-glue { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes sf-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.2) } 100% { opacity:.25; transform: scale(1) } }
@keyframes sf-backdrop { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-from-simple-narration-to-critical {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-from-simple-narration-to-critical .room {
  position: absolute; inset: 0; background: transparent;
  animation: sn-room 20s ease-in-out infinite alternate;
}
.scn-from-simple-narration-to-critical .desk {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-from-simple-narration-to-critical .book {
  position: absolute; bottom: 18%; left: 35%; width: 25%; height: 12%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 50%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: sn-book 14s ease-in-out infinite;
}
.scn-from-simple-narration-to-critical .candle {
  position: absolute; bottom: 24%; left: 60%; width: 3%; height: 14%;
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px rgba(128,80,40,0.5);
}
.scn-from-simple-narration-to-critical .flame {
  position: absolute; bottom: 36%; left: 60.5%; width: 1.5%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #d09030 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: sn-flame 0.8s ease-in-out infinite alternate;
}
.scn-from-simple-narration-to-critical .figure {
  position: absolute; bottom: 12%; left: 20%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-figure 6s ease-in-out infinite;
}
.scn-from-simple-narration-to-critical .shelf {
  position: absolute; top: 8%; left: 5%; width: 90%; height: 4%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-from-simple-narration-to-critical .glow {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,150,60,0.08) 0%, transparent 100%);
  animation: sn-glow 4s ease-in-out infinite alternate;
}
@keyframes sn-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sn-book { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sn-flame { 0% { transform: translateY(0) scaleY(1); opacity: 0.9 } 50% { transform: translateY(-2px) scaleY(1.1); opacity: 1 } 100% { transform: translateY(0) scaleY(1); opacity: 0.9 } }
@keyframes sn-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sn-glow { 0% { transform: scale(0.95); opacity: 0.6 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.6 } }

.scn-second-critical-inquiry-tracing-effects {
  background: linear-gradient(180deg, #1e140a 0%, #0e0a05 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a0e 0%, transparent 70%);
}
.scn-second-critical-inquiry-tracing-effects .table {
  position: absolute; bottom: 6%; left: 8%; width: 84%; height: 22%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-second-critical-inquiry-tracing-effects .map {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 16%;
  background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 50%, #7a5a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sc-map 30s linear infinite;
}
.scn-second-critical-inquiry-tracing-effects .hand {
  position: absolute; bottom: 16%; left: 30%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-hand 5s ease-in-out infinite;
}
.scn-second-critical-inquiry-tracing-effects .quill {
  position: absolute; bottom: 22%; left: 42%; width: 2%; height: 20%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a2e1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: sc-quill 7s ease-in-out infinite;
}
.scn-second-critical-inquiry-tracing-effects .inkwell {
  position: absolute; bottom: 14%; left: 60%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-second-critical-inquiry-tracing-effects .candle {
  position: absolute; bottom: 24%; left: 70%; width: 3%; height: 14%;
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-second-critical-inquiry-tracing-effects .flame {
  position: absolute; bottom: 36%; left: 70.5%; width: 1.5%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #d09030 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: sc-flame 0.7s ease-in-out infinite alternate;
}
.scn-second-critical-inquiry-tracing-effects .glow {
  position: absolute; bottom: 30%; left: 65%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,150,60,0.06) 0%, transparent 100%);
  animation: sc-glow 5s ease-in-out infinite alternate;
}
@keyframes sc-map { 0% { background-position: 0% 0% } 50% { background-position: 2% 1% } 100% { background-position: 0% 0% } }
@keyframes sc-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sc-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(15deg) } }
@keyframes sc-flame { 0% { transform: translateY(0) scaleY(1); opacity: 0.8 } 50% { transform: translateY(-2px) scaleY(1.15); opacity: 1 } 100% { transform: translateY(0) scaleY(1); opacity: 0.8 } }
@keyframes sc-glow { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(0.9) } }

.scn-destruction-object-combat {
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a0e 0%, transparent 80%);
}
.scn-destruction-object-combat .board {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, #3a2a1a 25%, #5a4028 25%, #5a4028 50%, #3a2a1a 50%, #3a2a1a 75%, #5a4028 75%);
  background-size: 8% 8%; border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: so-board 60s linear infinite;
}
.scn-destruction-object-combat .pawn {
  position: absolute; bottom: 26%; left: 20%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  animation: so-pawn 4s ease-in-out infinite;
}
.scn-destruction-object-combat .knight {
  position: absolute; bottom: 24%; left: 30%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: so-knight 6s ease-in-out infinite;
}
.scn-destruction-object-combat .rook {
  position: absolute; bottom: 22%; left: 40%; width: 7%; height: 14%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10%;
  animation: so-rook 5s ease-in-out infinite;
}
.scn-destruction-object-combat .king {
  position: absolute; bottom: 20%; left: 55%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px rgba(128,80,40,0.4);
  animation: so-king 7s ease-in-out infinite;
}
.scn-destruction-object-combat .shadow-a {
  position: absolute; bottom: 15%; left: 18%; width: 12%; height: 18%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: so-shadow 8s ease-in-out infinite alternate;
}
.scn-destruction-object-combat .shadow-b {
  position: absolute; bottom: 15%; right: 18%; width: 12%; height: 18%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: so-shadow 8s ease-in-out 4s infinite alternate;
}
.scn-destruction-object-combat .glow {
  position: absolute; bottom: 30%; left: 40%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,150,60,0.04) 0%, transparent 100%);
  animation: so-glow 3s ease-in-out infinite alternate;
}
@keyframes so-board { 0% { background-position: 0 0 } 50% { background-position: 4% 4% } 100% { background-position: 0 0 } }
@keyframes so-pawn { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes so-knight { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes so-rook { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes so-king { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes so-shadow { 0% { opacity: 0.2; transform: scale(0.9) } 50% { opacity: 0.5; transform: scale(1.1) } 100% { opacity: 0.2; transform: scale(0.9) } }
@keyframes so-glow { 0% { opacity: 0.3; transform: scale(0.8) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }

.scn-table-offensive-defensive {
  background: linear-gradient(180deg, #1a120a 0%, #0e0a05 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a0e 0%, transparent 60%);
}
.scn-table-offensive-defensive .table {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%);
  border-radius: 6px; box-shadow: 0 -4px 16px rgba(0,0,0,0.6);
}
.scn-table-offensive-defensive .left-army {
  position: absolute; bottom: 16%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50%;
  clip-path: polygon(0% 100%, 20% 0%, 40% 0%, 60% 100%);
  animation: ta-army-l 10s ease-in-out infinite alternate;
}
.scn-table-offensive-defensive .right-army {
  position: absolute; bottom: 16%; right: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #5a4028 0%, #2a1a0e 100%);
  border-radius: 50%;
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 100% 100%);
  animation: ta-army-r 10s ease-in-out 5s infinite alternate;
}
.scn-table-offensive-defensive .divider {
  position: absolute; bottom: 14%; left: 48%; width: 4%; height: 24%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-table-offensive-defensive .candle-left {
  position: absolute; bottom: 30%; left: 25%; width: 3%; height: 12%;
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-table-offensive-defensive .candle-right {
  position: absolute; bottom: 30%; right: 25%; width: 3%; height: 12%;
  background: linear-gradient(0deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-table-offensive-defensive .flame-l {
  position: absolute; bottom: 40%; left: 25.5%; width: 1.5%; height: 5%;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #d09030 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: ta-flame 0.9s ease-in-out infinite alternate;
}
.scn-table-offensive-defensive .flame-r {
  position: absolute; bottom: 40%; right: 25.5%; width: 1.5%; height: 5%;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #d09030 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%; filter: blur(1px);
  animation: ta-flame 0.9s ease-in-out 0.45s infinite alternate;
}
.scn-table-offensive-defensive .glow {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,150,60,0.04) 0%, transparent 100%);
  animation: ta-glow 6s ease-in-out infinite alternate;
}
@keyframes ta-army-l { 0% { transform: translateX(0) scale(1); opacity: 0.8 } 50% { transform: translateX(3%) scale(1.02); opacity: 1 } 100% { transform: translateX(0) scale(1); opacity: 0.8 } }
@keyframes ta-army-r { 0% { transform: translateX(0) scale(1); opacity: 0.8 } 50% { transform: translateX(-3%) scale(1.02); opacity: 1 } 100% { transform: translateX(0) scale(1); opacity: 0.8 } }
@keyframes ta-flame { 0% { transform: translateY(0) scaleY(1); opacity: 0.85 } 50% { transform: translateY(-2px) scaleY(1.1); opacity: 1 } 100% { transform: translateY(0) scaleY(1); opacity: 0.85 } }
@keyframes ta-glow { 0% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.15) } 100% { opacity: 0.3; transform: scale(0.9) } }

/* scene 1: polarity-validity-one-thing */
.scn-polarity-validity-one-thing {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-polarity-validity-one-thing .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  opacity: 0.5;
  animation: pv1-wall 12s ease-in-out infinite alternate;
}
.scn-polarity-validity-one-thing .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: pv1-desk 20s ease-in-out infinite;
}
.scn-polarity-validity-one-thing .candle {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #8a6a3a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: pv1-candle 6s ease-in-out infinite;
}
.scn-polarity-validity-one-thing .flame {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%); width: 8px; height: 16px;
  background: radial-gradient(circle, #ffcc80 0%, #e08040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px #ffb060, 0 0 32px 12px rgba(255,176,96,0.3);
  animation: pv1-flame 2s ease-in-out infinite alternate;
}
.scn-polarity-validity-one-thing .scale-base {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 20px; height: 8px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 2px;
  animation: pv1-scale-base 8s ease-in-out infinite;
}
.scn-polarity-validity-one-thing .scale-arm {
  position: absolute; bottom: 43%; left: 50%; width: 100px; height: 4px; transform: translate(-50%, 0);
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%);
  border-radius: 2px;
  animation: pv1-scale-arm 8s ease-in-out infinite alternate;
}
.scn-polarity-validity-one-thing .pan-left {
  position: absolute; bottom: 40%; left: calc(50% - 48px); width: 30px; height: 12px;
  background: radial-gradient(ellipse at 50% 0%, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: pv1-pan-left 8s ease-in-out infinite;
}
.scn-polarity-validity-one-thing .pan-right {
  position: absolute; bottom: 40%; left: calc(50% + 18px); width: 30px; height: 12px;
  background: radial-gradient(ellipse at 50% 0%, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: pv1-pan-right 8s ease-in-out infinite;
}
@keyframes pv1-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes pv1-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes pv1-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes pv1-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.1, 1.3) rotate(0deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95) rotate(3deg); opacity: 0.85; } }
@keyframes pv1-scale-base { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } }
@keyframes pv1-scale-arm { 0% { transform: translate(-50%, 0) rotate(3deg); } 50% { transform: translate(-50%, 0) rotate(-3deg); } 100% { transform: translate(-50%, 0) rotate(3deg); } }
@keyframes pv1-pan-left { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes pv1-pan-right { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }

/* scene 2: attack-defence-different */
.scn-attack-defence-different {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%);
}
.scn-attack-defence-different .room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  opacity: 0.6;
  animation: ad2-bg 15s ease-in-out infinite alternate;
}
.scn-attack-defence-different .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: ad2-floor 20s ease-in-out infinite;
}
.scn-attack-defence-different .figure-attack {
  position: absolute; bottom: 28%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad2-attack 3s ease-in-out infinite;
}
.scn-attack-defence-different .figure-defence {
  position: absolute; bottom: 28%; right: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad2-defence 3s ease-in-out infinite reverse;
}
.scn-attack-defence-different .shield {
  position: absolute; bottom: 30%; right: 28%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ad2-shield 4s ease-in-out infinite;
}
.scn-attack-defence-different .sword {
  position: absolute; bottom: 32%; left: 28%; width: 4px; height: 36px;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: ad2-sword 3s ease-in-out infinite alternate;
}
.scn-attack-defence-different .shadow-left {
  position: absolute; bottom: 0; left: 22%; width: 30px; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(6px);
  animation: ad2-shadow-a 6s ease-in-out infinite;
}
.scn-attack-defence-different .shadow-right {
  position: absolute; bottom: 0; right: 22%; width: 30px; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(6px);
  animation: ad2-shadow-b 6s ease-in-out infinite reverse;
}
@keyframes ad2-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ad2-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.99); } }
@keyframes ad2-attack { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ad2-defence { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes ad2-shield { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.05); } }
@keyframes ad2-sword { 0% { transform: rotate(-15deg) translateX(0); } 100% { transform: rotate(-10deg) translateX(2px); } }
@keyframes ad2-shadow-a { 0%,100% { opacity: 0.6; } 50% { opacity: 0.8; } }
@keyframes ad2-shadow-b { 0%,100% { opacity: 0.6; } 50% { opacity: 0.7; } }

/* scene 3: polarity-in-decision-not-attack */
.scn-polarity-in-decision-not-attack {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-polarity-in-decision-not-attack .bg-decision {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  opacity: 0.5;
  animation: pd3-bg 18s ease-in-out infinite alternate;
}
.scn-polarity-in-decision-not-attack .table-decision {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 6px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: pd3-table 20s ease-in-out infinite;
}
.scn-polarity-in-decision-not-attack .thinker {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pd3-thinker 5s ease-in-out infinite;
}
.scn-polarity-in-decision-not-attack .hand-left {
  position: absolute; bottom: 30%; left: calc(50% - 28px); width: 10px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  animation: pd3-hand-l 3s ease-in-out infinite alternate;
}
.scn-polarity-in-decision-not-attack .hand-right {
  position: absolute; bottom: 30%; right: calc(50% - 28px); width: 10px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: pd3-hand-r 3s ease-in-out infinite alternate;
}
.scn-polarity-in-decision-not-attack .piece-a {
  position: absolute; bottom: 26%; left: calc(50% - 30px); width: 8px; height: 12px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pd3-piece-a 6s ease-in-out infinite;
}
.scn-polarity-in-decision-not-attack .piece-b {
  position: absolute; bottom: 26%; right: calc(50% - 30px); width: 8px; height: 12px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pd3-piece-b 6s ease-in-out infinite reverse;
}
.scn-polarity-in-decision-not-attack .lamp {
  position: absolute; bottom: 55%; left: 70%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #a08050 0%, #6a4a2a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: pd3-lamp 8s ease-in-out infinite;
}
@keyframes pd3-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes pd3-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes pd3-thinker { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes pd3-hand-l { 0% { transform: rotate(20deg) translateX(0); } 100% { transform: rotate(25deg) translateX(2px); } }
@keyframes pd3-hand-r { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-25deg) translateX(-2px); } }
@keyframes pd3-piece-a { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } }
@keyframes pd3-piece-b { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.95); } }
@keyframes pd3-lamp { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }

/* scene 4: interest-opposing-put-off */
.scn-interest-opposing-put-off {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 35%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%);
}
.scn-interest-opposing-put-off .bg-opposing {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  opacity: 0.4;
  animation: io4-bg 20s ease-in-out infinite alternate;
}
.scn-interest-opposing-put-off .table-opposing {
  position: absolute; bottom: 8%; left: 12%; right: 12%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 6px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: io4-table 18s ease-in-out infinite;
}
.scn-interest-opposing-put-off .hourglass-frame {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 30px; height: 50px;
  border: 3px solid #6a5a3a;
  border-radius: 10px;
  background: transparent;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: io4-frame 12s ease-in-out infinite;
}
.scn-interest-opposing-put-off .hourglass-top {
  position: absolute; bottom: 55%; left: 50%; transform: translateX(-50%); width: 20px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 50% 0%);
  animation: io4-top 10s ease-in-out infinite;
}
.scn-interest-opposing-put-off .hourglass-bottom {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 20px; height: 20px;
  background: linear-gradient(0deg, #8a6a3a 0%, #6a4a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
  animation: io4-bottom 10s ease-in-out infinite alternate;
}
.scn-interest-opposing-put-off .sand-stream {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%); width: 2px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #8a6a3a 100%);
  border-radius: 1px;
  animation: io4-sand 4s ease-in-out infinite;
}
.scn-interest-opposing-put-off .gear-left {
  position: absolute; bottom: 25%; left: 20%; width: 24px; height: 24px;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: io4-gear-l 6s linear infinite;
}
.scn-interest-opposing-put-off .gear-right {
  position: absolute; bottom: 25%; right: 20%; width: 24px; height: 24px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: io4-gear-r 6s linear infinite reverse;
}
@keyframes io4-bg { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes io4-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.99); } }
@keyframes io4-frame { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes io4-top { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes io4-bottom { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes io4-sand { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } }
@keyframes io4-gear-l { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes io4-gear-r { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }

/* scene: introduction-germany-socialists-army (egs) */
.scn-introduction-germany-socialists-army {
  background: linear-gradient(180deg, #1a1814 0%, #2a231d 40%, #1f1a14 100%), radial-gradient(ellipse at 60% 80%, #3a2e22 0%, transparent 80%);
}
.scn-introduction-germany-socialists-army .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1915 0%, #2a221c 50%, #191511 100%);
  animation: egs-bg 12s ease-in-out infinite alternate;
}
.scn-introduction-germany-socialists-army .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3826 0%, #2d1f13 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: egs-desk 8s ease-in-out infinite alternate;
}
.scn-introduction-germany-socialists-army .document {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #d4c8a8 0%, #b8a88a 50%, #9a8468 100%);
  border-radius: 2%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: egs-doc 4s ease-in-out infinite alternate;
}
.scn-introduction-germany-socialists-army .figure-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0f0f0f 0%, #1c150e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: egs-figure 5s ease-in-out infinite;
}
.scn-introduction-germany-socialists-army .lamp-glow {
  position: absolute; bottom: 30%; right: 25%; width: 8%; height: 8%;
  background: radial-gradient(circle, #f5d090 0%, #d4a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,150,70,0.4);
  animation: egs-lamp 3s ease-in-out infinite alternate;
}
.scn-introduction-germany-socialists-army .paper-edge {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 2%;
  background: #e0d0b0;
  border-radius: 50%;
  filter: blur(2px);
  animation: egs-paper 6s ease-in-out infinite alternate;
}
.scn-introduction-germany-socialists-army .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 60% 0%, rgba(0,0,0,0.7) 0%, transparent 80%);
  animation: egs-shadow 10s ease-in-out infinite alternate;
}
@keyframes egs-bg { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes egs-desk { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes egs-doc { 0% { transform: rotate(-3deg) scale(1); box-shadow: 0 4px 12px rgba(0,0,0,0.5); } 50% { transform: rotate(-1deg) scale(1.02); box-shadow: 0 6px 18px rgba(0,0,0,0.7); } 100% { transform: rotate(-3deg) scale(1); box-shadow: 0 4px 12px rgba(0,0,0,0.5); } }
@keyframes egs-figure { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(2%) scale(1.01); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(-2%) scale(0.99); } 100% { transform: translateX(0) scale(1); } }
@keyframes egs-lamp { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes egs-paper { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes egs-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* scene: introduction-foreign-enemy-power (efp) */
.scn-introduction-foreign-enemy-power {
  background: linear-gradient(180deg, #0f1219 0%, #191e2b 50%, #0f141e 100%), radial-gradient(ellipse at 80% 70%, #1e2638 0%, transparent 70%);
}
.scn-introduction-foreign-enemy-power .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12151f 0%, #1b2130 40%, #0f131c 100%);
  animation: efp-bg 14s ease-in-out infinite alternate;
}
.scn-introduction-foreign-enemy-power .map-table {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(180deg, #3b3125 0%, #241c14 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 -6px 18px rgba(0,0,0,0.7);
}
.scn-introduction-foreign-enemy-power .map {
  position: absolute; bottom: 18%; left: 22%; width: 56%; height: 28%;
  background: linear-gradient(135deg, #b5a78a 0%, #92846a 50%, #75674e 100%);
  border-radius: 2%;
  transform: rotate(2deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: efp-map 10s ease-in-out infinite alternate;
}
.scn-introduction-foreign-enemy-power .hand-pointing {
  position: absolute; bottom: 25%; left: 55%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #111111 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: 60% 100%;
  animation: efp-hand 3s ease-in-out infinite;
}
.scn-introduction-foreign-enemy-power .enemy-shadow {
  position: absolute; bottom: 0; left: 70%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #0b0b10 0%, #060609 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  opacity: 0.6;
  animation: efp-shadow 8s ease-in-out infinite;
}
.scn-introduction-foreign-enemy-power .candle {
  position: absolute; bottom: 28%; left: 18%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #d4c0a0 0%, #a08860 100%);
  border-radius: 10% 10% 5% 5%;
  animation: efp-candle 5s ease-in-out infinite;
}
.scn-introduction-foreign-enemy-power .candle-glow {
  position: absolute; bottom: 26%; left: 16%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffcc80 0%, #d4a050 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(220,160,80,0.5);
  animation: efp-glow 2s ease-in-out infinite alternate;
}
@keyframes efp-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes efp-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(0.98); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes efp-hand { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-5deg) translateY(-2%); } 60% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes efp-shadow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.03); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes efp-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes efp-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

/* scene: introduction-readiness-proportion (erp) */
.scn-introduction-readiness-proportion {
  background: linear-gradient(180deg, #2c281e 0%, #3e372a 50%, #2a241a 100%), radial-gradient(ellipse at 50% 100%, #3e372a 0%, transparent 80%);
}
.scn-introduction-readiness-proportion .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #252117 0%, #3a3326 50%, #1e1a11 100%);
  animation: erp-wall 20s ease-in-out infinite alternate;
}
.scn-introduction-readiness-proportion .bookshelf {
  position: absolute; top: 10%; left: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #4a3f2c 0%, #2e2517 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-introduction-readiness-proportion .book-spines {
  position: absolute; top: 12%; left: 12%; width: 20%; height: 55%;
  background: repeating-linear-gradient(180deg, #5e4d34 0px, #5e4d34 6px, #4a3b28 6px, #4a3b28 12px);
  border-radius: 1px;
  opacity: 0.8;
}
.scn-introduction-readiness-proportion .desk-read {
  position: absolute; bottom: 12%; left: 18%; right: 18%; height: 18%;
  background: linear-gradient(180deg, #4d3f2b 0%, #312519 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: erp-desk 6s ease-in-out infinite;
}
.scn-introduction-readiness-proportion .figure-reading {
  position: absolute; bottom: 15%; left: 42%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #1e1a14 0%, #0c0a07 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: erp-figure 8s ease-in-out infinite;
}
.scn-introduction-readiness-proportion .lamp-soft {
  position: absolute; bottom: 28%; right: 22%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #c5ad7a 0%, #9a8458 100%);
  border-radius: 10% 10% 5% 5%;
  animation: erp-lamp 9s ease-in-out infinite;
}
.scn-introduction-readiness-proportion .lamp-light {
  position: absolute; bottom: 25%; right: 18%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f5deb0 0%, #d4b880 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(200,170,100,0.3);
  animation: erp-light 7s ease-in-out infinite alternate;
}
@keyframes erp-wall { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes erp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes erp-figure { 0% { transform: scale(1) translateX(0); } 33% { transform: scale(1.01) translateX(1%); } 66% { transform: scale(0.99) translateX(-1%); } 100% { transform: scale(1) translateX(0); } }
@keyframes erp-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }
@keyframes erp-light { 0% { opacity:0.3; transform: scale(0.85); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }

/* scene: introduction-1887-germany-war (egw) */
.scn-introduction-1887-germany-war {
  background: linear-gradient(180deg, #1e1510 0%, #2c1f18 50%, #1a100c 100%), radial-gradient(ellipse at 70% 30%, #3a2618 0%, transparent 70%);
}
.scn-introduction-1887-germany-war .war-room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1712 0%, #2c211a 50%, #17100b 100%);
  animation: egw-bg 15s ease-in-out infinite alternate;
}
.scn-introduction-1887-germany-war .war-map {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(135deg, #9a8b72 0%, #7a6b54 50%, #5c4f3c 100%);
  border-radius: 2%;
  transform: rotate(-1deg);
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
  animation: egw-map 4s ease-in-out infinite;
}
.scn-introduction-1887-germany-war .red-markers {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 15%;
  background: repeating-conic-gradient(#b05030 0% 3%, transparent 3% 6%);
  border-radius: 50%;
  opacity: 0.7;
  animation: egw-markers 2s ease-in-out infinite alternate;
}
.scn-introduction-1887-germany-war .general-silhouette {
  position: absolute; bottom: 10%; left: 15%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #0f0e0d 0%, #0a0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: egw-general 5s ease-in-out infinite;
}
.scn-introduction-1887-germany-war .desk-lamp {
  position: absolute; bottom: 30%; right: 22%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #b89a60 0%, #8a7040 100%);
  border-radius: 10% 10% 5% 5%;
  animation: egw-desk-lamp 3s ease-in-out infinite;
}
.scn-introduction-1887-germany-war .lamp-flicker {
  position: absolute; bottom: 27%; right: 18%; width: 10%; height: 10%;
  background: radial-gradient(circle, #f5c070 0%, #c89030 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,130,50,0.5);
  animation: egw-flicker 0.8s ease-in-out infinite alternate;
}
.scn-introduction-1887-germany-war .document-stack {
  position: absolute; bottom: 20%; left: 45%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #d4b890 0%, #b89a78 30%, #9a7a5a 60%, #7a5a3a 100%);
  border-radius: 3%;
  transform: rotate(4deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: egw-stack 7s ease-in-out infinite alternate;
}
.scn-introduction-1887-germany-war .inkwell {
  position: absolute; bottom: 22%; right: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 0 4px 2px rgba(0,0,0,0.8);
}
@keyframes egw-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes egw-map { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(0deg) scale(0.98); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes egw-markers { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes egw-general { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(2%) scale(1.02); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(-2%) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes egw-desk-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes egw-flicker { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes egw-stack { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2%); } 100% { transform: rotate(3deg) translateY(0); } }

.scn-war-as-duel {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 60%, rgba(200,140,60,0.15) 0%, transparent 70%);
}
.scn-war-as-duel .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #14141e 50%, #1e1e2a 100%); }
.scn-war-as-duel .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-war-as-duel .glow { position:absolute; top:20%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,200,120,0.3) 0%, transparent 70%); animation: wad-glow 5s ease-in-out infinite alternate; }
.scn-war-as-duel .figure-left { position:absolute; bottom:20%; left:22%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wad-sway 8s ease-in-out infinite; }
.scn-war-as-duel .figure-right { position:absolute; bottom:20%; right:22%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wad-sway 8s ease-in-out infinite 1s; }
.scn-war-as-duel .candle { position:absolute; bottom:35%; left:50%; width:10px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%); border-radius: 2px; }
.scn-war-as-duel .smoke { position:absolute; top:15%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,180,160,0.1) 0%, transparent 70%); animation: wad-smoke 12s ease-out infinite; }
@keyframes wad-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 wad-sway { 0% { transform:rotate(-1deg) scale(1); } 50% { transform:rotate(1deg) scale(1.02); } 100% { transform:rotate(-0.5deg) scale(1); } }
@keyframes wad-smoke { 0% { opacity:0.15; transform:translateX(-50%) translateY(0) scale(0.5); } 50% { opacity:0.3; transform:translateX(-50%) translateY(-20px) scale(1.2); } 100% { opacity:0; transform:translateX(-50%) translateY(-40px) scale(1.5); } }

.scn-war-act-of-violence-definition {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 40% 50%, rgba(150,80,40,0.2) 0%, transparent 60%);
}
.scn-war-act-of-violence-definition .bg { position:absolute; inset:0; background: linear-gradient(180deg, #14141e 0%, #1e1e2a 50%, #2a2a3e 100%); }
.scn-war-act-of-violence-definition .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-war-act-of-violence-definition .lantern { position:absolute; top:30%; left:15%; width:20px; height:30px; background: radial-gradient(circle at 50% 60%, #ffcc70 0%, #a06020 60%, #402000 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px rgba(200,120,40,0.4); animation: wav-flicker 0.8s steps(2) infinite; }
.scn-war-act-of-violence-definition .figure-attacker { position:absolute; bottom:20%; left:30%; width:45px; height:90px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wav-attack 2s ease-in-out infinite; }
.scn-war-act-of-violence-definition .figure-defender { position:absolute; bottom:20%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wav-defend 2s ease-in-out infinite; }
.scn-war-act-of-violence-definition .shadow-attacker { position:absolute; bottom:10%; left:28%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: wav-shadowstretch 2s ease-in-out infinite; }
.scn-war-act-of-violence-definition .shadow-defender { position:absolute; bottom:10%; right:23%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: wav-shadowstretch 2s ease-in-out infinite 1s; }
.scn-war-act-of-violence-definition .sword { position:absolute; bottom:50%; left:38%; width:6px; height:60px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); transform-origin: bottom center; transform: rotate(30deg); border-radius: 2px; box-shadow: 0 0 10px 2px rgba(200,200,200,0.3); animation: wav-sword 2s ease-in-out infinite; }
@keyframes wav-flicker { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wav-attack { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(10px) rotate(2deg); } 50% { transform:translateX(20px) rotate(-1deg); } 75% { transform:translateX(10px) rotate(1deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes wav-defend { 0% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(-15px) rotate(-3deg); } 100% { transform:translateX(0) rotate(1deg); } }
@keyframes wav-shadowstretch { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(1.4); opacity:0.8; } 100% { transform:scaleX(1); opacity:0.5; } }
@keyframes wav-sword { 0% { transform:rotate(25deg) scaleY(1); } 50% { transform:rotate(45deg) scaleY(1.1); } 100% { transform:rotate(25deg) scaleY(1); } }

.scn-philanthropists-error {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,180,120,0.15) 0%, transparent 70%);
}
.scn-philanthropists-error .bg { position:absolute; inset:0; background: linear-gradient(180deg, #14141e 0%, #1e1e2a 40%, #2a2a3e 100%); }
.scn-philanthropists-error .wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2a 100%); }
.scn-philanthropists-error .desk { position:absolute; bottom:15%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-philanthropists-error .lamp { position:absolute; top:30%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #a07030 60%, #402000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 60px 20px rgba(200,160,80,0.3); animation: phe-lampglow 4s ease-in-out infinite alternate; }
.scn-philanthropists-error .figure { position:absolute; bottom:25%; left:45%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: phe-figure 6s ease-in-out infinite; }
.scn-philanthropists-error .book { position:absolute; bottom:22%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: center left; animation: phe-book 8s ease-in-out infinite; }
.scn-philanthropists-error .shadow { position:absolute; bottom:10%; left:40%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: phe-shadow 6s ease-in-out infinite; }
.scn-philanthropists-error .dust { position:absolute; top:20%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%); animation: phe-dust 20s linear infinite; }
@keyframes phe-lampglow { 0% { opacity:0.8; box-shadow: 0 0 40px 15px rgba(200,160,80,0.2); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(200,160,80,0.4); } 100% { opacity:0.85; box-shadow: 0 0 45px 20px rgba(200,160,80,0.25); } }
@keyframes phe-figure { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(1deg) scale(1.01); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes phe-book { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(-3deg) scaleX(1.02); } 100% { transform:rotate(0deg) scaleX(1); } }
@keyframes phe-shadow { 0% { transform:scaleY(1); opacity:0.6; } 50% { transform:scaleY(1.1); opacity:0.8; } 100% { transform:scaleY(1); opacity:0.6; } }
@keyframes phe-dust { 0% { transform:translate(0, 0) scale(1); opacity:0; } 10% { opacity:0.4; } 50% { transform:translate(30px, -20px) scale(1.2); opacity:0.2; } 100% { transform:translate(-20px, -40px) scale(0.8); opacity:0; } }

.scn-real-nature-not-repugnance {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 40% 50%, rgba(180,100,40,0.15) 0%, transparent 70%);
}
.scn-real-nature-not-repugnance .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #141414 40%, #1a1a1a 100%); }
.scn-real-nature-not-repugnance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 60% 40% 0 0 / 20% 20% 0 0; }
.scn-real-nature-not-repugnance .figure { position:absolute; bottom:20%; left:35%; width:50px; height:90px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rnr-figure 7s ease-in-out infinite; }
.scn-real-nature-not-repugnance .candle { position:absolute; bottom:32%; left:38%; width:12px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: rnr-candle 3s ease-in-out infinite; }
.scn-real-nature-not-repugnance .flame { position:absolute; bottom:62%; left:38.5%; width:14px; height:22px; background: radial-gradient(circle at 50% 30%, #ffe080 0%, #d08030 40%, #602000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(200,120,40,0.5); animation: rnr-flame 1.5s ease-in-out infinite alternate; }
.scn-real-nature-not-repugnance .skull { position:absolute; bottom:28%; left:50%; width:30px; height:30px; background: linear-gradient(180deg, #b0a090 0%, #605040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: rnr-skull 12s ease-in-out infinite; }
.scn-real-nature-not-repugnance .shadows { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.8) 0%, transparent 60%); animation: rnr-shadows 5s ease-in-out infinite; }
@keyframes rnr-figure { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(1deg) scale(1.01); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes rnr-candle { 0% { transform:rotate(-1deg) scaleY(1); } 50% { transform:rotate(1deg) scaleY(1.02); } 100% { transform:rotate(-0.5deg) scaleY(1); } }
@keyframes rnr-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 rnr-skull { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(3deg) scale(1.02); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes rnr-shadows { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* defence-of-theatre-enemy-state */
.scn-defence-of-theatre-enemy-state {
  background: linear-gradient(180deg, #faf3e0 0%, #e8dcc8 50%, #d6c8a8 100%),
              radial-gradient(ellipse at 70% 60%, rgba(255,235,180,0.4) 0%, transparent 60%);
}
.scn-defence-of-theatre-enemy-state .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #ede3d0 0%, #d6c8a8 100%);
  animation: enm-wall 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-enemy-state .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6a 100%);
}
.scn-defence-of-theatre-enemy-state .table {
  position:absolute; bottom:28%; left:15%; right:15%; height:6%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-enemy-state .map {
  position:absolute; bottom:30%; left:20%; right:20%; height:18%;
  background: linear-gradient(135deg, #f5ecd0 0%, #e8d6a8 50%, #dcc89a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: enm-map 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-enemy-state .lamp {
  position:absolute; bottom:40%; left:35%; width:12px; height:20px;
  background: linear-gradient(180deg, #c8a040 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(200,160,64,0.6), 0 0 60px 20px rgba(200,160,64,0.3);
  animation: enm-lamp 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-enemy-state .window {
  position:absolute; top:10%; left:5%; width:40%; height:50%;
  background: linear-gradient(135deg, #f0ecdc 0%, #e0d4bc 100%);
  border: 6px solid #b8a888;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.5);
  animation: enm-window 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-enemy-state .beam {
  position:absolute; top:10%; left:5%; width:40%; height:80%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, rgba(255,255,200,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: enm-beam 8s ease-in-out infinite alternate;
}
@keyframes enm-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes enm-map { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-1px) scale(1.01) } 100% { transform: translate(-1px,1px) scale(1) } }
@keyframes enm-lamp { 0% { box-shadow: 0 0 20px 8px rgba(200,160,64,0.4), 0 0 40px 15px rgba(200,160,64,0.2); } 50% { box-shadow: 0 0 40px 15px rgba(200,160,64,0.7), 0 0 80px 25px rgba(200,160,64,0.4); } 100% { box-shadow: 0 0 25px 10px rgba(200,160,64,0.5), 0 0 50px 18px rgba(200,160,64,0.3); } }
@keyframes enm-window { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes enm-beam { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

/* defence-of-theatre-force-territory-relation */
.scn-defence-of-theatre-force-territory-relation {
  background: linear-gradient(180deg, #f6f0e4 0%, #e4dac8 50%, #d4c8b0 100%),
              radial-gradient(ellipse at 30% 70%, rgba(255,240,200,0.4) 0%, transparent 60%);
}
.scn-defence-of-theatre-force-territory-relation .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #eae0cc 0%, #d6c8ab 100%);
  animation: rlt-wall 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-force-territory-relation .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
}
.scn-defence-of-theatre-force-territory-relation .table {
  position:absolute; bottom:25%; left:20%; right:20%; height:5%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-force-territory-relation .map {
  position:absolute; bottom:27%; left:22%; right:22%; height:16%;
  background: linear-gradient(135deg, #f5ecd0 0%, #e0d0a8 50%, #d4c098 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: rlt-map 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-force-territory-relation .figure-a {
  position:absolute; bottom:22%; left:25%; width:24px; height:48px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rlt-fig-a 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-force-territory-relation .figure-b {
  position:absolute; bottom:22%; right:25%; width:24px; height:48px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rlt-fig-b 7s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-force-territory-relation .chandelier {
  position:absolute; top:8%; left:50%; width:80px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d0c090 0%, #b0a070 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,180,120,0.4);
  animation: rlt-chandelier 5s ease-in-out infinite alternate;
}
@keyframes rlt-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rlt-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes rlt-fig-a { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-2px) rotate(1deg) } 100% { transform: translate(-1px,1px) rotate(0) } }
@keyframes rlt-fig-b { 0% { transform: translate(0,0) rotate(1deg) } 50% { transform: translate(-2px,-1px) rotate(-1deg) } 100% { transform: translate(1px,1px) rotate(0) } }
@keyframes rlt-chandelier { 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.95) } }

/* defence-of-theatre-possession-second */
.scn-defence-of-theatre-possession-second {
  background: linear-gradient(135deg, #f2e8d4 0%, #e0d4bc 50%, #d0c0a0 100%),
              radial-gradient(circle at 60% 50%, rgba(255,235,180,0.3) 0%, transparent 70%);
}
.scn-defence-of-theatre-possession-second .desk {
  position:absolute; bottom:0; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-defence-of-theatre-possession-second .map {
  position:absolute; bottom:20%; left:15%; right:15%; height:25%;
  background: linear-gradient(135deg, #f0e4c4 0%, #dccaa0 50%, #d0b88a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: pos-map 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-possession-second .flagpole {
  position:absolute; bottom:30%; left:45%; width:3px; height:35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
}
.scn-defence-of-theatre-possession-second .flagcloth {
  position:absolute; bottom:58%; left:45%; width:30px; height:20px;
  background: linear-gradient(135deg, #b8786a 0%, #a06050 100%);
  transform: translateX(-50%);
  border-radius: 0 40% 40% 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pos-flag 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-possession-second .lampside {
  position:absolute; bottom:28%; left:20%; width:10px; height:16px;
  background: linear-gradient(180deg, #c8a840 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,168,64,0.6);
  animation: pos-lamp 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-possession-second .shadow {
  position:absolute; bottom:15%; left:25%; right:25%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: pos-shadow 10s ease-in-out infinite alternate;
}
@keyframes pos-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes pos-flag { 0% { transform: translateX(-50%) rotate(-4deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes pos-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(200,168,64,0.4) } 50% { opacity:1; box-shadow: 0 0 40px 14px rgba(200,168,64,0.7) } 100% { opacity:0.85; box-shadow: 0 0 25px 8px rgba(200,168,64,0.5) } }
@keyframes pos-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

/* defence-of-theatre-sphere-of-victory */
.scn-defence-of-theatre-sphere-of-victory {
  background: linear-gradient(180deg, #f0e8d8 0%, #ddd4bc 50%, #c8bca0 100%),
              radial-gradient(ellipse at 80% 40%, rgba(255,240,200,0.3) 0%, transparent 60%);
}
.scn-defence-of-theatre-sphere-of-victory .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #e4dcc8 0%, #d0c4a8 100%);
  animation: vic-wall 16s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-sphere-of-victory .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #a89878 0%, #7a6a4a 100%);
}
.scn-defence-of-theatre-sphere-of-victory .pedestal {
  position:absolute; bottom:20%; left:40%; right:40%; height:20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
}
.scn-defence-of-theatre-sphere-of-victory .globe-base {
  position:absolute; bottom:32%; left:44%; right:44%; height:8%;
  background: linear-gradient(180deg, #c8b890 0%, #a89870 100%);
  border-radius: 20%;
  transform: translateX(-50%);
}
.scn-defence-of-theatre-sphere-of-victory .globe {
  position:absolute; bottom:40%; left:38%; right:38%; height:25%;
  background: radial-gradient(circle at 40% 40%, #7ac8d0 0%, #3a8090 50%, #1a5060 100%);
  border-radius: 50%;
  box-shadow: -4px -4px 16px rgba(255,255,255,0.3), 4px 4px 16px rgba(0,0,0,0.2);
  animation: vic-globe 20s linear infinite;
}
.scn-defence-of-theatre-sphere-of-victory .lamp {
  position:absolute; bottom:50%; left:55%; width:10px; height:14px;
  background: linear-gradient(180deg, #c8a840 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,168,64,0.6);
  animation: vic-lamp 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-sphere-of-victory .shadow {
  position:absolute; bottom:15%; left:35%; right:35%; height:6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.12) 0%, transparent 100%);
  animation: vic-shadow 12s ease-in-out infinite alternate;
}
@keyframes vic-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes vic-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes vic-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(200,168,64,0.4) } 50% { opacity:1; box-shadow: 0 0 40px 14px rgba(200,168,64,0.7) } 100% { opacity:0.85; box-shadow: 0 0 25px 8px rgba(200,168,64,0.5) } }
@keyframes vic-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.3 } }

/* Scene 1: operating-against-flank-affinity */
.scn-operating-against-flank-affinity {
  background: linear-gradient(180deg, #f5ead0 0%, #e8d5b0 40%, #d4b88a 100%), radial-gradient(ellipse at 20% 30%, #fff5e6 0%, transparent 60%);
}
.scn-operating-against-flank-affinity .wall-light {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, rgba(255,245,230,0.7) 0%, rgba(230,210,180,0.3) 100%);
  animation: oaf-wallpulse 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-affinity .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #b5875a 0%, #8b6b40 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-operating-against-flank-affinity .map {
  position: absolute; bottom: 20%; left: 20%; width: 45%; height: 28%;
  background: linear-gradient(135deg, #f0e3c8 0%, #dcc8a0 100%);
  border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: oaf-mapsway 8s ease-in-out infinite;
}
.scn-operating-against-flank-affinity .candle {
  position: absolute; bottom: 32%; left: 62%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-operating-against-flank-affinity .candle::after {
  content: ''; position: absolute; top: -8px; left: 2px; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffb020 60%, transparent 100%);
  border-radius: 50%; animation: oaf-flame 2s ease-in-out infinite alternate;
}
.scn-operating-against-flank-affinity .hand-pointer {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%);
  border-radius: 60% 40% 30% 40% / 50% 50% 40% 40%;
  transform-origin: 70% 90%;
  animation: oaf-point 5s ease-in-out infinite;
}
.scn-operating-against-flank-affinity .document-edge {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 2px;
  background: #c8a070; opacity: 0.5;
}
.scn-operating-against-flank-affinity .paper-stack {
  position: absolute; bottom: 18%; right: 18%; width: 18%; height: 12%;
  background: linear-gradient(180deg, #f5ead0 0%, #e8d5b0 100%);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.15);
  transform: rotate(2deg);
}
.scn-operating-against-flank-affinity .dust-mote {
  position: absolute; width: 4px; height: 4px; background: rgba(255,245,230,0.6);
  border-radius: 50%; filter: blur(1px);
}
.scn-operating-against-flank-affinity .dust-mote.m1 {
  top: 30%; left: 40%; animation: oaf-drift1 20s linear infinite;
}
.scn-operating-against-flank-affinity .dust-mote.m2 {
  top: 50%; left: 70%; animation: oaf-drift2 25s linear infinite reverse;
}
@keyframes oaf-wallpulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes oaf-mapsway { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2.5deg) translateY(-2px); } }
@keyframes oaf-flame { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-2px); } 100% { transform: scale(0.95) translateY(-1px); } }
@keyframes oaf-point { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(3px); } 70% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes oaf-drift1 { 0% { transform: translate(0,0); opacity: 0.3; } 25% { transform: translate(20px, -10px); opacity: 0.6; } 50% { transform: translate(40px, 5px); opacity: 0.2; } 75% { transform: translate(60px, -5px); opacity: 0.5; } 100% { transform: translate(80px, 0); opacity: 0.3; } }
@keyframes oaf-drift2 { 0% { transform: translate(0,0); opacity: 0.4; } 33% { transform: translate(-15px, -12px); opacity: 0.7; } 66% { transform: translate(-30px, 8px); opacity: 0.2; } 100% { transform: translate(-45px, -4px); opacity: 0.4; } }

/* Scene 2: operating-against-flank-two-objects */
.scn-operating-against-flank-two-objects {
  background: linear-gradient(135deg, #f8eed8 0%, #e6d4b0 50%, #d4ba8a 100%), radial-gradient(ellipse at 70% 20%, #ffe8cc 0%, transparent 60%);
}
.scn-operating-against-flank-two-objects .wall-light {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,245,220,0.6) 0%, transparent 100%);
  animation: oto-wallshift 12s ease-in-out infinite alternate;
}
.scn-operating-against-flank-two-objects .table {
  position: absolute; bottom: 0; left: 2%; right: 2%; height: 40%;
  background: linear-gradient(180deg, #b28050 0%, #8a5e30 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,0.35);
}
.scn-operating-against-flank-two-objects .globe {
  position: absolute; bottom: 25%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle at 40% 35%, #6a9ab0 0%, #2a5a70 60%, #1a3a4a 100%);
  border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.4), inset -4px -4px 8px rgba(0,0,0,0.3);
  transform: rotate(-15deg);
  animation: oto-globespin 30s linear infinite;
}
.scn-operating-against-flank-two-objects .book {
  position: absolute; bottom: 20%; right: 22%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #b08050 0%, #906038 100%);
  border-radius: 4px; box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: oto-bookrock 6s ease-in-out infinite;
}
.scn-operating-against-flank-two-objects .compass {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0c080 0%, #b08040 100%);
  border-radius: 50%; border: 3px solid #906038;
  transform: rotate(20deg);
  animation: oto-compasswiggle 8s ease-in-out infinite;
}
.scn-operating-against-flank-two-objects .shadow-globe {
  position: absolute; bottom: 22%; left: 16%; width: 90px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: oto-shadowglide 30s linear infinite;
}
.scn-operating-against-flank-two-objects .shadow-book {
  position: absolute; bottom: 17%; right: 20%; width: 100px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(2px);
  animation: oto-shadowslide 6s ease-in-out infinite;
}
.scn-operating-against-flank-two-objects .light-dot {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffedcc 0%, transparent 70%);
  border-radius: 50%;
  animation: oto-lightpulse 4s ease-in-out infinite alternate;
}
@keyframes oto-wallshift { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes oto-globespin { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(165deg) scale(1.02); } 100% { transform: rotate(345deg) scale(1); } }
@keyframes oto-bookrock { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes oto-compasswiggle { 0% { transform: rotate(20deg); } 25% { transform: rotate(25deg); } 75% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }
@keyframes oto-shadowglide { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes oto-shadowslide { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.15); } 100% { opacity: 0.2; transform: scaleX(1); } }
@keyframes oto-lightpulse { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

/* Scene 3: operating-against-flank-communications */
.scn-operating-against-flank-communications {
  background: linear-gradient(180deg, #efe4cc 0%, #ddd0b0 40%, #cbb890 100%), radial-gradient(ellipse at 30% 40%, #fff5e0 0%, transparent 50%);
}
.scn-operating-against-flank-communications .wall-light {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,245,220,0.5) 0%, transparent 100%);
  animation: oac-wallfade 14s ease-in-out infinite alternate;
}
.scn-operating-against-flank-communications .desk {
  position: absolute; bottom: 0; left: 3%; right: 3%; height: 38%;
  background: linear-gradient(180deg, #b88a5a 0%, #8a6238 100%);
  border-radius: 5% 5% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-operating-against-flank-communications .letter {
  position: absolute; bottom: 22%; left: 22%; width: 50%; height: 30%;
  background: linear-gradient(135deg, #f0e0c0 0%, #e0c8a0 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: oac-lettershiver 7s ease-in-out infinite;
}
.scn-operating-against-flank-communications .quill {
  position: absolute; bottom: 40%; right: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09870 100%);
  border-radius: 60% 20% 30% 40% / 80% 40% 40% 20%;
  transform-origin: 50% 90%;
  animation: oac-quillsway 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-communications .inkwell {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-operating-against-flank-communications .wax-seal {
  position: absolute; bottom: 32%; left: 35%; width: 18px; height: 18px;
  background: radial-gradient(circle, #c8553d 0%, #a0402a 100%);
  border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.scn-operating-against-flank-communications .paper-fold {
  position: absolute; bottom: 25%; left: 28%; width: 30%; height: 2px;
  background: #c8a878; opacity: 0.4;
}
.scn-operating-against-flank-communications .mote {
  position: absolute; width: 5px; height: 5px; background: rgba(255,245,220,0.5);
  border-radius: 50%; filter: blur(1px);
}
.scn-operating-against-flank-communications .mote.m-a { top: 25%; left: 50%; animation: oac-moteA 22s linear infinite; }
.scn-operating-against-flank-communications .mote.m-b { top: 45%; left: 70%; animation: oac-moteB 28s linear infinite reverse; }
@keyframes oac-wallfade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes oac-lettershiver { 0%,100% { transform: rotate(-2deg) translateX(0); } 30% { transform: rotate(-1.5deg) translateX(-1px); } 60% { transform: rotate(-2.5deg) translateX(1px); } }
@keyframes oac-quillsway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }
@keyframes oac-moteA { 0% { transform: translate(0,0); opacity: 0.3; } 25% { transform: translate(15px, -12px); opacity: 0.7; } 50% { transform: translate(30px, 5px); opacity: 0.2; } 75% { transform: translate(45px, -8px); opacity: 0.6; } 100% { transform: translate(60px, 0); opacity: 0.3; } }
@keyframes oac-moteB { 0% { transform: translate(0,0); opacity: 0.4; } 33% { transform: translate(-10px, -15px); opacity: 0.8; } 66% { transform: translate(-20px, 10px); opacity: 0.2; } 100% { transform: translate(-30px, -5px); opacity: 0.4; } }

/* Scene 4: operating-against-flank-two-conditions */
.scn-operating-against-flank-two-conditions {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #cfbe9a 100%), radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 50%);
}
.scn-operating-against-flank-two-conditions .wall-light {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,248,230,0.5) 0%, transparent 100%);
  animation: otc-wallwave 15s ease-in-out infinite alternate;
}
.scn-operating-against-flank-two-conditions .desk {
  position: absolute; bottom: 0; left: 1%; right: 1%; height: 42%;
  background: linear-gradient(180deg, #b08050 0%, #886030 100%);
  border-radius: 3% 3% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.35);
}
.scn-operating-against-flank-two-conditions .diagram {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(135deg, #f5e8c8 0%, #e0c8a0 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transform: rotate(1deg);
}
.scn-operating-against-flank-two-conditions .book-left {
  position: absolute; bottom: 22%; left: 8%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #b09060 0%, #907048 100%);
  border-radius: 3px; box-shadow: 1px 2px 4px rgba(0,0,0,0.25);
  transform: rotate(-4deg);
  animation: otc-bookleft 9s ease-in-out infinite;
}
.scn-operating-against-flank-two-conditions .book-right {
  position: absolute; bottom: 22%; right: 8%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #a08050 0%, #806038 100%);
  border-radius: 3px; box-shadow: 1px 2px 4px rgba(0,0,0,0.25);
  transform: rotate(4deg);
  animation: otc-bookright 9s ease-in-out infinite reverse;
}
.scn-operating-against-flank-two-conditions .ruler {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(90deg, #c8a878 0%, #b89868 100%);
  border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: otc-rulershift 12s ease-in-out infinite;
}
.scn-operating-against-flank-two-conditions .pencil {
  position: absolute; bottom: 35%; right: 15%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 80%, #f0d0a0 80%);
  border-radius: 2px; transform: rotate(25deg);
  animation: otc-pencilroll 7s ease-in-out infinite;
}
.scn-operating-against-flank-two-conditions .coffee-cup {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-operating-against-flank-two-conditions .steam {
  position: absolute; bottom: 55%; left: 43%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: otc-steamrise 3s ease-in-out infinite alternate;
}
@keyframes otc-wallwave { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes otc-bookleft { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes otc-bookright { 0%,100% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes otc-rulershift { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes otc-pencilroll { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(30deg) scale(1.05); } 100% { transform: rotate(25deg) scale(1); } }
@keyframes otc-steamrise { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-10px) scale(1.3); } 100% { opacity: 0.1; transform: translateY(-20px) scale(0.8); } }

/* Scene 1: operating-against-flank-advantageous-situation */
.scn-operating-against-flank-advantageous-situation {
  background: 
    linear-gradient(180deg, #f5edd6 0%, #e8dcc4 40%, #d4c5a8 100%),
    radial-gradient(ellipse at 50% 60%, #f0e8d0 0%, transparent 70%);
}
.scn-operating-against-flank-advantageous-situation .map-table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #c8b28a 0%, #a0865e 100%);
  border-radius: 4px 4px 20px 20px;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.15);
  animation: oaf1-table 12s ease-in-out infinite;
}
.scn-operating-against-flank-advantageous-situation .map-detail {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(135deg, #dcc69c 0%, #c4aa7a 50%, #d4b880 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: oaf1-map 20s ease-in-out infinite alternate;
}
.scn-operating-against-flank-advantageous-situation .map-marker {
  position: absolute; width: 8px; height: 8px; background: #9b6b3a;
  border-radius: 50%; box-shadow: 0 0 6px rgba(155,107,58,0.5);
}
.scn-operating-against-flank-advantageous-situation .marker-1 {
  bottom: 35%; left: 30%; animation: oaf1-marker1 6s ease-in-out infinite alternate;
}
.scn-operating-against-flank-advantageous-situation .marker-2 {
  bottom: 38%; left: 55%; animation: oaf1-marker2 7s ease-in-out infinite alternate;
}
.scn-operating-against-flank-advantageous-situation .candle {
  position: absolute; bottom: 55%; left: 42%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a86a 60%, #8a6a3a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: oaf1-candle 4s ease-in-out infinite;
}
.scn-operating-against-flank-advantageous-situation .candle-glow {
  position: absolute; bottom: 58%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd48a 0%, #ffb84a 30%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: oaf1-glow 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-advantageous-situation .window-glare {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 20%;
  background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 80%);
  border-radius: 4px; filter: blur(8px);
  animation: oaf1-glare 14s ease-in-out infinite alternate;
}
.scn-operating-against-flank-advantageous-situation .shadow-window {
  position: absolute; top: 5%; left: 15%; right: 55%; height: 60%;
  background: linear-gradient(180deg, rgba(180,160,120,0.1) 0%, rgba(120,100,70,0.05) 100%);
  border-radius: 8px; filter: blur(12px);
  animation: oaf1-shadow 22s ease-in-out infinite;
}
@keyframes oaf1-table   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oaf1-map     { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes oaf1-marker1 { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes oaf1-marker2 { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.15) translateX(3px); } 100% { transform: scale(1) translateX(0); } }
@keyframes oaf1-candle  { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes oaf1-glow    { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px #ffb84a; } 50% { opacity: 1; box-shadow: 0 0 30px 15px #ffd48a; } 100% { opacity: 0.8; box-shadow: 0 0 25px 12px #ffb84a; } }
@keyframes oaf1-glare   { 0% { transform: translateX(0) rotate(0deg); opacity: 0.3; } 50% { transform: translateX(5px) rotate(2deg); opacity: 0.5; } 100% { transform: translateX(-3px) rotate(-1deg); opacity: 0.4; } }
@keyframes oaf1-shadow  { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; } }

/* Scene 2: operating-against-flank-strategic-manoeuvres */
.scn-operating-against-flank-strategic-manoeuvres {
  background: 
    linear-gradient(180deg, #e2d8c0 0%, #cfc2a6 50%, #b8a888 100%),
    radial-gradient(ellipse at 30% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-operating-against-flank-strategic-manoeuvres .bookshelf {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 55%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2);
  animation: oaf2-shelf 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-strategic-manoeuvres .book {
  position: absolute; bottom: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c4523a 0%, #9a3a2a 100%); /* muted terracotta, not bright red */
  border-radius: 2px;
}
.scn-operating-against-flank-strategic-manoeuvres .book-1 { left: 20%; bottom: 45%; height: 28px; background: linear-gradient(180deg, #6a8c5a 0%, #4a6a3a 100%); animation: oaf2-book1 5s ease-in-out infinite; }
.scn-operating-against-flank-strategic-manoeuvres .book-2 { left: 30%; bottom: 35%; height: 32px; background: linear-gradient(180deg, #5a6a8a 0%, #3a4a6a 100%); animation: oaf2-book2 6s ease-in-out infinite; }
.scn-operating-against-flank-strategic-manoeuvres .book-3 { left: 40%; bottom: 50%; height: 24px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); animation: oaf2-book3 7s ease-in-out infinite; }
.scn-operating-against-flank-strategic-manoeuvres .globe {
  position: absolute; bottom: 25%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #7a9a6a 0%, #4a6a4a 50%, #3a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: oaf2-globe 18s linear infinite;
}
.scn-operating-against-flank-strategic-manoeuvres .globe-stand {
  position: absolute; bottom: 18%; left: 60%; width: 6px; height: 25px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: oaf2-stand 9s ease-in-out infinite alternate;
}
.scn-operating-against-flank-strategic-manoeuvres .window-light {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(255,245,210,0.3) 0%, transparent 100%);
  border-radius: 6px;
  filter: blur(10px);
  animation: oaf2-light 16s ease-in-out infinite alternate;
}
@keyframes oaf2-shelf  { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes oaf2-book1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oaf2-book2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oaf2-book3 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes oaf2-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes oaf2-stand { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes oaf2-light { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* Scene 3: operating-against-flank-execution */
.scn-operating-against-flank-execution {
  background: 
    linear-gradient(180deg, #e6dac0 0%, #d4c4a4 40%, #bca884 100%),
    radial-gradient(ellipse at 70% 40%, #f0e4c8 0%, transparent 60%);
}
.scn-operating-against-flank-execution .desk {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 6px;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.2);
  animation: oaf3-desk 14s ease-in-out infinite;
}
.scn-operating-against-flank-execution .letter {
  position: absolute; bottom: 30%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f5efd8 0%, #e0d4b8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.scn-operating-against-flank-execution .letter-1 { left: 20%; bottom: 32%; animation: oaf3-letter1 8s ease-in-out infinite; }
.scn-operating-against-flank-execution .letter-2 { left: 35%; bottom: 28%; animation: oaf3-letter2 9s ease-in-out infinite; }
.scn-operating-against-flank-execution .seal {
  position: absolute; bottom: 33%; left: 27%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a03a2a 100%); /* terracotta, safe */
  border-radius: 50%;
  animation: oaf3-seal 5s ease-in-out infinite alternate;
}
.scn-operating-against-flank-execution .lantern {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4b060 0%, #b09040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.4);
  animation: oaf3-lantern 4s ease-in-out infinite;
}
.scn-operating-against-flank-execution .lantern-glow {
  position: absolute; bottom: 48%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe090 0%, #e8b84a 40%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: oaf3-glow 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-execution .inkwell {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  animation: oaf3-ink 10s ease-in-out infinite;
}
@keyframes oaf3-desk     { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes oaf3-letter1  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oaf3-letter2  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oaf3-seal     { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes oaf3-lantern  { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes oaf3-glow     { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px #e8b84a; } 50% { opacity: 1; box-shadow: 0 0 30px 18px #ffe090; } 100% { opacity: 0.7; box-shadow: 0 0 25px 14px #e8b84a; } }
@keyframes oaf3-ink      { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* Scene 4: operating-against-flank-line-of-retreat */
.scn-operating-against-flank-line-of-retreat {
  background: 
    linear-gradient(180deg, #d4ccb8 0%, #c0b4a0 50%, #a89884 100%),
    radial-gradient(ellipse at 50% 30%, #ece4d0 0%, transparent 70%);
}
.scn-operating-against-flank-line-of-retreat .window-frame {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 30%;
  border: 4px solid #a08868;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: oaf4-frame 15s ease-in-out infinite alternate;
}
.scn-operating-against-flank-line-of-retreat .window-sky {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 30%;
  background: linear-gradient(180deg, #b8c8d8 0%, #d4e0e8 60%, #e8ece8 100%);
  border-radius: 6px;
  animation: oaf4-sky 20s ease-in-out infinite alternate;
}
.scn-operating-against-flank-line-of-retreat .window-hills {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  animation: oaf4-hills 18s ease-in-out infinite alternate;
}
.scn-operating-against-flank-line-of-retreat .window-path {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, #b8a880 30%, #a89870 70%, transparent 100%);
  border-radius: 20% 20% 0 0;
  animation: oaf4-path 22s ease-in-out infinite alternate;
}
.scn-operating-against-flank-line-of-retreat .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #b09870 0%, #90784e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: oaf4-table 12s ease-in-out infinite;
}
.scn-operating-against-flank-line-of-retreat .tea-cup {
  position: absolute; bottom: 16%; left: 40%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d4bc 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: oaf4-cup 8s ease-in-out infinite;
}
.scn-operating-against-flank-line-of-retreat .steam {
  position: absolute; bottom: 18%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: oaf4-steam 6s ease-in-out infinite;
}
.scn-operating-against-flank-line-of-retreat .curtain {
  position: absolute; top: 5%; bottom: 30%; width: 8%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 4px;
  filter: blur(2px);
}
.scn-operating-against-flank-line-of-retreat .curtain-left { left: 8%; animation: oaf4-curtainL 10s ease-in-out infinite alternate; }
.scn-operating-against-flank-line-of-retreat .curtain-right { right: 8%; animation: oaf4-curtainR 10s ease-in-out infinite alternate; }
@keyframes oaf4-frame    { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes oaf4-sky      { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes oaf4-hills    { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes oaf4-path     { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes oaf4-table    { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oaf4-cup      { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oaf4-steam    { 0% { transform: translateY(0) scale(1) rotate(0deg); opacity: 0.5; } 50% { transform: translateY(-8px) scale(1.2) rotate(5deg); opacity: 0.8; } 100% { transform: translateY(0) scale(1) rotate(0deg); opacity: 0.5; } }
@keyframes oaf4-curtainL { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes oaf4-curtainR { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }

.scn-foreign-officers-experience {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-foreign-officers-experience .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c2c3a 0%, #1e1e2a 100%);
  animation: foe-wall 12s ease-in-out infinite alternate;
}
.scn-foreign-officers-experience .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
}
.scn-foreign-officers-experience .table {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: foe-table 20s ease-in-out infinite;
}
.scn-foreign-officers-experience .candle {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8a0 0%, #c8b070 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-foreign-officers-experience .flame {
  position: absolute; bottom: 68%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc88 0%, #e08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #e08030, 0 0 40px 16px rgba(224,128,48,.3);
  animation: foe-flame 2s ease-in-out infinite alternate;
}
.scn-foreign-officers-experience .officer-left {
  position: absolute; bottom: 24%; left: 18%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foe-fig-l 6s ease-in-out infinite;
}
.scn-foreign-officers-experience .officer-foreign {
  position: absolute; bottom: 24%; right: 22%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foe-fig-r 8s ease-in-out infinite alternate;
}
.scn-foreign-officers-experience .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: foe-shadow 10s ease-in-out infinite alternate;
}
@keyframes foe-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes foe-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes foe-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(.9) rotate(2deg) } }
@keyframes foe-fig-l { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes foe-fig-r { 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 foe-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

.scn-influence-of-few-officers {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #22223a 50%, #12121a 100%),
    radial-gradient(ellipse at 30% 70%, #2a2a20 0%, transparent 70%);
}
.scn-influence-of-few-officers .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e28 0%, #0a0a0e 100%);
}
.scn-influence-of-few-officers .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -6px 14px rgba(0,0,0,.5);
  animation: ifo-desk 15s ease-in-out infinite;
}
.scn-influence-of-few-officers .lamp {
  position: absolute; bottom: 38%; left: 35%; width: 14px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0c080 0%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
}
.scn-influence-of-few-officers .lamp-glow {
  position: absolute; bottom: 40%; left: 35%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: ifo-glow 4s ease-in-out infinite alternate;
}
.scn-influence-of-few-officers .figure-main {
  position: absolute; bottom: 24%; left: 30%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifo-main 6s ease-in-out infinite alternate;
}
.scn-influence-of-few-officers .figure-bg1 {
  position: absolute; bottom: 22%; right: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #12121e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifo-bg1 10s ease-in-out infinite;
}
.scn-influence-of-few-officers .figure-bg2 {
  position: absolute; bottom: 20%; right: 10%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifo-bg2 12s ease-in-out infinite alternate;
}
@keyframes ifo-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ifo-glow { 0% { opacity:.5; transform: translateX(-50%) scale(.9) } 50% { opacity:.8; transform: translateX(-50%) scale(1) } 100% { opacity:.6; transform: translateX(-50%) scale(.95) } }
@keyframes ifo-main { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ifo-bg1 { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-3px) translateX(2px) } 100% { transform: translateY(0) translateX(0) } }
@keyframes ifo-bg2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-on-the-theory-of-war-title {
  background:
    linear-gradient(180deg, #1a1a28 0%, #2a2a3a 50%, #14141e 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-on-the-theory-of-war-title .desk {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: ott-desk 18s ease-in-out infinite;
}
.scn-on-the-theory-of-war-title .book-left {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px 10px 10px 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: ott-book-l 24s ease-in-out infinite alternate;
}
.scn-on-the-theory-of-war-title .book-right {
  position: absolute; bottom: 30%; right: 20%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10px 2px 2px 10px;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  transform: rotate(4deg);
  animation: ott-book-r 20s ease-in-out infinite alternate;
}
.scn-on-the-theory-of-war-title .candle {
  position: absolute; bottom: 55%; left: 50%; width: 8px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8a0 0%, #c8b070 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-on-the-theory-of-war-title .candle-flame {
  position: absolute; bottom: 80%; left: 50%; width: 10px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc88 0%, #e08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 6px #e08030, 0 0 32px 12px rgba(224,128,48,.3);
  animation: ott-flame 2.5s ease-in-out infinite alternate;
}
.scn-on-the-theory-of-war-title .inkwell {
  position: absolute; bottom: 50%; left: 15%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,.6);
  animation: ott-ink 30s linear infinite;
}
.scn-on-the-theory-of-war-title .quill {
  position: absolute; bottom: 65%; left: 12%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #e8d8a0 0%, #c8b070 50%, #a09060 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  animation: ott-quill 6s ease-in-out infinite alternate;
}
@keyframes ott-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ott-book-l { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ott-book-r { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-3px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes ott-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.1) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(.85) rotate(2deg) } }
@keyframes ott-ink { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ott-quill { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(8px) } 100% { transform: rotate(-30deg) translateX(0) } }

.scn-weapons-equipments-preparation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #202038 50%, #101018 100%),
    radial-gradient(ellipse at 40% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-weapons-equipments-preparation .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: wep-table 22s ease-in-out infinite;
}
.scn-weapons-equipments-preparation .musket {
  position: absolute; bottom: 40%; left: 15%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 1px 1px;
  transform: rotate(15deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: wep-musket 14s ease-in-out infinite alternate;
}
.scn-weapons-equipments-preparation .sword {
  position: absolute; bottom: 45%; right: 20%; width: 5px; height: 50px;
  background: linear-gradient(180deg, #b0a080 0%, #706050 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: wep-sword 16s ease-in-out infinite alternate;
}
.scn-weapons-equipments-preparation .shield {
  position: absolute; bottom: 50%; left: 40%; width: 28px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: wep-shield 20s ease-in-out infinite;
}
.scn-weapons-equipments-preparation .lantern {
  position: absolute; bottom: 58%; left: 30%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #d0c080 0%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
}
.scn-weapons-equipments-preparation .lantern-glow {
  position: absolute; bottom: 58%; left: 30%; width: 60px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,.25) 0%, transparent 100%);
  border-radius: 50%;
  animation: wep-lantern-glow 5s ease-in-out infinite alternate;
}
.scn-weapons-equipments-preparation .helmet {
  position: absolute; bottom: 35%; right: 35%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: wep-helmet 18s ease-in-out infinite;
}
@keyframes wep-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wep-musket { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(3px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes wep-sword { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-4px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes wep-shield { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes wep-lantern-glow { 0% { opacity:.4; transform: translate(-50%,-50%) scale(.9) } 50% { opacity:.7; transform: translate(-50%,-50%) scale(1) } 100% { opacity:.5; transform: translate(-50%,-50%) scale(.95) } }
@keyframes wep-helmet { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: disarming-enemy-rarely-attained */
.scn-disarming-enemy-rarely-attained {
  background:
    linear-gradient(135deg, #1e1a16 0%, #2b231e 40%, #1a1512 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-disarming-enemy-rarely-attained .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221c 0%, #1e1814 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
  animation: di1-wall 12s ease-in-out infinite alternate;
}
.scn-disarming-enemy-rarely-attained .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1f18 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-disarming-enemy-rarely-attained .candle {
  position: absolute; bottom: 32%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d4b48c 0%, #a07858 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
}
.scn-disarming-enemy-rarely-attained .flame {
  position: absolute; bottom: 48%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd680 0%, #e8a040 40%, #a05020 70%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(232,160,64,.6), 0 0 60px 20px rgba(200,100,40,.3);
  animation: di1-flicker 0.3s ease-in-out infinite alternate;
}
.scn-disarming-enemy-rarely-attained .scroll {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #c8b088 0%, #e0d0b8 40%, #c8b088 100%);
  border-radius: 50%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: di1-scroll 8s ease-in-out infinite;
}
.scn-disarming-enemy-rarely-attained .chair {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-disarming-enemy-rarely-attained .figure {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di1-breathe 4s ease-in-out infinite;
}
@keyframes di1-wall     { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes di1-flicker  { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: .9 } 100% { transform: translateX(-50%) scale(1.1) rotate(2deg); opacity: 1 } }
@keyframes di1-scroll   { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } }
@keyframes di1-breathe  { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }

/* Scene: difference-real-and-abstract */
.scn-difference-real-and-abstract {
  background:
    linear-gradient(180deg, #1a1a24 0%, #22222e 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 70% 90%, #2e2e44 0%, transparent 60%);
}
.scn-difference-real-and-abstract .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #242438 0%, #1a1a28 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: di2-room 15s ease-in-out infinite alternate;
}
.scn-difference-real-and-abstract .shelf-left {
  position: absolute; bottom: 25%; left: 5%; width: 40%; height: 50%;
  background: linear-gradient(90deg, #2a221e 0%, #3a2e28 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-difference-real-and-abstract .shelf-right {
  position: absolute; bottom: 25%; right: 5%; width: 40%; height: 50%;
  background: linear-gradient(270deg, #2a221e 0%, #3a2e28 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-difference-real-and-abstract .books-a {
  position: absolute; bottom: 35%; left: 10%; width: 25%; height: 30%;
  background: repeating-linear-gradient(
    90deg,
    #4a3a2e 0px, #4a3a2e 8px,
    #5a4a3e 8px, #5a4a3e 16px,
    #3a2a1e 16px, #3a2a1e 24px
  );
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: di2-books 20s ease-in-out infinite;
}
.scn-difference-real-and-abstract .books-b {
  position: absolute; bottom: 30%; right: 10%; width: 25%; height: 35%;
  background: repeating-linear-gradient(
    90deg,
    #3a2a1e 0px, #3a2a1e 10px,
    #5a4a3e 10px, #5a4a3e 20px,
    #4a3a2e 20px, #4a3a2e 30px
  );
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: di2-books 20s ease-in-out infinite reverse;
}
.scn-difference-real-and-abstract .ladder {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, #3a2e28 0%, #2a201c 100%);
  border-radius: 4px;
  transform: skewX(-5deg);
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: di2-ladder 6s ease-in-out infinite alternate;
}
.scn-difference-real-and-abstract .lamp {
  position: absolute; bottom: 50%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 80%, #ffd060 0%, #b08030 60%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,.5), 0 0 60px 20px rgba(200,160,80,.3);
  transform: translateX(-50%);
  animation: di2-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-difference-real-and-abstract .globe {
  position: absolute; bottom: 20%; right: 8%; width: 40px; height: 40px;
  background: radial-gradient(circle at 60% 30%, #4a7a6a 0%, #2a4a3a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4), inset 0 -4px 8px rgba(0,0,0,.3);
  animation: di2-globe 12s linear infinite;
}
.scn-difference-real-and-abstract .table {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1f18 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
@keyframes di2-room   { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes di2-books  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes di2-ladder { 0% { transform: skewX(-5deg) scaleY(1) } 100% { transform: skewX(-5deg) scaleY(1.02) } }
@keyframes di2-lamp-glow { 0% { box-shadow: 0 0 20px 4px rgba(200,160,80,.4), 0 0 40px 10px rgba(200,160,80,.2); opacity: .8 } 50% { box-shadow: 0 0 40px 10px rgba(200,160,80,.6), 0 0 80px 20px rgba(200,160,80,.4); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(200,160,80,.45), 0 0 50px 12px rgba(200,160,80,.25); opacity: .85 } }
@keyframes di2-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* Scene: war-frees-from-strict-law */
.scn-war-frees-from-strict-law {
  background:
    linear-gradient(180deg, #12121e 0%, #1a1a2a 50%, #24243a 100%),
    radial-gradient(ellipse at 60% 20%, #2a2a44 0%, transparent 60%);
}
.scn-war-frees-from-strict-law .bg-deep-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121c 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.7);
  animation: di3-wall 10s ease-in-out infinite alternate;
}
.scn-war-frees-from-strict-law .window-frame {
  position: absolute; top: 15%; left: 25%; right: 25%; bottom: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4e 100%);
  border-radius: 8px;
  box-shadow: 0 0 20px 6px rgba(100,120,180,.2);
  border: 4px solid #1a1a24;
}
.scn-war-frees-from-strict-law .bars {
  position: absolute; top: 18%; left: 30%; right: 30%; bottom: 38%;
  background: repeating-linear-gradient(
    90deg,
    transparent 0px, transparent 12px,
    #2a2a3a 12px, #2a2a3a 14px
  );
  box-shadow: 0 0 0 2px #1a1a2a inset;
}
.scn-war-frees-from-strict-law .moonlight-beam {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 55%;
  background: linear-gradient(180deg, rgba(180,200,230,.25) 0%, transparent 80%);
  transform: skewX(-5deg);
  filter: blur(4px);
  animation: di3-beam 8s ease-in-out infinite alternate;
}
.scn-war-frees-from-strict-law .figure-at-window {
  position: absolute; bottom: 15%; left: 42%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: di3-figure 6s ease-in-out infinite;
}
.scn-war-frees-from-strict-law .floor-shadow {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: di3-shadow 6s ease-in-out infinite;
}
@keyframes di3-wall   { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes di3-beam   { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes di3-figure { 0% { transform: translateX(0) scaleY(1) rotate(0) } 50% { transform: translateX(4px) scaleY(1.02) rotate(2deg) } 100% { transform: translateX(0) scaleY(1) rotate(0) } }
@keyframes di3-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }

/* Scene: expenditure-force-consideration */
.scn-expenditure-force-consideration {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1e 0%, transparent 60%);
}
.scn-expenditure-force-consideration .bg-chamber {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a221c 0%, #1e1814 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 10px 24px rgba(0,0,0,.6);
  animation: di4-chamber 12s ease-in-out infinite alternate;
}
.scn-expenditure-force-consideration .desk-table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a1f18 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 16px rgba(0,0,0,.5);
  transform: perspective(500px) rotateX(8deg);
}
.scn-expenditure-force-consideration .scale {
  position: absolute; bottom: 30%; left: 37%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: translateX(-50%);
  animation: di4-scale 8s ease-in-out infinite alternate;
}
.scn-expenditure-force-consideration .coin-left {
  position: absolute; bottom: 28%; left: 34%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b08850 0%, #5a4020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: di4-coin-l 4s ease-in-out infinite;
}
.scn-expenditure-force-consideration .coin-right {
  position: absolute; bottom: 28%; right: 34%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b08850 0%, #5a4020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: di4-coin-r 4s ease-in-out infinite 0.5s;
}
.scn-expenditure-force-consideration .quill {
  position: absolute; bottom: 15%; left: 25%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  transform: rotate(20deg);
  transform-origin: bottom left;
  border-radius: 0 0 40% 40%;
  animation: di4-quill 7s ease-in-out infinite alternate;
}
.scn-expenditure-force-consideration .parchment {
  position: absolute; bottom: 14%; left: 40%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #c8b088 0%, #e0d0b8 50%, #c8b088 100%);
  border-radius: 20% 20% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: di4-parchment 9s ease-in-out infinite;
}
.scn-expenditure-force-consideration .hand {
  position: absolute; bottom: 14%; left: 52%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di4-hand 5s ease-in-out infinite;
}
@keyframes di4-chamber    { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes di4-scale      { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes di4-coin-l     { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes di4-coin-r     { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes di4-quill      { 0% { transform: rotate(20deg) translateX(0) } 100% { transform: rotate(25deg) translateX(2px) } }
@keyframes di4-parchment  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes di4-hand       { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-1px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }

/* Scene: genius-for-war-title (gw) */
.scn-genius-for-war-title {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1c0e 50%, #1a1008 100%),
              radial-gradient(ellipse at 60% 30%, #5a3a1a 0%, transparent 60%);
}
.scn-genius-for-war-title .wall {
  position: absolute; inset: 0 0 45% 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(0,0,0,0.1) 20px, rgba(0,0,0,0.1) 22px);
  opacity: 0.4;
}
.scn-genius-for-war-title .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2e18 50%, #3a1e0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-genius-for-war-title .book {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(10deg);
  animation: gw-book 12s ease-in-out infinite;
}
.scn-genius-for-war-title .candle {
  position: absolute; bottom: 20%; left: 55%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
.scn-genius-for-war-title .flame {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gw-flame 1.5s ease-in-out infinite alternate;
}
.scn-genius-for-war-title .inkwell {
  position: absolute; bottom: 28%; left: 70%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-genius-for-war-title .quill {
  position: absolute; bottom: 35%; left: 72%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #e8d8c0 0%, #a08060 100%);
  border-radius: 90% 90% 10% 10%;
  transform: rotate(20deg) scaleX(0.8);
  transform-origin: bottom center;
  animation: gw-quill 6s ease-in-out infinite;
}
.scn-genius-for-war-title .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: gw-shadow 8s ease-in-out infinite alternate;
}
@keyframes gw-book { 0%,100% { transform: perspective(600px) rotateX(10deg) scale(1); } 50% { transform: perspective(600px) rotateX(8deg) scale(1.01); } }
@keyframes gw-flame { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.85; } }
@keyframes gw-quill { 0%,100% { transform: rotate(20deg) scaleX(0.8); } 50% { transform: rotate(18deg) scaleX(0.9); } }
@keyframes gw-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: genius-definition-limits (gl) */
.scn-genius-definition-limits {
  background: linear-gradient(135deg, #2a2218 0%, #1a140e 50%, #120c08 100%),
              radial-gradient(ellipse at 80% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-genius-definition-limits .wall-deep {
  position: absolute; inset: 0 0 35% 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(255,255,255,0.03) 30px, rgba(255,255,255,0.03) 32px);
}
.scn-genius-definition-limits .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 25%; bottom: 40%;
  background: linear-gradient(135deg, #4a3828 0%, #2a1c10 100%);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-genius-definition-limits .bookshelf::before {
  content: ''; position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%;
  background: repeating-linear-gradient(0deg, #6a5240 0px, #6a5240 8px, #3a2a1a 8px, #3a2a1a 10px);
  opacity: 0.6;
}
.scn-genius-definition-limits .lamp-base {
  position: absolute; bottom: 38%; right: 15%; width: 8%; height: 18%;
  background: linear-gradient(135deg, #8a7050 0%, #5a4028 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-genius-definition-limits .lamp-glow {
  position: absolute; bottom: 55%; right: 12%; width: 14%; height: 14%;
  background: radial-gradient(circle, #ffe080 0%, #ffa030 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gl-lamp 4s ease-in-out infinite alternate;
}
.scn-genius-definition-limits .chair {
  position: absolute; bottom: 0; left: 50%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #4a3422 0%, #2a1c0e 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-genius-definition-limits .figure {
  position: absolute; bottom: 10%; left: 52%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #2a1e14 0%, #120c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-figure 8s ease-in-out infinite;
}
.scn-genius-definition-limits .window {
  position: absolute; top: 8%; right: 5%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #1a2240 0%, #0e1428 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-genius-definition-limits .moonlight {
  position: absolute; top: 8%; right: 5%; width: 20%; height: 28%;
  background: radial-gradient(ellipse at 50% 20%, rgba(200,220,255,0.15) 0%, transparent 100%);
  animation: gl-moon 12s ease-in-out infinite alternate;
}
@keyframes gl-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes gl-figure { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.02); } }
@keyframes gl-moon { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* Scene: military-genius-association (ma) */
.scn-military-genius-association {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1c0e 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%);
}
.scn-military-genius-association .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #4a3422 0%, #2a1c0e 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-military-genius-association .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1e0a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-military-genius-association .map {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: ma-map 20s ease-in-out infinite;
}
.scn-military-genius-association .compass {
  position: absolute; bottom: 28%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #704828 0%, #402818 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
  animation: ma-compass 10s linear infinite;
}
.scn-military-genius-association .globe {
  position: absolute; bottom: 30%; right: 25%; width: 12%; height: 16%;
  background: radial-gradient(circle at 35% 30%, #6a8a9a 0%, #2a4a5a 60%, #1a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ma-globe 8s ease-in-out infinite alternate;
}
.scn-military-genius-association .document {
  position: absolute; bottom: 22%; left: 55%; width: 20%; height: 14%;
  background: linear-gradient(135deg, #e8d8c0 0%, #c8b090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: ma-document 6s ease-in-out infinite;
}
.scn-military-genius-association .candle {
  position: absolute; bottom: 18%; left: 10%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
}
.scn-military-genius-association .flame {
  position: absolute; bottom: 36%; left: 10.5%; width: 3%; height: 7%;
  background: radial-gradient(circle, #ffe080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ma-flame 2s ease-in-out infinite alternate;
}
@keyframes ma-map { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes ma-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ma-globe { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(15deg); } 100% { transform: rotateY(0deg); } }
@keyframes ma-document { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ma-flame { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(0.85); opacity: 0.8; } }

/* Scene: prevalence-of-military-genius (pm) */
.scn-prevalence-of-military-genius {
  background: linear-gradient(180deg, #1a1008 0%, #2a1c0e 30%, #1a140e 70%, #0e0a04 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-prevalence-of-military-genius .corridor {
  position: absolute; inset: 0 10% 0 10%;
  background: repeating-linear-gradient(0deg, #2a1c0e 0px, #2a1c0e 40px, #1a1008 40px, #1a1008 42px);
  opacity: 0.3;
}
.scn-prevalence-of-military-genius .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #1a120c 0%, #0e0804 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-prevalence-of-military-genius .figure-far {
  position: absolute; bottom: 5%; left: 35%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #1a120c 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-far 12s ease-in-out infinite;
}
.scn-prevalence-of-military-genius .figure-mid {
  position: absolute; bottom: 5%; left: 46%; width: 9%; height: 30%;
  background: linear-gradient(180deg, #2a1c0e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-mid 10s ease-in-out infinite;
}
.scn-prevalence-of-military-genius .figure-near {
  position: absolute; bottom: 5%; left: 58%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1c0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-near 8s ease-in-out infinite;
}
.scn-prevalence-of-military-genius .lantern {
  position: absolute; bottom: 35%; left: 48%; width: 5%; height: 8%;
  background: linear-gradient(135deg, #c8a050 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: pm-lantern 4s ease-in-out infinite alternate;
}
.scn-prevalence-of-military-genius .lantern-glow {
  position: absolute; bottom: 35%; left: 46%; width: 10%; height: 12%;
  background: radial-gradient(circle, #ffc040 0%, #ffa030 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pm-glow 3s ease-in-out infinite alternate;
}
.scn-prevalence-of-military-genius .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: pm-shadow 10s ease-in-out infinite alternate;
}
@keyframes pm-figure-far { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes pm-figure-mid { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-3px); } }
@keyframes pm-figure-near { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.04) translateY(-4px); } }
@keyframes pm-lantern { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes pm-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes pm-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* soor-retreat-difficulty */
.scn-soor-retreat-difficulty {
  background: linear-gradient(180deg, #7ab0d6 0%, #e3c78a 40%, #f5ecc0 70%, #b8a070 100%), radial-gradient(ellipse at 70% 20%, #f5ecc0 0%, transparent 60%);
}
.scn-soor-retreat-difficulty .sun {
  position: absolute; top: 5%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff5c0 0%, #f0d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #f0d060, 0 0 120px 60px rgba(240, 208, 96, 0.3);
  animation: soor-sunpulse 8s ease-in-out infinite alternate;
}
.scn-soor-retreat-difficulty .smoke-a {
  position: absolute; bottom: 40%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: soor-smoke 12s ease-in-out infinite;
}
.scn-soor-retreat-difficulty .smoke-b {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: soor-smoke 15s ease-in-out infinite reverse;
}
.scn-soor-retreat-difficulty .cannon {
  position: absolute; bottom: 18%; left: 28%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: soor-cannon 10s ease-in-out infinite;
}
.scn-soor-retreat-difficulty .soldier-a {
  position: absolute; bottom: 15%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: soor-soldier 4s ease-in-out infinite;
}
.scn-soor-retreat-difficulty .soldier-b {
  position: absolute; bottom: 15%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: soor-soldier 4.5s ease-in-out infinite reverse;
}
.scn-soor-retreat-difficulty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a3a 0%, #3a4a1a 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
}
.scn-soor-retreat-difficulty .flag {
  position: absolute; bottom: 38%; left: 62%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: bottom left;
  animation: soor-flag 3s ease-in-out infinite;
}
@keyframes soor-sunpulse {
  0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 60px 30px #f0d060; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 80px 40px #f0d060; }
  100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 50px 20px #f0d060; }
}
@keyframes soor-smoke {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(10px, -20px) scale(1.2); opacity: 0.15; }
  100% { transform: translate(-10px, -40px) scale(0.8); opacity: 0; }
}
@keyframes soor-cannon {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(-8deg) translateY(2px); }
}
@keyframes soor-soldier {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(1deg); }
  100% { transform: translateX(32px) rotate(0); }
}
@keyframes soor-flag {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(15deg) scaleX(1.1); }
}

/* the-battle-definition */
.scn-the-battle-definition {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 40%, #1a1a22 100%), radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-the-battle-definition .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-the-battle-definition .book-front {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
}
.scn-the-battle-definition .book-back {
  position: absolute; bottom: 30%; left: 38%; width: 55px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4%;
  transform: rotate(8deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
}
.scn-the-battle-definition .candle {
  position: absolute; bottom: 38%; left: 20%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-the-battle-definition .flame {
  position: absolute; bottom: 55%; left: 20%; width: 16px; height: 24px;
  background: radial-gradient(circle, #f0d060 0%, #e08030 50%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: batdef-flame 2s ease-in-out infinite alternate;
}
.scn-the-battle-definition .scroll {
  position: absolute; bottom: 30%; left: 55%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-10deg);
  animation: batdef-scroll 12s ease-in-out infinite;
}
.scn-the-battle-definition .figure {
  position: absolute; bottom: 20%; left: 60%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: batdef-figure 5s ease-in-out infinite;
}
@keyframes batdef-flame {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scale(1.15) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-4deg); opacity: 0.85; }
}
@keyframes batdef-scroll {
  0%,100% { transform: rotate(-10deg); }
  50% { transform: rotate(-12deg) translateY(2px); }
}
@keyframes batdef-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

/* battle-centre-gravity-war */
.scn-battle-centre-gravity-war {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-battle-centre-gravity-war .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-battle-centre-gravity-war .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-battle-centre-gravity-war .flame-1 {
  position: absolute; bottom: 32%; left: 46%; width: 30px; height: 50px;
  background: radial-gradient(circle, #ffa060 0%, #e06030 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: gravwar-fire 3s ease-in-out infinite alternate;
}
.scn-battle-centre-gravity-war .flame-2 {
  position: absolute; bottom: 30%; left: 52%; width: 25px; height: 40px;
  background: radial-gradient(circle, #ffc080 0%, #e08040 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: gravwar-fire 3.5s ease-in-out infinite alternate-reverse;
}
.scn-battle-centre-gravity-war .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-battle-centre-gravity-war .map {
  position: absolute; bottom: 16%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(135deg, #b0a080 0%, #908060 50%, #706050 100%);
  border-radius: 4%;
  transform: rotate(2deg);
  animation: gravwar-map 20s ease-in-out infinite;
}
.scn-battle-centre-gravity-war .general {
  position: absolute; bottom: 14%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gravwar-general 6s ease-in-out infinite;
}
.scn-battle-centre-gravity-war .candle {
  position: absolute; bottom: 32%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d0b0 0%, #c0a080 100%);
  border-radius: 20% 20% 10% 10%;
}
@keyframes gravwar-fire {
  0% { transform: scale(1) rotate(-3deg); opacity: 0.8; }
  50% { transform: scale(1.2) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(-5deg); opacity: 0.7; }
}
@keyframes gravwar-map {
  0%,100% { transform: rotate(2deg); }
  50% { transform: rotate(4deg) scale(1.02); }
}
@keyframes gravwar-general {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

/* battle-manner-decision-effect */
.scn-battle-manner-decision-effect {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-battle-manner-decision-effect .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%;
  clip-path: polygon(0 100%, 100% 100%, 80% 0, 20% 0);
  animation: decief-chandelier 10s ease-in-out infinite alternate;
}
.scn-battle-manner-decision-effect .table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-battle-manner-decision-effect .document {
  position: absolute; bottom: 30%; left: 28%; width: 70px; height: 40px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 4%;
  transform: rotate(-3deg);
  animation: decief-doc 8s ease-in-out infinite;
}
.scn-battle-manner-decision-effect .inkpot {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-battle-manner-decision-effect .pen {
  position: absolute; bottom: 38%; left: 53%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 10%;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: decief-pen 4s ease-in-out infinite alternate;
}
.scn-battle-manner-decision-effect .hand {
  position: absolute; bottom: 16%; left: 32%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #c0a087 0%, #a08067 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  filter: blur(1px);
}
.scn-battle-manner-decision-effect .seal {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 80%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes decief-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes decief-doc {
  0%,100% { transform: rotate(-3deg); }
  50% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes decief-pen {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(30deg); }
}

/* Scene: flank-positions-1806-chances – dawn, tense */
.scn-flank-positions-1806-chances {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #6a3a1a 40%, #c08030 80%, #f0d090 100%),
    radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-1806-chances .tent-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a1a 50%, #2a1a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: fpc-tent 12s ease-in-out infinite alternate;
}
.scn-flank-positions-1806-chances .dawn-light {
  position: absolute;
  top: 0; left: 20%; right: 20%; bottom: 60%;
  background: linear-gradient(180deg, #ffd090 0%, #ffa050 40%, transparent 100%);
  opacity: 0.5;
  animation: fpc-dawn 8s ease-in-out infinite alternate;
}
.scn-flank-positions-1806-chances .table {
  position: absolute;
  bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4% 4% 10% 10% / 20% 20% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(30deg);
  animation: fpc-table 6s ease-in-out infinite;
}
.scn-flank-positions-1806-chances .map {
  position: absolute;
  bottom: 20%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(135deg, #b8a080 0%, #a08060 50%, #c8a878 100%);
  border-radius: 2%;
  transform: perspective(500px) rotateX(20deg) rotateZ(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-flank-positions-1806-chances .map::after {
  content: '';
  position: absolute;
  inset: 20%;
  background: radial-gradient(circle at 40% 30%, #2a1a0a 0%, transparent 70%);
  opacity: 0.3;
}
.scn-flank-positions-1806-chances .commander {
  position: absolute;
  bottom: 16%; left: 36%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpc-commander 4s ease-in-out infinite;
}
.scn-flank-positions-1806-chances .candle {
  position: absolute;
  bottom: 25%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.4);
  animation: fpc-candle 2s ease-in-out infinite alternate;
}
.scn-flank-positions-1806-chances .shadow-fig {
  position: absolute;
  bottom: 14%; left: 58%; width: 20px; height: 50px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: fpc-shadow 5s ease-in-out infinite alternate;
}

@keyframes fpc-tent {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes fpc-dawn {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(0); }
}
@keyframes fpc-table {
  0% { transform: perspective(400px) rotateX(30deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(30deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(30deg) translateY(1px); }
}
@keyframes fpc-commander {
  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 fpc-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.9; transform: scaleY(0.95); }
}
@keyframes fpc-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(3px); }
  100% { opacity: 0.2; transform: translateX(-2px); }
}

/* Scene: flank-positions-1806-outcome – overcast, tense */
.scn-flank-positions-1806-outcome {
  background:
    linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 30%, #2a2a3a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-1806-outcome .sky-overcast {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, #4a4a5e 40%, transparent 100%);
  animation: fpo-sky 20s ease-in-out infinite alternate;
}
.scn-flank-positions-1806-outcome .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-flank-positions-1806-outcome .flag {
  position: absolute;
  width: 28px; height: 14px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  transform-origin: left center;
}
.scn-flank-positions-1806-outcome .flag-left {
  bottom: 34%; left: 25%;
  animation: fpo-flag-l 6s ease-in-out infinite;
}
.scn-flank-positions-1806-outcome .flag-right {
  bottom: 30%; right: 20%;
  animation: fpo-flag-r 8s ease-in-out infinite reverse;
}
.scn-flank-positions-1806-outcome .corpse {
  position: absolute;
  bottom: 16%; left: 45%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-15deg);
  animation: fpo-corpse 4s ease-in-out infinite alternate;
}
.scn-flank-positions-1806-outcome .smoke {
  position: absolute;
  bottom: 30%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,200,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: fpo-smoke 12s linear infinite;
}

@keyframes fpo-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes fpo-flag-l {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fpo-flag-r {
  0% { transform: rotate(0deg) scaleX(-1); }
  25% { transform: rotate(-10deg) scaleX(-1); }
  50% { transform: rotate(5deg) scaleX(-1); }
  75% { transform: rotate(-15deg) scaleX(-1); }
  100% { transform: rotate(0deg) scaleX(-1); }
}
@keyframes fpo-corpse {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(-12deg) translateY(2px); opacity: 0.9; }
  100% { transform: rotate(-18deg) translateY(-1px); opacity: 0.7; }
}
@keyframes fpo-smoke {
  0% { transform: translateX(-20px) translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(10px) translateY(-15px) scale(1.5); opacity: 0.1; }
  100% { transform: translateX(40px) translateY(-30px) scale(2); opacity: 0; }
}

/* Scene: flank-positions-generalization – bright interior, calm */
.scn-flank-positions-generalization {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc0 50%, #d0c0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-generalization .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%);
  border-bottom: 2px solid #b0a080;
}
.scn-flank-positions-generalization .desk {
  position: absolute;
  bottom: 20%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 2% 2% 8% 8% / 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: perspective(600px) rotateX(10deg);
}
.scn-flank-positions-generalization .chair {
  position: absolute;
  bottom: 16%; left: 25%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fpg-chair 8s ease-in-out infinite alternate;
}
.scn-flank-positions-generalization .bookstack {
  position: absolute;
  bottom: 23%; left: 38%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: fpg-stack 12s ease-in-out infinite alternate;
}
.scn-flank-positions-generalization .papers {
  position: absolute;
  bottom: 24%; left: 50%; width: 40px; height: 4px;
  background: #f0e0c0;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: fpg-paper 14s ease-in-out infinite;
}
.scn-flank-positions-generalization .globe {
  position: absolute;
  bottom: 26%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle at 35% 35%, #6a9a6a 0%, #3a6a3a 70%, #2a5a2a 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: fpg-globe 20s linear infinite;
}
.scn-flank-positions-generalization .window-glow {
  position: absolute;
  top: 10%; left: 65%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #fff8e0 0%, #e8dcc0 100%);
  border-radius: 4%;
  box-shadow: 0 0 30px 10px rgba(255,248,224,0.5);
  animation: fpg-window 10s ease-in-out infinite alternate;
}
.scn-flank-positions-generalization .motes {
  position: absolute;
  top: 20%; left: 50%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.3);
  animation: fpg-mote 18s linear infinite;
}

@keyframes fpg-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes fpg-stack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes fpg-paper {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.7; }
  25% { transform: translateX(5px) rotate(1deg); opacity: 0.9; }
  50% { transform: translateX(-3px) rotate(-2deg); opacity: 0.8; }
  75% { transform: translateX(2px) rotate(0deg); opacity: 0.6; }
  100% { transform: translateX(0) rotate(1deg); opacity: 0.7; }
}
@keyframes fpg-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes fpg-window {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes fpg-mote {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-30px, -20px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(10px, -40px) scale(0.5); opacity: 0; }
}

/* Scene: flank-positions-summary – bright interior, calm */
.scn-flank-positions-summary {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 50%, #c8b898 100%),
    radial-gradient(ellipse at 30% 40%, #fff0e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-flank-positions-summary .room-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 100%);
  border-bottom: 2px solid #a89878;
}
.scn-flank-positions-summary .table-oval {
  position: absolute;
  bottom: 22%; left: 30%; right: 30%; height: 18%;
  background: linear-gradient(135deg, #a89878 0%, #887868 50%, #a09070 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: perspective(500px) rotateX(15deg);
  animation: fps-table 10s ease-in-out infinite alternate;
}
.scn-flank-positions-summary .inkwell {
  position: absolute;
  bottom: 30%; left: 45%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}
.scn-flank-positions-summary .scroll {
  position: absolute;
  bottom: 28%; left: 52%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: fps-scroll 8s ease-in-out infinite;
}
.scn-flank-positions-summary .reader {
  position: absolute;
  bottom: 18%; left: 48%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fps-reader 6s ease-in-out infinite alternate;
}
.scn-flank-positions-summary .reader::after {
  content: '';
  position: absolute;
  top: 20%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(circle, #f0e0c0 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.3;
}
.scn-flank-positions-summary .lamp {
  position: absolute;
  bottom: 30%; left: 60%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 18px 6px #f0d090, 0 0 36px 12px rgba(240,208,144,0.4);
  animation: fps-lamp 3s ease-in-out infinite alternate;
}
.scn-flank-positions-summary .shadow-side {
  position: absolute;
  inset: 0 0 0 0;
  background: radial-gradient(ellipse at 80% 50%, rgba(0,0,0,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: fps-shadow 12s ease-in-out infinite alternate;
}

@keyframes fps-table {
  0% { transform: perspective(500px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(15deg) translateY(-2px); }
  100% { transform: perspective(500px) rotateX(15deg) translateY(1px); }
}
@keyframes fps-scroll {
  0% { transform: rotate(5deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(3deg) translateX(2px); opacity: 1; }
  100% { transform: rotate(6deg) translateX(-1px); opacity: 0.7; }
}
@keyframes fps-reader {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0deg); }
}
@keyframes fps-lamp {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes fps-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* retreat-into-interior-tormassow */
.scn-retreat-into-interior-tormassow { background: linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 100%), radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 70%); }
.scn-retreat-into-interior-tormassow .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #e8dac1 0%, #cbb99a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 0 60px rgba(0,0,0,0.15); }
.scn-retreat-into-interior-tormassow .window { position:absolute; top:8%; left:60%; width:20%; height:30%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border: 6px solid #8b7355; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
.scn-retreat-into-interior-tormassow .hills-out { position:absolute; top:20%; left:62%; width:16%; height:14%; background: linear-gradient(180deg, #6b8e5a 0%, #4a6a3a 100%); border-radius: 50% 50% 0 0; opacity:0.6; }
.scn-retreat-into-interior-tormassow .table { position:absolute; bottom:0; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #8b6f47 0%, #5c4a30 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.3); }
.scn-retreat-into-interior-tormassow .map { position:absolute; bottom:18%; left:30%; width:35%; height:20%; background: linear-gradient(135deg, #f0e6d0 0%, #dac9a8 50%, #f0e6d0 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform: rotate(2deg); animation: torm-map 12s ease-in-out infinite; }
.scn-retreat-into-interior-tormassow .candle { position:absolute; bottom:28%; left:50%; width:4px; height:18px; background: linear-gradient(180deg, #fff8d6 0%, #f4d06f 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #f4d06f, 0 0 40px 12px rgba(244,208,111,0.4); animation: torm-candle 3s ease-in-out infinite alternate; }
.scn-retreat-into-interior-tormassow .commander { position:absolute; bottom:12%; left:20%; width:12%; height:28%; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -4px 0 10px rgba(0,0,0,0.3); transform-origin: bottom center; animation: torm-commander 8s ease-in-out infinite; }
@keyframes torm-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes torm-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.85; transform: scaleY(1); } }
@keyframes torm-commander { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* retreat-into-interior-bragation-phul */
.scn-retreat-into-interior-bragation-phul { background: linear-gradient(180deg, #4a5256 0%, #6e777a 50%, #8f989a 100%), radial-gradient(ellipse at 50% 100%, #5a6365 0%, transparent 70%); }
.scn-retreat-into-interior-bragation-phul .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6b7578 0%, #879295 100%); animation: brag-sky 15s ease-in-out infinite alternate; }
.scn-retreat-into-interior-bragation-phul .cloud-a { position:absolute; top:8%; left:10%; width:25%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(160,170,175,0.7) 0%, rgba(160,170,175,0.1) 100%); filter: blur(4px); animation: brag-drift-a 40s linear infinite; }
.scn-retreat-into-interior-bragation-phul .cloud-b { position:absolute; top:18%; right:5%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(150,160,165,0.6) 0%, rgba(150,160,165,0.05) 100%); filter: blur(3px); animation: brag-drift-b 50s linear infinite reverse; }
.scn-retreat-into-interior-bragation-phul .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a6352 0%, #3e4736 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; }
.scn-retreat-into-interior-bragation-phul .column-left { position:absolute; bottom:30%; left:20%; width:8%; height:25%; background: linear-gradient(90deg, #2c3030 0%, #404848 50%, #2c3030 100%); border-radius: 10% 10% 40% 40%; transform: skewX(-5deg); animation: brag-march-l 6s ease-in-out infinite; }
.scn-retreat-into-interior-bragation-phul .column-right { position:absolute; bottom:30%; right:18%; width:8%; height:25%; background: linear-gradient(90deg, #363a3a 0%, #4a5252 50%, #363a3a 100%); border-radius: 10% 10% 40% 40%; transform: skewX(5deg); animation: brag-march-r 7s ease-in-out infinite; }
.scn-retreat-into-interior-bragation-phul .flags { position:absolute; bottom:52%; left:22%; width:4%; height:10%; background: linear-gradient(180deg, #b8785a 0%, #8a5a3a 100%); clip-path: polygon(0 0, 100% 0, 100% 60%, 0 100%); transform-origin: bottom; animation: brag-flag 2s ease-in-out infinite; }
@keyframes brag-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes brag-drift-a { 0% { transform: translateX(-20vw); } 100% { transform: translateX(120vw); } }
@keyframes brag-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes brag-march-l { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-2px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes brag-march-r { 0% { transform: skewX(5deg) translateY(0); } 50% { transform: skewX(5deg) translateY(-2px); } 100% { transform: skewX(5deg) translateY(0); } }
@keyframes brag-flag { 0% { transform: rotate(-5deg); } 33% { transform: rotate(10deg); } 66% { transform: rotate(-15deg); } 100% { transform: rotate(-5deg); } }

/* retreat-into-interior-recommendation */
.scn-retreat-into-interior-recommendation { background: linear-gradient(180deg, #f2e8d0 0%, #dccfaf 100%), radial-gradient(ellipse at 50% 80%, #fffbe4 0%, transparent 70%); }
.scn-retreat-into-interior-recommendation .desk { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #9a7b58 0%, #6b4f32 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.25); }
.scn-retreat-into-interior-recommendation .paper { position:absolute; bottom:22%; left:35%; width:25%; height:20%; background: linear-gradient(135deg, #fdf6e3 0%, #ebdcc8 50%, #fdf6e3 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transform: rotate(1deg); animation: rec-paper 10s ease-in-out infinite; }
.scn-retreat-into-interior-recommendation .quill { position:absolute; bottom:28%; left:26%; width:3px; height:22px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(15deg); transform-origin: bottom; animation: rec-quill 6s ease-in-out infinite; }
.scn-retreat-into-interior-recommendation .inkwell { position:absolute; bottom:22%; left:22%; width:8px; height:12px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-retreat-into-interior-recommendation .hand { position:absolute; bottom:18%; left:30%; width:12%; height:16%; background: linear-gradient(180deg, #c8a882 0%, #a8805a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: rec-hand 8s ease-in-out infinite; }
.scn-retreat-into-interior-recommendation .candle { position:absolute; bottom:26%; left:65%; width:4px; height:18px; background: linear-gradient(180deg, #fff4c0 0%, #f0c868 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 24px 8px #f0c868, 0 0 48px 16px rgba(240,200,104,0.3); animation: rec-candle 3s ease-in-out infinite alternate; }
@keyframes rec-paper { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(0deg) scale(1.01); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes rec-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes rec-hand { 0% { transform: rotate(-5deg) translateX(0); } 33% { transform: rotate(-8deg) translateX(2px); } 66% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes rec-candle { 0% { opacity:0.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.9; transform: scaleY(1); } }

/* retreat-into-interior-1812-lesson */
.scn-retreat-into-interior-1812-lesson { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4ac 100%), radial-gradient(ellipse at 50% 50%, #faf0e0 0%, transparent 70%); }
.scn-retreat-into-interior-1812-lesson .table-round { position:absolute; bottom:5%; left:15%; right:15%; top:10%; background: linear-gradient(135deg, #8b6f47 0%, #6b4f30 100%); border-radius: 50%; box-shadow: 0 0 40px rgba(0,0,0,0.3), inset 0 0 40px rgba(0,0,0,0.2); }
.scn-retreat-into-interior-1812-lesson .map { position:absolute; bottom:20%; left:30%; right:30%; top:25%; background: linear-gradient(135deg, #f0e6d0 0%, #dac9a8 50%, #f0e6d0 100%); border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,0.2); transform: rotate(3deg); animation: less-map 14s ease-in-out infinite; }
.scn-retreat-into-interior-1812-lesson .hand-left { position:absolute; bottom:18%; left:32%; width:14%; height:18%; background: linear-gradient(180deg, #c8a882 0%, #a8805a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: less-hand-l 8s ease-in-out infinite; }
.scn-retreat-into-interior-1812-lesson .hand-right { position:absolute; bottom:18%; right:32%; width:14%; height:18%; background: linear-gradient(180deg, #c8a882 0%, #a8805a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: less-hand-r 9s ease-in-out infinite; }
.scn-retreat-into-interior-1812-lesson .candle-center { position:absolute; bottom:40%; left:48%; width:6px; height:22px; background: linear-gradient(180deg, #fff4c0 0%, #f0c868 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #f0c868, 0 0 60px 20px rgba(240,200,104,0.3); animation: less-candle 4s ease-in-out infinite alternate; }
.scn-retreat-into-interior-1812-lesson .chair-a { position:absolute; bottom:2%; left:8%; width:12%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 40% 40%; transform: rotate(5deg); animation: less-chair 6s ease-in-out infinite; }
.scn-retreat-into-interior-1812-lesson .chair-b { position:absolute; bottom:2%; right:8%; width:12%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 40% 40%; transform: rotate(-5deg); animation: less-chair 7s ease-in-out infinite reverse; }
@keyframes less-map { 0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(3deg) scale(1); } }
@keyframes less-hand-l { 0% { transform: rotate(10deg) translateX(0); } 33% { transform: rotate(8deg) translateX(-2px); } 66% { transform: rotate(12deg) translateX(1px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes less-hand-r { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes less-candle { 0% { opacity:0.85; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.15); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes less-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-preparations-create-discipline-maintain { background: linear-gradient(180deg, #2e1e14 0%, #1a100a 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%); }
.scn-preparations-create-discipline-maintain .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); animation: prp-wall 12s ease-in-out infinite alternate; }
.scn-preparations-create-discipline-maintain .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0e06 0%, #0d0703 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); }
.scn-preparations-create-discipline-maintain .desk { position:absolute; bottom:18%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a3218 0%, #2a1a0c 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: prp-desk 6s ease-in-out infinite; }
.scn-preparations-create-discipline-maintain .map { position:absolute; bottom:28%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, #c8a060 20%, #ecb878 40%, #b08440 60%, #9a6e30 80%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: prp-map 8s ease-in-out infinite alternate; }
.scn-preparations-create-discipline-maintain .candle { position:absolute; bottom:28%; left:50%; width:10px; height:25px; background: linear-gradient(180deg, #e8d4a0 0%, #c8a050 100%); border-radius: 2px 2px 4px 4px; transform: translateX(-50%); box-shadow: 0 0 6px rgba(200,160,80,.3); }
.scn-preparations-create-discipline-maintain .flame { position:absolute; bottom:48%; left:50%; width:8px; height:16px; transform: translateX(-50%); background: radial-gradient(circle at 50% 0%, #ffd070 0%, #e89830 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,112,.5), 0 0 40px 12px rgba(232,152,48,.2); animation: prp-flame 2s ease-in-out infinite alternate; }
.scn-preparations-create-discipline-maintain .quill { position:absolute; bottom:30%; left:42%; width:6px; height:35px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 0 0 50% 50% / 0 0 60% 60%; transform: rotate(-25deg); transform-origin: bottom center; animation: prp-quill 4s ease-in-out infinite; }
.scn-preparations-create-discipline-maintain .books { position:absolute; bottom:18%; left:65%; width:20%; height:18%; background: repeating-linear-gradient(0deg, #5a3a1a 0px 4px, #4a2a0e 4px 8px, #3a1a0a 8px 12px); border-radius: 1px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: prp-books 10s ease-in-out infinite alternate; }
@keyframes prp-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes prp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes prp-map { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-4deg) scale(.98); } }
@keyframes prp-flame { 0% { transform: translateX(-50%) scaleY(1); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1; } 100% { transform: translateX(-50%) scaleY(.9); opacity:.7; } }
@keyframes prp-quill { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-3px); } 100% { transform: rotate(-28deg) translateY(0); } }
@keyframes prp-books { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-present-theory-the-combat { background: linear-gradient(180deg, #1e1a2e 0%, #14101e 50%, #2a223a 100%), radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%); }
.scn-present-theory-the-combat .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a223a 0%, #1a1424 100%); animation: thc-wall 14s ease-in-out infinite alternate; }
.scn-present-theory-the-combat .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1222 0%, #0e0816 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-present-theory-the-combat .table { position:absolute; bottom:20%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: thc-table 8s ease-in-out infinite; }
.scn-present-theory-the-combat .map { position:absolute; bottom:28%; left:30%; width:40%; height:12%; background: linear-gradient(135deg, #a89878 20%, #c8b888 40%, #b0a070 60%, #908050 80%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: thc-map 10s ease-in-out infinite alternate; }
.scn-present-theory-the-combat .lamp { position:absolute; bottom:32%; left:20%; width:12px; height:28px; background: linear-gradient(180deg, #d0b060 0%, #a08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 8px rgba(160,128,64,.3); }
.scn-present-theory-the-combat .glow { position:absolute; bottom:40%; left:20%; width:60px; height:60px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(232,200,120,.6) 0%, rgba(200,160,80,.2) 40%, transparent 70%); border-radius: 50%; animation: thc-glow 3s ease-in-out infinite alternate; }
.scn-present-theory-the-combat .hand { position:absolute; bottom:30%; left:35%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: thc-hand 5s ease-in-out infinite; }
.scn-present-theory-the-combat .scroll { position:absolute; bottom:32%; left:65%; width:30px; height:8px; background: linear-gradient(180deg, #c8b888 0%, #a09068 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-10deg); animation: thc-scroll 12s ease-in-out infinite alternate; }
@keyframes thc-wall { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes thc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes thc-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(1deg) scale(.98); } }
@keyframes thc-glow { 0% { opacity:.7; transform: translate(-50%,-50%) scale(.9); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity:.8; transform: translate(-50%,-50%) scale(.95); } }
@keyframes thc-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes thc-scroll { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-12deg) translateX(0); } }

.scn-art-of-war-divided-into-tactics-strategy { background: linear-gradient(180deg, #241e14 0%, #1a140e 50%, #2e241c 100%), radial-gradient(ellipse at 50% 65%, #3a2a1a 0%, transparent 70%); }
.scn-art-of-war-divided-into-tactics-strategy .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2e241c 0%, #1e1610 100%); animation: tas-wall 16s ease-in-out infinite alternate; }
.scn-art-of-war-divided-into-tactics-strategy .shelf { position:absolute; top:10%; left:10%; width:80%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-art-of-war-divided-into-tactics-strategy .books-a { position:absolute; top:0; left:12%; width:30%; height:4%; background: repeating-linear-gradient(0deg, #5a3a2a 0px 3px, #4a2a1a 3px 6px, #3a1a0e 6px 9px); border-radius: 1px; transform: translateY(-40px); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tas-books 10s ease-in-out infinite alternate; }
.scn-art-of-war-divided-into-tactics-strategy .books-b { position:absolute; top:0; right:15%; width:25%; height:3%; background: repeating-linear-gradient(0deg, #6a4a3a 0px 2px, #5a3a2a 2px 4px, #4a2a1a 4px 6px); border-radius: 1px; transform: translateY(-30px); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tas-books 12s ease-in-out infinite alternate-reverse; }
.scn-art-of-war-divided-into-tactics-strategy .globe { position:absolute; bottom:25%; left:20%; width:30px; height:30px; background: radial-gradient(circle at 35% 35%, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(20deg); animation: tas-globe 20s linear infinite; }
.scn-art-of-war-divided-into-tactics-strategy .desk { position:absolute; bottom:15%; left:45%; width:50%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: tas-desk 6s ease-in-out infinite; }
.scn-art-of-war-divided-into-tactics-strategy .paper { position:absolute; bottom:22%; left:55%; width:25%; height:8%; background: linear-gradient(135deg, #c8b088 20%, #e8d0a8 40%, #b89870 60%, #a08060 80%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: tas-paper 8s ease-in-out infinite alternate; }
.scn-art-of-war-divided-into-tactics-strategy .candle { position:absolute; bottom:22%; left:42%; width:8px; height:20px; background: linear-gradient(180deg, #e0c890 0%, #c0a060 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px rgba(192,160,96,.3); animation: tas-candle 4s ease-in-out infinite; }
@keyframes tas-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tas-books { 0% { transform: translateY(-40px) scaleY(1); } 50% { transform: translateY(-36px) scaleY(1.05); } 100% { transform: translateY(-40px) scaleY(1); } }
@keyframes tas-globe { 0% { transform: rotate(20deg); } 100% { transform: rotate(380deg); } }
@keyframes tas-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tas-paper { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-6deg) scale(.98); } }
@keyframes tas-candle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-distinction-superfluous-to-some { background: linear-gradient(180deg, #1e181e 0%, #141014 50%, #2a2028 100%), radial-gradient(ellipse at 50% 70%, #3a2a32 0%, transparent 70%); }
.scn-distinction-superfluous-to-some .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2028 0%, #1a141a 100%); animation: sup-wall 18s ease-in-out infinite alternate; }
.scn-distinction-superfluous-to-some .desk { position:absolute; bottom:15%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #4a323a 0%, #2a1a22 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: sup-desk 7s ease-in-out infinite; }
.scn-distinction-superfluous-to-some .chair { position:absolute; bottom:15%; left:20%; width:20%; height:25%; background: linear-gradient(180deg, #4a323a 0%, #2a1a22 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: translateY(-5%); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-distinction-superfluous-to-some .figure { position:absolute; bottom:20%; left:24%; width:15%; height:35%; background: linear-gradient(180deg, #3a2a32 0%, #1a141a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sup-figure 9s ease-in-out infinite; }
.scn-distinction-superfluous-to-some .book { position:absolute; bottom:28%; left:15%; width:20%; height:12%; background: linear-gradient(135deg, #c8b088 20%, #e0c8a0 40%, #b09870 60%, #987058 80%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sup-book 11s ease-in-out infinite alternate; }
.scn-distinction-superfluous-to-some .candle { position:absolute; bottom:28%; left:45%; width:8px; height:22px; background: linear-gradient(180deg, #e0c890 0%, #c0a060 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px rgba(192,160,96,.3); }
.scn-distinction-superfluous-to-some .glow { position:absolute; bottom:40%; left:45%; width:80px; height:80px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(232,200,120,.5) 0%, rgba(200,160,80,.15) 40%, transparent 70%); border-radius: 50%; animation: sup-glow 4s ease-in-out infinite alternate; }
@keyframes sup-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sup-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sup-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes sup-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.03); } 100% { transform: rotate(-3deg) scale(.97); } }
@keyframes sup-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(.95); } }

.scn-defence-of-swamps-local-defence-necessary {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b8a88a 30%, #8a7a5a 60%, #4a3a2a 100%),
    radial-gradient(circle at 30% 20%, #ffe0a0 0%, transparent 50%);
}
.scn-defence-of-swamps-local-defence-necessary .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #c8b898 0%, #9a8a6a 40%, #6a5a3a 80%, #3a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-defence-of-swamps-local-defence-necessary .window { 
  position: absolute; top: 15%; left: 20%; width: 40%; height: 45%; 
  background: linear-gradient(180deg, #a0c8e0 0%, #5a8aaa 40%, #2a4a6a 100%);
  border: 6px solid #5a4a30;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px rgba(200,180,140,0.3);
  animation: s1-window 8s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-local-defence-necessary .swamp-out { 
  position: absolute; bottom: 10%; left: 22%; width: 36%; height: 30%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 40%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: s1-swamp 12s ease-in-out infinite;
}
.scn-defence-of-swamps-local-defence-necessary .guard { 
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 50%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: s1-guard 4s ease-in-out infinite;
}
.scn-defence-of-swamps-local-defence-necessary .lantern { 
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,0.3);
  animation: s1-lantern 3s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-local-defence-necessary .moss { 
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, #2a5a1a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: s1-moss 6s ease-in-out infinite;
}
.scn-defence-of-swamps-local-defence-necessary .mist { 
  position: absolute; top: 30%; left: 15%; width: 70%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: s1-mist 15s linear infinite alternate;
}
@keyframes s1-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes s1-swamp {
  0% { transform: translateY(0) scaleY(1); }
  33% { transform: translateY(-2px) scaleY(1.01); }
  66% { transform: translateY(1px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes s1-guard {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes s1-lantern {
  0% { box-shadow: 0 0 15px 4px #ffb060, 0 0 30px 8px rgba(255,176,96,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 15px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #ffb060, 0 0 35px 10px rgba(255,176,96,0.3); opacity: 0.9; }
}
@keyframes s1-moss {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes s1-mist {
  0% { transform: translateX(-10%) translateY(0); }
  50% { transform: translateX(5%) translateY(-5%); }
  100% { transform: translateX(10%) translateY(0); }
}

.scn-defence-of-swamps-inferior-to-rivers {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #c8c0a8 30%, #a09880 60%, #706050 100%),
    radial-gradient(ellipse at 50% 80%, #d0c8b0 0%, transparent 60%);
}
.scn-defence-of-swamps-inferior-to-rivers .river { 
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9ab8d0 0%, #4a7a9a 50%, #2a4a6a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: s2-river 20s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-inferior-to-rivers .bank-left { 
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 60%, #3a2a0a 100%);
  clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 0% 100%);
  border-radius: 0 40% 0 0;
}
.scn-defence-of-swamps-inferior-to-rivers .bank-right { 
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 60%, #3a2a0a 100%);
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 20% 100%);
  border-radius: 40% 0 0 0;
}
.scn-defence-of-swamps-inferior-to-rivers .water-reflect { 
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.1) 20%, rgba(200,220,240,0.15) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s2-reflect 12s linear infinite;
}
.scn-defence-of-swamps-inferior-to-rivers .boat { 
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s2-boat 8s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-inferior-to-rivers .reeds { 
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 60%, #1a2a0a 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: s2-reeds 4s ease-in-out infinite;
}
.scn-defence-of-swamps-inferior-to-rivers .ripple { 
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: s2-ripple 6s ease-in-out infinite;
}
@keyframes s2-river {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 0%; }
  100% { background-position: -5% 0%; }
}
@keyframes s2-reflect {
  0% { transform: translateY(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateY(2px) scaleY(1.02); opacity: 1; }
  100% { transform: translateY(-1px) scaleY(0.98); opacity: 0.8; }
}
@keyframes s2-boat {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(5px) rotate(1deg); }
  66% { transform: translateX(-3px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s2-reeds {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes s2-ripple {
  0% { transform: scale(1) translateY(0); opacity: 0.5; }
  50% { transform: scale(1.2) translateY(2px); opacity: 0.8; }
  100% { transform: scale(0.9) translateY(-1px); opacity: 0.4; }
}

.scn-defence-of-swamps-indirect-use {
  background: 
    linear-gradient(180deg, #c8d8b0 0%, #a8b890 30%, #80986a 60%, #506840 100%),
    radial-gradient(circle at 70% 20%, #e0f0c0 0%, transparent 50%);
}
.scn-defence-of-swamps-indirect-use .ground { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 60%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
}
.scn-defence-of-swamps-indirect-use .barrier { 
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a1a 50%, #1a0a00 100%);
  clip-path: polygon(0% 100%, 10% 20%, 20% 30%, 30% 10%, 40% 25%, 50% 5%, 60% 20%, 70% 10%, 80% 30%, 90% 15%, 100% 100%);
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
  animation: s3-barrier 10s ease-in-out infinite;
}
.scn-defence-of-swamps-indirect-use .hidden-figure { 
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a3a1a 0%, #0a1a0a 50%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: s3-figure 5s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-indirect-use .bushes { 
  position: absolute; bottom: 25%; left: 10%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a2a 0%, #1a3a0a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: s3-bushes 7s ease-in-out infinite;
}
.scn-defence-of-swamps-indirect-use .shadow { 
  position: absolute; bottom: 0; left: 50%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: s3-shadow 9s ease-in-out infinite;
}
.scn-defence-of-swamps-indirect-use .sun-ray { 
  position: absolute; top: 10%; right: 15%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%);
  filter: blur(4px);
  animation: s3-sunray 12s linear infinite;
}
@keyframes s3-barrier {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-2px); }
  100% { transform: scaleX(0.98) translateY(0); }
}
@keyframes s3-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-2px) translateY(1px) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes s3-bushes {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(3deg); }
  100% { transform: scale(0.95) rotate(-2deg); }
}
@keyframes s3-shadow {
  0% { transform: scaleX(1) opacity: 0.7; }
  50% { transform: scaleX(1.1) opacity: 1; }
  100% { transform: scaleX(0.9) opacity: 0.6; }
}
@keyframes s3-sunray {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateX(10px) rotate(5deg); opacity: 0.5; }
  100% { transform: translateX(-10px) rotate(-5deg); opacity: 0.2; }
}

.scn-defence-of-inundations-intro {
  background: 
    linear-gradient(180deg, #a0b8d0 0%, #7088a0 30%, #406080 60%, #204060 100%),
    radial-gradient(ellipse at 60% 30%, #d0e0f0 0%, transparent 50%);
}
.scn-defence-of-inundations-intro .sky { 
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #80a0c0 0%, #406080 60%, #204060 100%);
  box-shadow: inset 0 40px 60px rgba(0,0,0,0.3);
  animation: s4-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-intro .water { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3078a0 0%, #0850a0 40%, #002060 80%, #001040 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: s4-water 20s ease-in-out infinite;
}
.scn-defence-of-inundations-intro .flooded-tree { 
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(40% 0%, 60% 0%, 70% 20%, 30% 20%, 40% 40%, 20% 60%, 80% 60%, 60% 80%, 50% 100%, 50% 100%);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: s4-tree 6s ease-in-out infinite;
}
.scn-defence-of-inundations-intro .debris { 
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 40% 40% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: s4-debris 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-intro .wave-1 { 
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1) 20%, transparent 40%, rgba(255,255,255,0.05) 60%, transparent 80%);
  filter: blur(2px);
  animation: s4-wave1 10s linear infinite;
}
.scn-defence-of-inundations-intro .wave-2 { 
  position: absolute; bottom: 35%; left: 0; width: 100%; height: 15px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08) 30%, transparent 50%, rgba(255,255,255,0.03) 70%, transparent 100%);
  filter: blur(1px);
  animation: s4-wave2 12s linear infinite reverse;
}
.scn-defence-of-inundations-intro .light-gleam { 
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: s4-gleam 5s ease-in-out infinite alternate;
}
@keyframes s4-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes s4-water {
  0% { transform: translateY(0) scaleY(1); }
  33% { transform: translateY(2px) scaleY(1.01); }
  66% { transform: translateY(-1px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes s4-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes s4-debris {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(5px) rotate(10deg); }
  66% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes s4-wave1 {
  0% { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}
@keyframes s4-wave2 {
  0% { background-position: 0% 0%; }
  100% { background-position: -200% 0%; }
}
@keyframes s4-gleam {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-fighting-determines-arms { background: linear-gradient(180deg, #1e1b18 0%, #3a2e24 30%, #4d3f33 60%, #2a231d 100%), radial-gradient(ellipse at 40% 60%, #5e4a34 0%, transparent 80%); }
.scn-fighting-determines-arms .wall { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, rgba(255,230,180,.08) 30%, transparent 70%); opacity:.6; animation: fda-wall 20s ease-in-out infinite; }
.scn-fighting-determines-arms .shelf { position:absolute; top:25%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #3a2f24 0%, #1f1a15 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-fighting-determines-arms .sword { position:absolute; top:18%; left:20%; width:8px; height:70px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 4px 4px 0 0; transform: rotate(-15deg); transform-origin: 50% 0%; animation: fda-sword 8s ease-in-out infinite alternate; }
.scn-fighting-determines-arms .sword::after { content:''; position:absolute; top:-6px; left:-2px; width:12px; height:12px; background: radial-gradient(circle, #ffcc66 0%, #b08030 100%); border-radius:50%; box-shadow: 0 0 10px 2px #b08030; }
.scn-fighting-determines-arms .shield { position:absolute; top:22%; left:55%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 40%, #6b5040 0%, #3a2a1e 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); transform: rotate(10deg); animation: fda-shield 10s ease-in-out infinite; }
.scn-fighting-determines-arms .candle { position:absolute; bottom:32%; left:45%; width:10px; height:40px; background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #e8b060; animation: fda-candle 4s ease-in-out infinite alternate; }
.scn-fighting-determines-arms .table { position:absolute; bottom:20%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #5a4230 0%, #3a2a1c 100%); border-radius: 8px; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-fighting-determines-arms .figure { position:absolute; bottom:24%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a241e 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fda-figure 6s ease-in-out infinite; }
.scn-fighting-determines-arms .plans { position:absolute; bottom:30%; left:30%; width:50px; height:2px; background: #e0d0b0; border-radius: 1px; box-shadow: 0 8px 0 #e0d0b0, 0 16px 0 #d0c0a0; opacity:.6; animation: fda-plans 12s ease-in-out infinite alternate; }
@keyframes fda-wall { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes fda-sword { 0% { transform: rotate(-15deg) } 100% { transform: rotate(-5deg) } }
@keyframes fda-shield { 0%,100% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } }
@keyframes fda-candle { 0% { transform: scaleY(1); opacity:.9; box-shadow: 0 0 12px 4px #e8b060; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 18px 6px #f0c070; } 100% { transform: scaleY(.95); opacity:.85; box-shadow: 0 0 10px 3px #d8a050; } }
@keyframes fda-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes fda-plans { 0% { opacity:.4 } 100% { opacity:.8 } }

.scn-separating-activities { background: linear-gradient(180deg, #1c1920 0%, #2a2430 40%, #3d3548 70%, #2a2430 100%), radial-gradient(ellipse at 55% 70%, #4a3f55 0%, transparent 80%); }
.scn-separating-activities .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, transparent 0%, rgba(200,180,220,.06) 30%, transparent 70%); animation: saa-wall 25s ease-in-out infinite; }
.scn-separating-activities .desk { position:absolute; bottom:22%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a3c30 0%, #2e241e 100%); border-radius: 6px; box-shadow: inset 0 6px 15px rgba(0,0,0,.6); }
.scn-separating-activities .scroll-left { position:absolute; bottom:35%; left:20%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 30%, #d8c8a0 0%, #a89070 100%); border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: saa-scroll-l 7s ease-in-out infinite alternate; }
.scn-separating-activities .scroll-right { position:absolute; bottom:35%; left:50%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 30%, #d8c8a0 0%, #a89070 100%); border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: saa-scroll-r 7s ease-in-out infinite alternate; }
.scn-separating-activities .divider { position:absolute; bottom:35%; left:45%; width:10%; height:3px; background: linear-gradient(90deg, transparent 0%, #b0a090 50%, transparent 100%); box-shadow: 0 0 6px 1px #b0a090; animation: saa-divider 5s ease-in-out infinite; }
.scn-separating-activities .scholar { position:absolute; bottom:26%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a2430 0%, #181421 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: saa-scholar 8s ease-in-out infinite; }
.scn-separating-activities .lamp { position:absolute; bottom:38%; left:60%; width:8px; height:45px; background: linear-gradient(180deg, #d4b080 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #c0a060; animation: saa-lamp 4s ease-in-out infinite alternate; }
.scn-separating-activities .inkpot { position:absolute; bottom:30%; left:55%; width:14px; height:16px; background: radial-gradient(circle, #302820 0%, #1a1410 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 0 6px #000, 0 2px 4px rgba(0,0,0,.4); animation: saa-ink 12s ease-in-out infinite; }
@keyframes saa-wall { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes saa-scroll-l { 0% { transform: rotate(-5deg) translateY(0) } 100% { transform: rotate(-3deg) translateY(-3px) } }
@keyframes saa-scroll-r { 0% { transform: rotate(5deg) translateY(0) } 100% { transform: rotate(7deg) translateY(-3px) } }
@keyframes saa-divider { 0%,100% { opacity:.4 } 50% { opacity:.8 } }
@keyframes saa-scholar { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes saa-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 18px 4px #c0a060; } 50% { transform: scaleY(1.04); box-shadow: 0 0 28px 8px #d8b070; } 100% { transform: scaleY(.96); box-shadow: 0 0 14px 3px #b09050; } }
@keyframes saa-ink { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }

.scn-art-of-war-conduct-of-war { background: linear-gradient(180deg, #1e1b14 0%, #2e261c 40%, #4a3c28 70%, #2e261c 100%), radial-gradient(ellipse at 50% 65%, #5a4a30 0%, transparent 80%); }
.scn-art-of-war-conduct-of-war .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(180,150,100,.08) 0%, transparent 60%); animation: awc-bg 30s ease-in-out infinite; }
.scn-art-of-war-conduct-of-war .map { position:absolute; bottom:28%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #b8a880 0%, #9a8a6a 100%); border-radius: 4% 4% 20% 20% / 8% 8% 30% 30%; box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.5); animation: awc-map 6s ease-in-out infinite; }
.scn-art-of-war-conduct-of-war .helm { position:absolute; top:15%; left:30%; width:40px; height:35px; background: radial-gradient(ellipse at 50% 60%, #6a5a40 0%, #3a2e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: inset 0 0 12px rgba(0,0,0,.5); transform: rotate(-5deg); animation: awc-helm 8s ease-in-out infinite alternate; }
.scn-art-of-war-conduct-of-war .flag-left { position:absolute; top:10%; left:20%; width:3px; height:40px; background: #4a3a2a; animation: awc-flag-l 10s ease-in-out infinite; }
.scn-art-of-war-conduct-of-war .flag-left::after { content:''; position:absolute; top:-2px; left:3px; width:28px; height:18px; background: linear-gradient(135deg, #6b4a30 0%, #4a3020 100%); border-radius: 0 40% 40% 0; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-art-of-war-conduct-of-war .flag-right { position:absolute; top:12%; left:65%; width:3px; height:35px; background: #4a3a2a; animation: awc-flag-r 10s ease-in-out infinite; }
.scn-art-of-war-conduct-of-war .flag-right::after { content:''; position:absolute; top:-2px; left:-30px; width:28px; height:18px; background: linear-gradient(225deg, #6b4a30 0%, #4a3020 100%); border-radius: 40% 0 0 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-art-of-war-conduct-of-war .commander { position:absolute; bottom:32%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #2a241e 0%, #181410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: awc-commander 7s ease-in-out infinite; }
.scn-art-of-war-conduct-of-war .candle { position:absolute; bottom:35%; left:58%; width:8px; height:35px; background: linear-gradient(180deg, #e0c8a0 0%, #b89870 100%); border-radius: 2px; box-shadow: 0 0 14px 4px #d8b060; animation: awc-candle 4s ease-in-out infinite alternate; }
.scn-art-of-war-conduct-of-war .compass { position:absolute; bottom:40%; left:25%; width:18px; height:18px; background: radial-gradient(circle, #d0b890 0%, #a08860 100%); border-radius:50%; box-shadow: 0 0 8px 2px #b09870; animation: awc-compass 12s linear infinite; }
@keyframes awc-bg { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes awc-map { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes awc-helm { 0% { transform: rotate(-5deg) scale(1) } 100% { transform: rotate(-2deg) scale(1.03) } }
@keyframes awc-flag-l { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } }
@keyframes awc-flag-r { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } }
@keyframes awc-commander { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes awc-candle { 0% { transform: scaleY(1); opacity:.9; box-shadow: 0 0 14px 4px #d8b060; } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 22px 7px #e8c070; } 100% { transform: scaleY(.95); opacity:.85; box-shadow: 0 0 10px 3px #c8a050; } }
@keyframes awc-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-wider-sense-creation-of-troops { background: linear-gradient(180deg, #141418 0%, #202028 40%, #2c2c38 70%, #141418 100%), radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 80%); }
.scn-wider-sense-creation-of-troops .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 30%, rgba(100,100,140,.08) 0%, transparent 60%); animation: wsc-bg 20s ease-in-out infinite; }
.scn-wider-sense-creation-of-troops .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a20 0%, #101014 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-wider-sense-creation-of-troops .troop-1 { position:absolute; bottom:30%; left:10%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a35 0%, #1a1a22 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wsc-troop1 8s ease-in-out infinite; }
.scn-wider-sense-creation-of-troops .troop-2 { position:absolute; bottom:30%; left:26%; width:18px; height:42px; background: linear-gradient(180deg, #2a2a35 0%, #1a1a22 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wsc-troop2 8s ease-in-out infinite 2s; }
.scn-wider-sense-creation-of-troops .troop-3 { position:absolute; bottom:30%; left:42%; width:18px; height:44px; background: linear-gradient(180deg, #2a2a35 0%, #1a1a22 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wsc-troop3 8s ease-in-out infinite 4s; }
.scn-wider-sense-creation-of-troops .troop-4 { position:absolute; bottom:30%; left:58%; width:18px; height:46px; background: linear-gradient(180deg, #2a2a35 0%, #1a1a22 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: wsc-troop4 8s ease-in-out infinite 6s; }
.scn-wider-sense-creation-of-troops .torch { position:absolute; bottom:32%; left:50%; width:6px; height:40px; background: linear-gradient(180deg, #d4b080 0%, #6a5030 100%); border-radius: 2px; box-shadow: 0 0 25px 8px #d4a060; animation: wsc-torch 4s ease-in-out infinite alternate; }
.scn-wider-sense-creation-of-troops .smoke { position:absolute; top:10%; left:45%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,130,.3) 0%, transparent 70%); filter: blur(6px); animation: wsc-smoke 15s linear infinite; }
@keyframes wsc-bg { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes wsc-troop1 { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes wsc-troop2 { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes wsc-troop3 { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } }
@keyframes wsc-troop4 { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes wsc-torch { 0% { transform: scaleY(1); box-shadow: 0 0 20px 6px #d4a060; } 50% { transform: scaleY(1.06); box-shadow: 0 0 35px 12px #e8b070; } 100% { transform: scaleY(.94); box-shadow: 0 0 15px 4px #c09050; } }
@keyframes wsc-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.6; } 50% { transform: translateY(-20px) translateX(10px) scale(1.3); opacity:.3; } 100% { transform: translateY(-40px) translateX(-5px) scale(1.6); opacity:0; } }

/* scene: death-cholera */
.scn-brief-memoir-death-cholera {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 50%, #3a2a40 100%),
    radial-gradient(ellipse at 20% 80%, #4a3a4e 0%, transparent 70%);
}
.scn-brief-memoir-death-cholera .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2234 0%, #1a1220 100%);
  border-radius: 0 0 10% 10%;
}
.scn-brief-memoir-death-cholera .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-brief-memoir-death-cholera .bed {
  position: absolute; bottom: 18%; left: 50%; width: 70%; height: 16%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-brief-memoir-death-cholera .sheet {
  position: absolute; bottom: 20%; left: 52%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #a08070 0%, #7a6050 100%);
  border-radius: 10% 50% 20% 10%;
  filter: blur(1px);
  animation: dc-sheet 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-death-cholera .figure {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-death-cholera .candle {
  position: absolute; bottom: 38%; left: 25%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #d0a040 0%, #a07020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,150,60,0.3);
  animation: dc-candle 2s ease-in-out infinite alternate;
}
.scn-brief-memoir-death-cholera .glow {
  position: absolute; bottom: 36%; left: 22%; width: 8%; height: 12%;
  background: radial-gradient(circle, rgba(200,160,80,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dc-glow 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-death-cholera .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes dc-sheet {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(3%) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(0) rotate(-1deg); opacity: 0.8; }
}
@keyframes dc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dc-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 dc-glow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

/* scene: writings-fame */
.scn-brief-memoir-writings-fame {
  background:
    linear-gradient(180deg, #1a1820 0%, #2c2834 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-brief-memoir-writings-fame .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2834 0%, #1a1820 100%);
}
.scn-brief-memoir-writings-fame .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-brief-memoir-writings-fame .book-stack {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: wf-stack 6s ease-in-out infinite alternate;
}
.scn-brief-memoir-writings-fame .open-book {
  position: absolute; bottom: 22%; left: 40%; width: 30%; height: 10%;
  background: linear-gradient(90deg, #c0a080 0%, #a08060 50%, #c0a080 100%);
  border-radius: 10% 10% 2% 2%;
  transform: perspective(400px) rotateX(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: wf-book 10s ease-in-out infinite alternate;
}
.scn-brief-memoir-writings-fame .lamp {
  position: absolute; bottom: 38%; left: 60%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-brief-memoir-writings-fame .lamp-glow {
  position: absolute; bottom: 34%; left: 56%; width: 16%; height: 20%;
  background: radial-gradient(circle, rgba(220,200,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: wf-glow 4s ease-in-out infinite alternate;
}
.scn-brief-memoir-writings-fame .quill {
  position: absolute; bottom: 28%; left: 45%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: wf-quill 8s ease-in-out infinite alternate;
}
@keyframes wf-stack {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2%) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes wf-book {
  0% { transform: perspective(400px) rotateX(-5deg) translateX(0); }
  50% { transform: perspective(400px) rotateX(-2deg) translateX(1%); }
  100% { transform: perspective(400px) rotateX(-5deg) translateX(0); }
}
@keyframes wf-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes wf-quill {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(5%) translateY(-2%); }
  100% { transform: rotate(-15deg) translateX(0); }
}

/* scene: translator-signature */
.scn-translator-signature {
  background:
    linear-gradient(180deg, #1a1a22 0%, #2a2a34 50%, #3a2a2a 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-translator-signature .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-translator-signature .paper {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(2deg);
}
.scn-translator-signature .inkwell {
  position: absolute; bottom: 25%; left: 60%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
}
.scn-translator-signature .quill {
  position: absolute; bottom: 28%; left: 35%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: 50% 100%;
  animation: ts-quill 6s ease-in-out infinite alternate;
}
.scn-translator-signature .hand {
  position: absolute; bottom: 23%; left: 32%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #8a7060 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom right;
  animation: ts-hand 6s ease-in-out infinite alternate;
}
.scn-translator-signature .shadow-hand {
  position: absolute; bottom: 22%; left: 31%; width: 10%; height: 14%;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  filter: blur(2px);
  animation: ts-hand 6s ease-in-out infinite alternate;
  z-index: -1;
}
.scn-translator-signature .candle {
  position: absolute; bottom: 32%; left: 20%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #d0a040 0%, #a07020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(200,150,60,0.3);
  animation: ts-candle 2s ease-in-out infinite alternate;
}
.scn-translator-signature .candle-glow {
  position: absolute; bottom: 28%; left: 16%; width: 12%; height: 16%;
  background: radial-gradient(circle, rgba(200,160,80,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: ts-glow 3s ease-in-out infinite alternate;
}
@keyframes ts-quill {
  0% { transform: rotate(-20deg) translateX(0) translateY(0); }
  50% { transform: rotate(-10deg) translateX(4%) translateY(-3%); }
  100% { transform: rotate(-20deg) translateX(0) translateY(0); }
}
@keyframes ts-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes ts-candle {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.9; }
  50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; }
}
@keyframes ts-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.15); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* scene: on-the-nature-of-war-title */
.scn-on-the-nature-of-war-title {
  background:
    linear-gradient(180deg, #1a1820 0%, #2c2830 50%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-on-the-nature-of-war-title .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2832 0%, #1a1820 100%);
}
.scn-on-the-nature-of-war-title .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-on-the-nature-of-war-title .open-book {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(-5deg);
  animation: nw-book 12s ease-in-out infinite alternate;
}
.scn-on-the-nature-of-war-title .left-page {
  position: absolute; bottom: 22%; left: 26%; width: 22%; height: 14%;
  background: linear-gradient(90deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 2% 0 0 2%;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.2);
  transform: skewY(-2deg);
}
.scn-on-the-nature-of-war-title .right-page {
  position: absolute; bottom: 22%; right: 26%; width: 22%; height: 14%;
  background: linear-gradient(90deg, #c0a080 0%, #e0d0b0 100%);
  border-radius: 0 2% 2% 0;
  box-shadow: inset 2px 0 4px rgba(0,0,0,0.2);
  transform: skewY(2deg);
}
.scn-on-the-nature-of-war-title .emblem {
  position: absolute; bottom: 27%; left: 50%; width: 10%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a08060 0%, #604030 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,128,96,0.3);
  animation: nw-emblem 8s ease-in-out infinite alternate;
}
.scn-on-the-nature-of-war-title .lamp {
  position: absolute; bottom: 35%; left: 55%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-on-the-nature-of-war-title .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 18%; height: 22%;
  background: radial-gradient(circle, rgba(220,200,160,0.25) 0%, transparent 70%);
  filter: blur(6px);
  border-radius: 50%;
  animation: nw-lamp-glow 5s ease-in-out infinite alternate;
}
@keyframes nw-book {
  0% { transform: perspective(500px) rotateX(-5deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(-3deg) translateY(-2%); }
  100% { transform: perspective(500px) rotateX(-5deg) translateY(0); }
}
@keyframes nw-emblem {
  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.95); }
}
@keyframes nw-lamp-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

.scn-defence-mountains-valley-danger-cut-off {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #6a7a8a 0%, transparent 60%);
}
.scn-defence-mountains-valley-danger-cut-off .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, transparent 100%);
  animation: dmg-sky 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-danger-cut-off .mountains-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 60% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.4);
  animation: dmg-mountain-back 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-danger-cut-off .mountains-mid {
  position: absolute; bottom: 25%; left: 15%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: dmg-mountain-mid 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-danger-cut-off .stream-bed {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: dmg-stream 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-danger-cut-off .barricade {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: dmg-barricade 6s ease-in-out infinite;
}
.scn-defence-mountains-valley-danger-cut-off .figures-advance {
  position: absolute; bottom: 14%; left: 50%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dmg-figures 3s ease-in-out infinite;
}
.scn-defence-mountains-valley-danger-cut-off .flag {
  position: absolute; bottom: 22%; left: 42%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  clip-path: polygon(0 0, 100% 30%, 100% 70%, 0 100%);
  animation: dmg-flag 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-danger-cut-off .shadow-veil {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 70%);
  animation: dmg-veil 8s ease-in-out infinite alternate;
}
@keyframes dmg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes dmg-mountain-back { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes dmg-mountain-mid { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes dmg-stream { 0% { opacity:.8; background-position: 0 0 } 50% { opacity:1; background-position: 10px 0 } 100% { opacity:.9; background-position: 0 0 } }
@keyframes dmg-barricade { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes dmg-figures { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(10px) rotate(-1deg) } 70% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dmg-flag { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes dmg-veil { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-defence-mountains-division-of-troops {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b090 100%),
    radial-gradient(circle at 50% 60%, #f0e8d8 0%, transparent 70%);
}
.scn-defence-mountains-division-of-troops .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #9a8060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.15);
}
.scn-defence-mountains-division-of-troops .room-wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #c0b090 100%);
  border-bottom: 4px solid #9a8060;
  animation: dmt-wall 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-division-of-troops .room-wall-left {
  position: absolute; top: 0; left: 0; bottom: 30%; width: 15%;
  background: linear-gradient(90deg, #c8b898 0%, #b8a888 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,.1);
}
.scn-defence-mountains-division-of-troops .central-table {
  position: absolute; bottom: 22%; left: 30%; right: 30%; height: 16%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  animation: dmt-table 6s ease-in-out infinite;
}
.scn-defence-mountains-division-of-troops .map-on-table {
  position: absolute; bottom: 28%; left: 32%; right: 32%; height: 8%;
  background: linear-gradient(135deg, #f0e0c0 0%, #e0c8a0 50%, #d0b090 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.1);
  animation: dmt-map 9s ease-in-out infinite alternate;
}
.scn-defence-mountains-division-of-troops .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmt-figure-l 4s ease-in-out infinite;
}
.scn-defence-mountains-division-of-troops .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmt-figure-r 4s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-defence-mountains-division-of-troops .window-light {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: dmt-light 7s ease-in-out infinite alternate;
}
@keyframes dmt-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dmt-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dmt-map { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes dmt-figure-l { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(3px) rotate(-1deg) } 66% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dmt-figure-r { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-3px) rotate(1deg) } 66% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dmt-light { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }

.scn-defence-mountains-posts-connection {
  background: 
    linear-gradient(180deg, #c8b898 0%, #b8a888 50%, #a89878 100%),
    radial-gradient(circle at 50% 80%, #d8c8a8 0%, transparent 60%);
}
.scn-defence-mountains-posts-connection .corridor-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c0b090 0%, #b0a080 50%, #a09070 100%);
  border-bottom: 6px solid #8a7a5a;
  animation: dmp-wall 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-posts-connection .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a89878 0%, #8a7a5a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.1);
}
.scn-defence-mountains-posts-connection .door-left {
  position: absolute; bottom: 12%; left: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,.3);
  animation: dmp-door-l 5s ease-in-out infinite;
}
.scn-defence-mountains-posts-connection .door-right {
  position: absolute; bottom: 12%; right: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,.3);
  animation: dmp-door-r 5s ease-in-out infinite;
  animation-delay: 2.5s;
}
.scn-defence-mountains-posts-connection .lantern-ceiling {
  position: absolute; top: 5%; left: 50%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f0d060 0%, #c09030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(192,144,48,.5);
  transform: translateX(-50%);
  animation: dmp-lantern 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-posts-connection .map-stand {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: dmp-stand 8s ease-in-out infinite;
}
.scn-defence-mountains-posts-connection .pin-green {
  position: absolute; bottom: 48%; left: 45%; width: 2%; height: 2%;
  background: radial-gradient(circle, #70a070 0%, #406040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(112,160,112,.5);
  animation: dmp-pin-g 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-posts-connection .pin-blue {
  position: absolute; bottom: 52%; left: 52%; width: 2%; height: 2%;
  background: radial-gradient(circle, #6090b0 0%, #306070 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(96,144,176,.5);
  animation: dmp-pin-b 3.5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-defence-mountains-posts-connection .connecting-line {
  position: absolute; bottom: 49%; left: 47%; width: 6%; height: 0.5%;
  background: linear-gradient(90deg, #70a070 0%, #6090b0 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: dmp-line 6s ease-in-out infinite;
}
@keyframes dmp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dmp-door-l { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.1) } }
@keyframes dmp-door-r { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.1) } }
@keyframes dmp-lantern { 0% { opacity:.7; transform: translateX(-50%) rotate(-3deg) } 50% { opacity:1; transform: translateX(-50%) rotate(3deg) } 100% { opacity:.8; transform: translateX(-50%) rotate(-1deg) } }
@keyframes dmp-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dmp-pin-g { 0% { transform: scale(1) } 100% { transform: scale(1.3) } }
@keyframes dmp-pin-b { 0% { transform: scale(1) } 100% { transform: scale(1.3) } }
@keyframes dmp-line { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-defence-mountains-inaccessibility-division {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #c0b090 40%, #a89878 100%),
    radial-gradient(circle at 50% 30%, #e8dcc8 0%, transparent 60%);
}
.scn-defence-mountains-inaccessibility-division .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.1);
}
.scn-defence-mountains-inaccessibility-division .hall-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #c8b898 0%, #b8a888 50%, #c8b898 100%);
  border-bottom: 4px solid #908060;
  animation: dmi-wall 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-inaccessibility-division .divider-curtain {
  position: absolute; top: 0; bottom: 25%; left: 45%; right: 45%;
  background: linear-gradient(180deg, #9a8060 0%, #8a7050 100%);
  border-radius: 2%;
  box-shadow: 0 0 12px rgba(0,0,0,.2);
  animation: dmi-curtain 8s ease-in-out infinite;
}
.scn-defence-mountains-inaccessibility-division .group-left {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmi-group-l 6s ease-in-out infinite;
}
.scn-defence-mountains-inaccessibility-division .group-right {
  position: absolute; bottom: 20%; right: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmi-group-r 6s ease-in-out infinite;
  animation-delay: 3s;
}
.scn-defence-mountains-inaccessibility-division .overhead-light {
  position: absolute; top: 2%; left: 50%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,255,220,.6) 0%, transparent 70%);
  filter: blur(20px);
  transform: translateX(-50%);
  animation: dmi-light 9s ease-in-out infinite alternate;
}
.scn-defence-mountains-inaccessibility-division .shadow-strip {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%);
  animation: dmi-shadow 5s ease-in-out infinite alternate;
}
@keyframes dmi-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dmi-curtain { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes dmi-group-l { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(-1deg) } 70% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dmi-group-r { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-5px) rotate(1deg) } 70% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dmi-light { 0% { opacity:.3; transform: translateX(-50%) scale(1) } 50% { opacity:.5; transform: translateX(-50%) scale(1.2) } 100% { opacity:.4; transform: translateX(-50%) scale(1) } }
@keyframes dmi-shadow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.3 } }

.scn-ip { background: linear-gradient(145deg, #2a1f1a 0%, #3d2b24 40%, #4c382e 100%), radial-gradient(ellipse at 40% 60%, #b8956a 0%, transparent 60%); }
.scn-ip .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f1a 0%, #3d2b24 70%, transparent 100%); }
.scn-ip .bg-mid { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, transparent 0%, #2a1f1a 80%); }
.scn-ip .table { position:absolute; bottom:12%; left:25%; right:25%; height:8%; background: #4a362e; border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-ip .lamp { position:absolute; bottom:30%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #e8c88a 0%, #b07a3a 70%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 8px #b07a3a, 0 0 40px 16px rgba(176,122,58,.4); animation: ip-lamp 3s ease-in-out infinite alternate; }
.scn-ip .fig-left { position:absolute; bottom:20%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #1a1210 0%, #0d0908 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom; animation: ip-fig-left 6s ease-in-out infinite; }
.scn-ip .fig-right { position:absolute; bottom:20%; right:20%; width:22px; height:38px; background: linear-gradient(180deg, #1a1210 0%, #0d0908 100%); border-radius:50% 45% 40% 40% / 60% 55% 40% 40%; transform-origin: bottom; animation: ip-fig-right 8s ease-in-out infinite; }
.scn-ip .map { position:absolute; bottom:15%; left:38%; width:40px; height:20px; background: #6a5a4a; border-radius:4px; transform: scale(1) rotate(-3deg); animation: ip-map 4s ease-in-out infinite; }
@keyframes ip-lamp { 0% { box-shadow: 0 0 15px 5px #b07a3a, 0 0 30px 10px rgba(176,122,58,.3); } 50% { box-shadow: 0 0 25px 10px #d4a050, 0 0 50px 20px rgba(212,160,80,.5); } 100% { box-shadow: 0 0 18px 6px #b07a3a, 0 0 35px 12px rgba(176,122,58,.35); } }
@keyframes ip-fig-left { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes ip-fig-right { 0%,100% { transform: rotate(0deg) translateX(0) scaleY(1); } 50% { transform: rotate(-1deg) translateX(-2px) scaleY(1.02); } }
@keyframes ip-map { 0%,100% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.03) rotate(2deg); } }

.scn-tkc { background: linear-gradient(180deg, #1f1b2a 0%, #2c2538 50%, #3a2f44 100%), radial-gradient(ellipse at 40% 70%, #6b5b7a 0%, transparent 70%); }
.scn-tkc .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2c2538 0%, #1f1b2a 100%); }
.scn-tkc .window { position:absolute; top:10%; left:15%; width:60px; height:80px; background: linear-gradient(135deg, #4a3b5a 0%, #3a2f44 100%); border:3px solid #2a1f2e; border-radius:8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: tkc-window 8s ease-in-out infinite alternate; }
.scn-tkc .fig-physical { position:absolute; bottom:15%; left:18%; width:28px; height:50px; background: linear-gradient(180deg, #1a1622 0%, #0e0b14 100%); border-radius:45% 40% 35% 35% / 55% 50% 40% 40%; transform-origin: bottom; animation: tkc-phys 5s ease-in-out infinite; }
.scn-tkc .fig-moral { position:absolute; bottom:12%; right:20%; width:24px; height:36px; background: linear-gradient(180deg, #1a1622 0%, #0e0b14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tkc-moral 6s ease-in-out infinite; }
.scn-tkc .shield { position:absolute; bottom:25%; left:22%; width:16px; height:20px; background: #4a3f5a; border-radius:30%; transform: scaleX(0.6); animation: tkc-shield 5s ease-in-out infinite alternate; }
.scn-tkc .book { position:absolute; bottom:18%; right:25%; width:10px; height:14px; background: #6b5b7a; border-radius:2px; animation: tkc-book 6s ease-in-out infinite alternate; }
.scn-tkc .beam { position:absolute; top:12%; left:30%; width:8px; height:70%; background: linear-gradient(180deg, rgba(150,130,180,.2) 0%, transparent 100%); transform: rotate(15deg); transform-origin: top; animation: tkc-beam 12s ease-in-out infinite; }
@keyframes tkc-window { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes tkc-phys { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes tkc-moral { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } }
@keyframes tkc-shield { 0% { transform: scaleX(.6) translateY(0); } 100% { transform: scaleX(.65) translateY(-5px); } }
@keyframes tkc-book { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-3px) rotate(10deg); } }
@keyframes tkc-beam { 0% { opacity:.2; transform: rotate(12deg); } 50% { opacity:.4; transform: rotate(18deg); } 100% { opacity:.3; transform: rotate(14deg); } }

.scn-ci { background: linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #3a2a20 100%), radial-gradient(ellipse at 60% 30%, #8a7050 0%, transparent 70%); }
.scn-ci .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e18 0%, #1c1410 100%); }
.scn-ci .figure { position:absolute; bottom:10%; left:50%; width:30px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #0d0a08 0%, #1a1210 100%); border-radius:50% 45% 40% 40% / 60% 55% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: ci-figure 7s ease-in-out infinite; }
.scn-ci .lantern { position:absolute; bottom:40%; left:45%; width:8px; height:10px; background: radial-gradient(circle, #d4a050 0%, #8a6030 70%); border-radius:40%; box-shadow: 0 0 20px 8px #8a6030; animation: ci-lantern 4s ease-in-out infinite alternate; }
.scn-ci .shadow { position:absolute; bottom:10%; left:30%; width:80px; height:30px; background: rgba(0,0,0,.6); border-radius:50%; transform: skewX(-20deg); animation: ci-shadow 9s ease-in-out infinite; }
.scn-ci .floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, transparent 0%, #2a1e18 100%); }
.scn-ci .column { position:absolute; top:0; left:15%; width:10px; bottom:12%; background: linear-gradient(180deg, #3a2a20 0%, #1c1410 100%); border-radius:6px; box-shadow: 2px 0 4px rgba(0,0,0,.5); animation: ci-column 11s ease-in-out infinite alternate; }
.scn-ci .motive-symbol { position:absolute; top:25%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #b8956a 0%, transparent 70%); border-radius:50%; opacity:.6; animation: ci-motive 8s ease-in-out infinite; }
@keyframes ci-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } }
@keyframes ci-lantern { 0% { box-shadow: 0 0 15px 4px #8a6030; } 100% { box-shadow: 0 0 30px 12px #d4a050; } }
@keyframes ci-shadow { 0%,100% { opacity:.5; transform: skewX(-20deg) scaleX(1); } 50% { opacity:.7; transform: skewX(-18deg) scaleX(1.05); } }
@keyframes ci-column { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.02); } }
@keyframes ci-motive { 0%,100% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } }

.scn-tka { background: linear-gradient(180deg, #1a1a1e 0%, #2c2a30 40%, #3a383e 100%), radial-gradient(ellipse at 50% 80%, #5a4e56 0%, transparent 60%); }
.scn-tka .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c2a30 0%, #1a1a1e 100%); }
.scn-tka .fig-firm { position:absolute; bottom:12%; left:20%; width:26px; height:48px; background: linear-gradient(180deg, #0e0c10 0%, #1a161c 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom; animation: tka-firm 5s ease-in-out infinite; }
.scn-tka .fig-bold { position:absolute; bottom:10%; right:18%; width:28px; height:50px; background: linear-gradient(180deg, #0e0c10 0%, #1a161c 100%); border-radius:45% 40% 35% 35% / 55% 50% 40% 40%; transform-origin: bottom; animation: tka-bold 6s ease-in-out infinite; }
.scn-tka .post { position:absolute; bottom:5%; left:50%; width:6px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a383e 0%, #1a1a1e 100%); border-radius:3px; }
.scn-tka .mat { position:absolute; bottom:0; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a383e 0%, #2c2a30 100%); border-radius:8px 8px 0 0; }
.scn-tka .dust-a { position:absolute; top:30%; left:10%; width:6px; height:6px; background: rgba(255,255,255,.08); border-radius:50%; filter:blur(2px); animation: tka-dust 10s linear infinite; }
.scn-tka .dust-b { position:absolute; top:40%; right:15%; width:4px; height:4px; background: rgba(255,255,255,.05); border-radius:50%; filter:blur(1px); animation: tka-dust 15s linear infinite reverse; }
.scn-tka .candle { position:absolute; bottom:50%; left:50%; width:4px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #d4a050 30%, #8a6030 100%); border-radius:2px; box-shadow: 0 0 10px 4px #d4a050; animation: tka-candle 3s ease-in-out infinite alternate; }
@keyframes tka-firm { 0%,100% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(-2px) rotate(-0.5deg) scaleY(1.01); } }
@keyframes tka-bold { 0% { transform: translateY(0) rotate(-2deg) translateX(0); } 25% { transform: translateY(-6px) rotate(3deg) translateX(4px); } 50% { transform: translateY(-3px) rotate(0deg) translateX(8px); } 75% { transform: translateY(-8px) rotate(-3deg) translateX(12px); } 100% { transform: translateY(0) rotate(2deg) translateX(16px); } }
@keyframes tka-dust { 0% { transform: translate(0,0); opacity:.1; } 100% { transform: translate(80px, -60px); opacity:0; } }
@keyframes tka-candle { 0% { box-shadow: 0 0 8px 2px #d4a050; } 100% { box-shadow: 0 0 20px 8px #d4a050; } }

.scn-defence-mountains-post-composition {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d4b8 50%, #d9bfa0 100%),
              radial-gradient(ellipse at 50% 30%, #fef8f0 0%, transparent 70%);
}
.scn-defence-mountains-post-composition .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f8efe4 0%, #e2d0b8 100%); }
.scn-defence-mountains-post-composition .window { position:absolute; top:8%; left:20%; width:120px; height:160px; background: linear-gradient(180deg, #a8c8e8 0%, #7da0c0 60%, #5a7a9a 100%); border-radius:30px 30px 10px 10px; box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 4px 12px rgba(0,0,0,.2); animation: dmp-window 12s ease-in-out infinite alternate; }
.scn-defence-mountains-post-composition .mountains { position:absolute; bottom:35%; left:10%; right:10%; height:80px; background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: dmp-mtn 20s ease-in-out infinite alternate; }
.scn-defence-mountains-post-composition .desk { position:absolute; bottom:12%; left:15%; right:15%; height:40px; background: linear-gradient(180deg, #8b6f47 0%, #6a5030 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-defence-mountains-post-composition .map { position:absolute; bottom:18%; left:30%; right:30%; height:30px; background: linear-gradient(180deg, #d4b896 0%, #bfa07a 100%); border-radius: 4px; transform: perspective(300px) rotateX(30deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dmp-map 8s ease-in-out infinite; }
.scn-defence-mountains-post-composition .candle { position:absolute; bottom:28%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #f0d8a0 0%, #e0c080 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 6px rgba(255,200,80,.6); animation: dmp-candle 2s ease-in-out infinite; }
.scn-defence-mountains-post-composition .figure { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dmp-figure 5s ease-in-out infinite; }
@keyframes dmp-window { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.85; transform: scaleY(.98); } }
@keyframes dmp-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes dmp-map { 0%,100% { transform: perspective(300px) rotateX(30deg) translateY(0); } 50% { transform: perspective(300px) rotateX(30deg) translateY(-1px); } }
@keyframes dmp-candle { 0% { box-shadow: 0 0 20px 6px rgba(255,200,80,.6); transform: scaleY(1); } 30% { box-shadow: 0 0 30px 10px rgba(255,200,80,.8); transform: scaleY(1.05); } 60% { box-shadow: 0 0 15px 4px rgba(255,200,80,.5); transform: scaleY(.95); } 100% { box-shadow: 0 0 20px 6px rgba(255,200,80,.6); transform: scaleY(1); } }
@keyframes dmp-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }

.scn-defence-mountains-local-resistance {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0e05 100%),
              radial-gradient(ellipse at 40% 60%, #f0c060 0%, transparent 50%);
}
.scn-defence-mountains-local-resistance .bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-defence-mountains-local-resistance .barricade { position:absolute; bottom:20%; left:20%; width:100px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10px 10px 4px 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: dml-barricade 6s ease-in-out infinite; }
.scn-defence-mountains-local-resistance .figure { position:absolute; bottom:25%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dml-figure 0.8s ease-in-out infinite; }
.scn-defence-mountains-local-resistance .lantern { position:absolute; top:30%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #b08020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(240,192,96,.7); animation: dml-lantern 3s ease-in-out infinite; }
.scn-defence-mountains-local-resistance .shadow { position:absolute; bottom:20%; left:38%; width:30px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: dml-shadow 0.8s ease-in-out infinite; }
.scn-defence-mountains-local-resistance .beam { position:absolute; top:30%; left:60%; width:200px; height:200px; background: radial-gradient(ellipse at 0% 0%, rgba(255,255,200,.15) 0%, transparent 70%); transform: rotate(-30deg); transform-origin: top left; animation: dml-beam 3s ease-in-out infinite; }
@keyframes dml-barricade { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dml-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-1px) rotate(1deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } }
@keyframes dml-lantern { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes dml-shadow { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(2px); } }
@keyframes dml-beam { 0%,100% { opacity: .6; } 50% { opacity: 1; } }

.scn-defence-of-streams-rivers-intro {
  background: linear-gradient(180deg, #f0e6d6 0%, #e0d0b8 50%, #cbb89a 100%),
              radial-gradient(ellipse at 50% 20%, #fcf8f0 0%, transparent 70%);
}
.scn-defence-of-streams-rivers-intro .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f5ede0 0%, #decab0 100%); }
.scn-defence-of-streams-rivers-intro .window { position:absolute; top:8%; left:25%; width:140px; height:180px; background: linear-gradient(180deg, #b8d8e8 0%, #8ab0c8 60%, #6090a8 100%); border-radius: 50% 50% 10px 10px / 60% 60% 10px 10px; box-shadow: inset 0 0 30px rgba(255,255,255,.4), 0 4px 12px rgba(0,0,0,.15); animation: dsr-window 15s ease-in-out infinite alternate; }
.scn-defence-of-streams-rivers-intro .river { position:absolute; bottom:40%; left:15%; right:15%; height:60px; background: linear-gradient(180deg, #7ab8d0 0%, #4a8aa0 100%); border-radius: 60% 40% 0 0 / 80% 80% 0 0; animation: dsr-river 25s linear infinite; }
.scn-defence-of-streams-rivers-intro .bridge { position:absolute; bottom:45%; left:30%; right:30%; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: dsr-bridge 10s ease-in-out infinite; }
.scn-defence-of-streams-rivers-intro .figure { position:absolute; bottom:22%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsr-figure 6s ease-in-out infinite; }
.scn-defence-of-streams-rivers-intro .curtain { position:absolute; top:8%; left:18%; width:30px; height:180px; background: linear-gradient(180deg, #e0c8a8 0%, #b89878 100%); border-radius: 10px; filter: blur(1px); animation: dsr-curtain 14s ease-in-out infinite; }
@keyframes dsr-window { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dsr-river { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }
@keyframes dsr-bridge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dsr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes dsr-curtain { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }

.scn-defence-of-streams-combination {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 60% 40%, #f0c860 0%, transparent 60%);
}
.scn-defence-of-streams-combination .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a0a 100%); }
.scn-defence-of-streams-combination .table { position:absolute; bottom:15%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-defence-of-streams-combination .map { position:absolute; bottom:20%; left:30%; right:30%; height:35px; background: linear-gradient(135deg, #d4b896 0%, #bfa07a 100%); border-radius: 4px; transform: perspective(400px) rotateX(20deg); box-shadow: inset 0 2px 4px rgba(0,0,0,.2); animation: dsc-map 10s ease-in-out infinite; }
.scn-defence-of-streams-combination .marker-a { position:absolute; bottom:28%; left:35%; width:8px; height:8px; background: #b07030; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(176,112,48,.5); animation: dsc-marker 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-combination .marker-b { position:absolute; bottom:25%; left:55%; width:8px; height:8px; background: #608040; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(96,128,64,.5); animation: dsc-marker 8s ease-in-out infinite alternate-reverse; }
.scn-defence-of-streams-combination .figure { position:absolute; bottom:12%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsc-figure 7s ease-in-out infinite; }
.scn-defence-of-streams-combination .lamp { position:absolute; top:10%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #f0c860 0%, #c8a030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(240,200,96,.5); animation: dsc-lamp 5s ease-in-out infinite; }
@keyframes dsc-map { 0%,100% { transform: perspective(400px) rotateX(20deg) translateY(0); } 50% { transform: perspective(400px) rotateX(20deg) translateY(-1px); } }
@keyframes dsc-marker { 0% { transform: scale(1); } 100% { transform: scale(1.2); } }
@keyframes dsc-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dsc-lamp { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }

.scn-how-far-analysis-of-means {
  background: linear-gradient(180deg, #1a1c1e 0%, #2a2b2c 40%, #1e2018 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-how-far-analysis-of-means .desk-top {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3e2a 0%, #3a2e1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: hfa-desk 12s ease-in-out infinite alternate;
}
.scn-how-far-analysis-of-means .paper-stack {
  position: absolute; bottom: 18%; left: 30%; width: 25%; height: 16%;
  background: linear-gradient(180deg, #d4c9a0 0%, #b8a87a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: hfa-paper 9s ease-in-out infinite;
}
.scn-how-far-analysis-of-means .candle-body {
  position: absolute; bottom: 22%; left: 55%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%);
  border-radius: 2px;
  box-shadow: 0 0 2px rgba(0,0,0,0.4);
}
.scn-how-far-analysis-of-means .candle-flame {
  position: absolute; bottom: 46%; left: 55.5%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,0.4);
  animation: hfa-flame 2s ease-in-out infinite alternate;
}
.scn-how-far-analysis-of-means .inkwell {
  position: absolute; bottom: 14%; left: 18%; width: 14px; height: 16px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: hfa-ink 20s linear infinite;
}
.scn-how-far-analysis-of-means .quill {
  position: absolute; bottom: 20%; left: 14%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #e8e0d0 0%, #a09080 100%);
  transform: rotate(-30deg);
  transform-origin: bottom center;
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: hfa-quill 6s ease-in-out infinite alternate;
}
@keyframes hfa-desk {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hfa-paper {
  0%   { transform: rotate(-2deg) translateY(0); }
  50%  { transform: rotate(-1deg) translateY(-1px); }
  100%{ transform: rotate(-2.5deg) translateY(0); }
}
@keyframes hfa-flame {
  0%   { transform: scaleY(1) rotate(-3deg); opacity: 0.85; }
  50%  { transform: scaleY(1.12) rotate(3deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.9; }
}
@keyframes hfa-ink {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes hfa-quill {
  0%   { transform: rotate(-30deg) translateY(0); }
  50%  { transform: rotate(-25deg) translateY(-2px); }
  100% { transform: rotate(-28deg) translateY(0); }
}

/* ------------------------------------------------------------------ */

.scn-great-simplification-of-knowledge {
  background: linear-gradient(180deg, #1a1c1e 0%, #2a2b2c 60%, #1e2018 100%),
    radial-gradient(ellipse at 80% 20%, #3a3a2a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-great-simplification-of-knowledge .shelf-back {
  position: absolute; top: 10%; left: 5%; right: 5%; bottom: 20%;
  background: linear-gradient(90deg, #2a2018 0%, #1e1410 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-great-simplification-of-knowledge .shelf-board {
  position: absolute; top: 22%; left: 6%; right: 6%; height: 6px;
  background: #3a2e1a;
  box-shadow: 0 0 4px rgba(0,0,0,0.6);
  border-radius: 1px;
}
.scn-great-simplification-of-knowledge .book-row-left {
  position: absolute; top: 18%; left: 8%; width: 40%; height: 18%;
  background: linear-gradient(90deg, #6a4a3a 0%, #5a3a2a 50%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5);
  animation: gsk-books 20s ease-in-out infinite alternate;
}
.scn-great-simplification-of-knowledge .book-row-right {
  position: absolute; top: 18%; right: 8%; width: 40%; height: 18%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #6a5a4a 100%);
  border-radius: 2px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.5);
  animation: gsk-books 20s ease-in-out infinite alternate-reverse;
}
.scn-great-simplification-of-knowledge .lamp-base {
  position: absolute; bottom: 32%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
}
.scn-great-simplification-of-knowledge .lamp-shade {
  position: absolute; bottom: 42%; left: 56%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
.scn-great-simplification-of-knowledge .lamp-glow {
  position: absolute; bottom: 35%; left: 54%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #ffe090 0%, #d4a050 30%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gsk-glow 4s ease-in-out infinite alternate;
}
.scn-great-simplification-of-knowledge .reading-chair {
  position: absolute; bottom: 0; left: 15%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  transform: scaleX(0.8);
  animation: gsk-chair 10s ease-in-out infinite alternate;
}
@keyframes gsk-books {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes gsk-glow {
  0%   { opacity: 0.7; transform: scale(1); }
  50%  { opacity: 1;   transform: scale(1.04); }
  100% { opacity: 0.75; transform: scale(0.98); }
}
@keyframes gsk-chair {
  0%   { transform: scaleX(0.8) translateY(0); }
  50%  { transform: scaleX(0.82) translateY(-1px); }
  100% { transform: scaleX(0.8) translateY(0); }
}

/* ------------------------------------------------------------------ */

.scn-this-explains-rapid-growth-of-generals {
  background: linear-gradient(180deg, #1a1c1e 0%, #2a2b2c 50%, #1e2018 100%),
    radial-gradient(ellipse at 50% 10%, #3a3a2a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-this-explains-rapid-growth-of-generals .table-surface {
  position: absolute; top: 20%; left: 10%; right: 10%; bottom: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e1a 100%);
  border-radius: 20px 20px 40px 40px / 30px 30px 60px 60px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: erg-table 15s ease-in-out infinite alternate;
}
.scn-this-explains-rapid-growth-of-generals .map-parchment {
  position: absolute; top: 25%; left: 18%; right: 18%; bottom: 30%;
  background: linear-gradient(180deg, #d4c9a0 0%, #b8a87a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: erg-map 12s ease-in-out infinite alternate;
}
.scn-this-explains-rapid-growth-of-generals .compass-rose {
  position: absolute; top: 35%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8b070 0%, #8a7a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: erg-rose 20s linear infinite;
}
.scn-this-explains-rapid-growth-of-generals .globe-base {
  position: absolute; top: 30%; right: 18%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-this-explains-rapid-growth-of-generals .globe-sphere {
  position: absolute; top: 18%; right: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle, #6a8a9a 0%, #4a6a7a 60%, #2a4a5a 100%);
  border-radius: 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.5);
  animation: erg-globe 30s linear infinite;
}
.scn-this-explains-rapid-growth-of-generals .counter-token {
  position: absolute; bottom: 32%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: erg-token 8s ease-in-out infinite alternate;
}
.scn-this-explains-rapid-growth-of-generals .candle-stub {
  position: absolute; bottom: 24%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%);
  border-radius: 2px;
  box-shadow: 0 0 2px rgba(0,0,0,0.4);
}
@keyframes erg-table {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes erg-map {
  0%   { transform: rotate(-1deg) translateY(0); }
  50%  { transform: rotate(0.5deg) translateY(-1px); }
  100% { transform: rotate(-1.5deg) translateY(0); }
}
@keyframes erg-rose {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes erg-globe {
  0%   { transform: rotateY(0deg); }
  100% { transform: rotateY(360deg); }
}
@keyframes erg-token {
  0%   { transform: translate(0, 0); }
  50%  { transform: translate(2px, -1px); }
  100% { transform: translate(0, 0); }
}

/* ------------------------------------------------------------------ */

.scn-simplicity-of-knowledge-not-attended-to {
  background: linear-gradient(180deg, #1a1c1e 0%, #2a2b2c 60%, #1e2018 100%),
    radial-gradient(ellipse at 40% 80%, #2a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-simplicity-of-knowledge-not-attended-to .window-frame {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 30%;
  background: #3a2e1a;
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-simplicity-of-knowledge-not-attended-to .window-pane {
  position: absolute; top: 12%; left: 22%; right: 22%; bottom: 32%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-simplicity-of-knowledge-not-attended-to .night-sky {
  position: absolute; top: 12%; left: 22%; right: 22%; bottom: 32%;
  background: radial-gradient(ellipse at 60% 20%, #2a3a5a 0%, #0a0a1a 100%);
  border-radius: 4px;
  animation: sna-sky 8s ease-in-out infinite alternate;
}
.scn-simplicity-of-knowledge-not-attended-to .moon-crescent {
  position: absolute; top: 16%; left: 42%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0e0d0 0%, #909080 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px rgba(200,200,180,0.3);
  animation: sna-moon 12s ease-in-out infinite alternate;
}
.scn-simplicity-of-knowledge-not-attended-to .chair-back {
  position: absolute; bottom: 22%; right: 18%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 10px 10px 0 0 / 20px 20px 0 0;
  box-shadow: -4px 0 6px rgba(0,0,0,0.4);
  animation: sna-chair 15s ease-in-out infinite alternate;
}
.scn-simplicity-of-knowledge-not-attended-to .figure-silhouette {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0e0a08 0%, #060404 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.6);
  animation: sna-figure 10s ease-in-out infinite alternate;
}
.scn-simplicity-of-knowledge-not-attended-to .shadow-floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0806 100%);
  border-radius: 0 0 20px 20px;
}
@keyframes sna-sky {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sna-moon {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sna-chair {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes sna-figure {
  0%   { transform: rotate(-2deg) translateY(0); }
  50%  { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}

.scn-defence-of-inundations-1787-command-failure {
  background:
    linear-gradient(180deg, #4a5050 0%, #2a3030 50%, #1a2020 100%),
    radial-gradient(ellipse at 50% 100%, #3a4040 0%, transparent 60%);
}
.scn-defence-of-inundations-1787-command-failure .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a6060 0%, #3a4040 100%);
  animation: d17-sky 10s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-command-failure .dyke {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: d17-dyke 6s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-command-failure .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  animation: d17-water 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-command-failure .fig-left {
  position: absolute; bottom: 34%; left: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: d17-fig 3s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-command-failure .fig-right {
  position: absolute; bottom: 34%; right: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: d17-fig 3s ease-in-out infinite 1.5s;
}
.scn-defence-of-inundations-1787-command-failure .flag-broken {
  position: absolute; bottom: 42%; right: 28%; width: 8px; height: 30px;
  background: #5e3a2a;
  border-radius: 2px;
  animation: d17-flag 5s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-command-failure .flag-broken::before {
  content: ''; position: absolute; top: 2px; left: 4px; width: 24px; height: 14px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 100%);
  border-radius: 0 4px 4px 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: d17-flag-cloth 5s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-command-failure .cloud-overcast {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 30px;
  background: rgba(80,80,80,.4); filter: blur(10px);
  border-radius: 50%;
  animation: d17-cloud 30s linear infinite;
}
.scn-defence-of-inundations-1787-command-failure .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(200,200,200,.2) 0%, transparent 100%);
  animation: d17-mist 8s ease-in-out infinite alternate;
}
@keyframes d17-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes d17-dyke { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes d17-water { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }
@keyframes d17-fig { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes d17-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes d17-flag-cloth { 0% { transform: skewX(0) } 50% { transform: skewX(-10deg) } 100% { transform: skewX(0) } }
@keyframes d17-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes d17-mist { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }

.scn-defence-of-inundations-lesson {
  background:
    linear-gradient(180deg, #f5eedc 0%, #e8dcc8 100%),
    radial-gradient(ellipse at 50% 100%, #d4c4a8 0%, transparent 70%);
}
.scn-defence-of-inundations-lesson .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #eddfc9 0%, #d9c8ae 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
}
.scn-defence-of-inundations-lesson .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #b89a7a 0%, #c8aa8a 100%);
}
.scn-defence-of-inundations-lesson .window-inner {
  position: absolute; top: 8%; left: 65%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #c0d8e8 0%, #b0c0d0 100%);
  border: 6px solid #8a7a6a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3);
  animation: dil-window 12s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-lesson .desk {
  position: absolute; bottom: 18%; left: 15%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #a07a5a 0%, #806040 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.2);
}
.scn-defence-of-inundations-lesson .lamp {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  border-radius: 4px 4px 0 0;
  animation: dil-lamp 6s ease-in-out infinite;
}
.scn-defence-of-inundations-lesson .book {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #b04040 0%, #803030 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.scn-defence-of-inundations-lesson .map-roll {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #d4c09a 0%, #b8a080 100%);
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: dil-map 8s ease-in-out infinite;
}
.scn-defence-of-inundations-lesson .candle-glow {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%);
  animation: dil-glow 3s ease-in-out infinite alternate;
}
@keyframes dil-window { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dil-lamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dil-map { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dil-glow { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(.95) } }

.scn-defence-of-inundations-offensive-possible {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #ddd0b8 100%),
    radial-gradient(ellipse at 50% 0%, #f0e6d0 0%, transparent 60%);
}
.scn-defence-of-inundations-offensive-possible .table {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%;
  background: linear-gradient(135deg, #b09878 0%, #907858 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
}
.scn-defence-of-inundations-offensive-possible .map {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 70%;
  background: linear-gradient(135deg, #ded0b0 0%, #c8b890 100%);
  border-radius: 4px;
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
}
.scn-defence-of-inundations-offensive-possible .dyke-line-a {
  position: absolute; top: 35%; left: 20%; width: 60%; height: 4px;
  background: #7a6a4a;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: dio-line 10s ease-in-out infinite;
}
.scn-defence-of-inundations-offensive-possible .dyke-line-b {
  position: absolute; top: 55%; left: 25%; width: 50%; height: 4px;
  background: #7a6a4a;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: dio-line 10s ease-in-out infinite 2s;
}
.scn-defence-of-inundations-offensive-possible .marker-red {
  position: absolute; top: 40%; left: 40%; width: 6px; height: 6px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,.6);
  animation: dio-marker 4s ease-in-out infinite;
}
.scn-defence-of-inundations-offensive-possible .marker-blue {
  position: absolute; top: 55%; left: 55%; width: 6px; height: 6px;
  background: #406080;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(64,96,128,.6);
  animation: dio-marker 4s ease-in-out infinite 2s;
}
.scn-defence-of-inundations-offensive-possible .lamp-overhead {
  position: absolute; top: 2%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b08030 0%, #906010 100%);
  border-radius: 4px 4px 0 0;
  animation: dio-lamp 8s ease-in-out infinite;
}
.scn-defence-of-inundations-offensive-possible .light-cone {
  position: absolute; top: 6%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%);
  clip-path: polygon(50% 0, 0% 100%, 100% 100%);
  animation: dio-light 6s ease-in-out infinite alternate;
}
@keyframes dio-line { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes dio-marker { 0% { transform: scale(.8) } 50% { transform: scale(1.2) } 100% { transform: scale(.8) } }
@keyframes dio-lamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dio-light { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }

.scn-defence-of-forests-intro {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #c0b098 100%),
    radial-gradient(ellipse at 50% 100%, #e0d4c0 0%, transparent 70%);
}
.scn-defence-of-forests-intro .window-frame {
  position: absolute; top: 5%; left: 5%; right: 5%; bottom: 5%;
  border: 16px solid #6a5a4a;
  border-radius: 12px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
  background: transparent;
}
.scn-defence-of-forests-intro .glass-pane {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(180,220,240,.15) 0%, transparent 100%);
  pointer-events: none;
}
.scn-defence-of-forests-intro .forest-tangle {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 60%;
  background:
    radial-gradient(ellipse at 30% 40%, #2a5a2a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 60%, #1a4a1a 0%, transparent 50%);
  filter: blur(2px);
  animation: dfi-tangle 15s ease-in-out infinite alternate;
}
.scn-defence-of-forests-intro .forest-cultured {
  position: absolute; top: 10%; right: 10%; width: 45%; height: 60%;
  background:
    linear-gradient(180deg, rgba(60,120,60,.6) 0%, transparent 100%),
    radial-gradient(ellipse at 50% 30%, #4a8a4a 0%, transparent 60%);
  filter: blur(1px);
  animation: dfi-cultured 20s ease-in-out infinite alternate;
}
.scn-defence-of-forests-intro .sky-outside {
  position: absolute; top: 8%; left: 8%; right: 8%; height: 30%;
  background: linear-gradient(180deg, #b0d0e0 0%, #90b0c0 100%);
  border-radius: 0 0 20px 20px;
  animation: dfi-sky 10s ease-in-out infinite alternate;
}
.scn-defence-of-forests-intro .desk-sill {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #b09a7a 0%, #9a8464 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.2);
}
.scn-defence-of-forests-intro .book-open {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #d0b89a 0%, #b8a080 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: dfi-book 6s ease-in-out infinite;
}
@keyframes dfi-tangle { 0% { opacity: .7; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .8; transform: scale(1) } }
@keyframes dfi-cultured { 0% { opacity: .8; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-4px) } 100% { opacity: .9; transform: translateY(2px) } }
@keyframes dfi-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dfi-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* Scene 1: different relations */
.scn-retreat-into-interior-different-relations {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c8a6 40%, #b8a080 100%), radial-gradient(ellipse at 50% 30%, rgba(255,235,200,.35) 0%, transparent 70%);
}
.scn-retreat-into-interior-different-relations .window {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 45%;
  background: linear-gradient(135deg, #ffe8c0 0%, #f0d4a0 60%, #c8a870 100%);
  border: 6px solid #5e3c1a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,235,180,.6), 0 4px 12px rgba(0,0,0,.3);
  animation: ria-window 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-different-relations .table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ria-table 6s ease-in-out infinite;
}
.scn-retreat-into-interior-different-relations .fig-left {
  position: absolute; bottom: 29%; left: 30%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ria-fig-l 4s ease-in-out infinite;
}
.scn-retreat-into-interior-different-relations .fig-right {
  position: absolute; bottom: 29%; right: 30%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ria-fig-r 4s ease-in-out infinite 1.5s;
}
.scn-retreat-into-interior-different-relations .lamp {
  position: absolute; bottom: 40%; left: 48%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,.5), 0 0 40px 12px rgba(255,200,100,.2);
  animation: ria-lamp 5s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-different-relations .shadow-floor {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: ria-shadow 7s ease-in-out infinite alternate;
}
@keyframes ria-window { 0% { opacity: .9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .95; transform: scale(1); } }
@keyframes ria-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ria-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ria-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ria-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,.6); } 100% { box-shadow: 0 0 20px 6px rgba(255,200,100,.5); } }
@keyframes ria-shadow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .7; transform: scale(1.05); } 100% { opacity: .6; transform: scale(1); } }

/* Scene 2: foraging advantage */
.scn-retreat-into-interior-foraging-advantage {
  background: linear-gradient(180deg, #eddcc8 0%, #ccb498 40%, #a68468 100%), radial-gradient(ellipse at 50% 60%, rgba(240,215,180,.4) 0%, transparent 70%);
}
.scn-retreat-into-interior-foraging-advantage .shelf {
  position: absolute; top: 25%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(0deg, #5e3c1a 0%, #7a5a32 100%);
  border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: rib-shelf 10s ease-in-out infinite;
}
.scn-retreat-into-interior-foraging-advantage .barrel-l {
  position: absolute; top: 10%; left: 20%; width: 15%; height: 20%;
  background: radial-gradient(ellipse at 30% 40%, #8a6a3a 0%, #5e3c1a 70%, #3a2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.3);
  animation: rib-barrel 7s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-foraging-advantage .barrel-r {
  position: absolute; top: 12%; right: 25%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 30% 40%, #8a6a3a 0%, #5e3c1a 70%, #3a2a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.3);
  animation: rib-barrel 7s ease-in-out infinite alternate 2s;
}
.scn-retreat-into-interior-foraging-advantage .bread {
  position: absolute; top: 35%; left: 40%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #9a7a40 70%, #6a4a20 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: rib-bread 9s ease-in-out infinite;
}
.scn-retreat-into-interior-foraging-advantage .jug {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #7a5a32 0%, #4a3018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3), inset 0 2px 4px rgba(255,220,180,.2);
  animation: rib-jug 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-foraging-advantage .window {
  position: absolute; top: 5%; left: 5%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #ffe0b0 0%, #f0c890 60%, #d0a870 100%);
  border: 4px solid #4a2e14; border-radius: 3px;
  box-shadow: inset 0 0 20px rgba(255,230,180,.5);
  animation: rib-window 12s ease-in-out infinite alternate;
}
@keyframes rib-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rib-barrel { 0% { transform: scale(1); opacity: .95; } 50% { transform: scale(1.03) rotate(1deg); opacity: 1; } 100% { transform: scale(1); opacity: .95; } }
@keyframes rib-bread { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rib-jug { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes rib-window { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }

/* Scene 3: vast dimensions */
.scn-retreat-into-interior-vast-dimensions {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #7a6850 100%), radial-gradient(ellipse at 50% 20%, rgba(220,200,170,.3) 0%, transparent 60%);
}
.scn-retreat-into-interior-vast-dimensions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%);
  border-radius: 0 0 4px 4px;
  animation: riv-floor 15s ease-in-out infinite;
}
.scn-retreat-into-interior-vast-dimensions .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-retreat-into-interior-vast-dimensions .col-left {
  position: absolute; top: 5%; left: 20%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #a08060 0%, #c8b098 50%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: riv-col 20s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-vast-dimensions .col-right {
  position: absolute; top: 5%; right: 20%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #a08060 0%, #c8b098 50%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: riv-col 20s ease-in-out infinite alternate 5s;
}
.scn-retreat-into-interior-vast-dimensions .wall-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 60%, #5a4a30 100%);
  z-index: -1;
  animation: riv-wall 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-vast-dimensions .door {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border: 4px solid #3a2a10; border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3);
  animation: riv-door 8s ease-in-out infinite;
}
@keyframes riv-floor { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes riv-col { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes riv-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; } }
@keyframes riv-door { 0% { transform: scale(1); } 50% { transform: scale(1.01) translateX(2px); } 100% { transform: scale(1); } }

/* Scene 4: difference */
.scn-retreat-into-interior-difference {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8bcb0 40%, #a89880 100%), radial-gradient(ellipse at 50% 50%, rgba(230,215,190,.3) 0%, transparent 70%);
}
.scn-retreat-into-interior-difference .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(90deg, #b8a088 0%, #d8c8b8 50%, #b8a088 100%);
  z-index: -1;
}
.scn-retreat-into-interior-difference .door-l {
  position: absolute; bottom: 10%; left: 15%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border: 4px solid #3a2a10; border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.2);
  animation: rid-door-l 7s ease-in-out infinite;
}
.scn-retreat-into-interior-difference .door-r {
  position: absolute; bottom: 10%; right: 15%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border: 4px solid #3a2a10; border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.2);
  animation: rid-door-r 7s ease-in-out infinite 2s;
}
.scn-retreat-into-interior-difference .light-l {
  position: absolute; bottom: 20%; left: 22%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffe0b0 0%, #c8a070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,.4);
  animation: rid-light 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-difference .light-r {
  position: absolute; bottom: 20%; right: 22%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffe0b0 0%, #c8a070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,.4);
  animation: rid-light 6s ease-in-out infinite alternate 3s;
}
.scn-retreat-into-interior-difference .threshold {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(0deg, #5a4a30 0%, #7a6a4a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: rid-threshold 9s ease-in-out infinite;
}
@keyframes rid-door-l { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes rid-door-r { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(-3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes rid-light { 0% { opacity: .7; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1); } }
@keyframes rid-threshold { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }

/* Scene 1: victualling-permeates-strategy */
.scn-victualling-permeates-strategy {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #1e1410 30%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%);
}
.scn-victualling-permeates-strategy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(0deg, #1e1410 0%, #2a1e12 100%);
  animation: vs-wall 12s ease-in-out infinite alternate;
}
.scn-victualling-permeates-strategy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%);
}
.scn-victualling-permeates-strategy .shelf {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 6%;
  background: #3a2a1a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-victualling-permeates-strategy .barrel {
  position: absolute; bottom: 32%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% / 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: vs-barrel 6s ease-in-out infinite;
}
.scn-victualling-permeates-strategy .sack {
  position: absolute; bottom: 34%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: vs-sack 8s ease-in-out infinite alternate;
}
.scn-victualling-permeates-strategy .lantern {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 30%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3);
  animation: vs-lantern 3s ease-in-out infinite alternate;
}
.scn-victualling-permeates-strategy .figure {
  position: absolute; bottom: 30%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-figure 4s ease-in-out infinite;
}
.scn-victualling-permeates-strategy .crate {
  position: absolute; bottom: 34%; left: 50%; width: 30px; height: 24px;
  background: #2a1e12; border: 1px solid #3a2a1a; border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: vs-crate 10s ease-in-out infinite alternate;
}
@keyframes vs-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes vs-barrel { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes vs-sack { 0% { transform: scale(1) } 100% { transform: scale(1.02) rotate(-2deg) } }
@keyframes vs-lantern { 0% { box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 40px 16px #ffd080, 0 0 80px 30px rgba(255,208,128,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #b08040, 0 0 50px 15px rgba(176,128,64,0.25); opacity: 0.85 } }
@keyframes vs-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(-2deg) } 75% { transform: translateX(-5px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes vs-crate { 0% { transform: scale(1) } 100% { transform: scale(1.01) } }

/* Scene 2: sick-wounded-indirect-influence */
.scn-sick-wounded-indirect-influence {
  background: 
    linear-gradient(180deg, #1e1a2a 0%, #14101e 50%, #0a0812 100%),
    radial-gradient(ellipse at 30% 50%, #2a2244 0%, transparent 60%);
}
.scn-sick-wounded-indirect-influence .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1e1a2a 0%, #14101e 100%); animation: sw-wall 15s ease-in-out infinite alternate; }
.scn-sick-wounded-indirect-influence .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #14101e 0%, #0a0812 100%); }
.scn-sick-wounded-indirect-influence .bed { position: absolute; bottom: 32%; left: 20%; width: 60%; height: 40%; background: linear-gradient(180deg, #2a2244 0%, #1a1630 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: sw-bed 8s ease-in-out infinite alternate; }
.scn-sick-wounded-indirect-influence .blanket { position: absolute; bottom: 42%; left: 24%; width: 52%; height: 20%; background: linear-gradient(180deg, #4a3a6a 0%, #32284a 100%); border-radius: 10% / 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: sw-blanket 6s ease-in-out infinite; }
.scn-sick-wounded-indirect-influence .pillow { position: absolute; bottom: 68%; left: 24%; width: 20%; height: 12%; background: radial-gradient(ellipse at 50% 30%, #6a5a8a 0%, #3a2a5a 100%); border-radius: 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: sw-pillow 7s ease-in-out infinite alternate; }
.scn-sick-wounded-indirect-influence .table { position: absolute; bottom: 32%; right: 10%; width: 25%; height: 18%; background: #1a1630; border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-sick-wounded-indirect-influence .candle { position: absolute; bottom: 50%; right: 22%; width: 6px; height: 16px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #c09050; animation: sw-candle 3s ease-in-out infinite alternate; }
.scn-sick-wounded-indirect-influence .figure { position: absolute; bottom: 30%; right: 8%; width: 14px; height: 28px; background: linear-gradient(180deg, #2a2244 0%, #14101e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sw-figure 5s ease-in-out infinite; }
@keyframes sw-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes sw-bed { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes sw-blanket { 0%, 100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes sw-pillow { 0% { transform: scale(1) } 100% { transform: scale(1.02) translateY(-1px) } }
@keyframes sw-candle { 0% { box-shadow: 0 0 15px 5px #a08050, 0 0 30px 10px rgba(160,128,80,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 30px 12px #c09050, 0 0 60px 20px rgba(192,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 18px 6px #a08050, 0 0 35px 12px rgba(160,128,80,0.25); opacity: 0.8 } }
@keyframes sw-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }

/* Scene 3: hospitals-depots-decisive-cases */
.scn-hospitals-depots-decisive-cases {
  background: 
    linear-gradient(180deg, #1a1410 0%, #120e0a 50%, #0a0806 100%),
    radial-gradient(ellipse at 50% 0%, #2a1e18 0%, transparent 70%);
}
.scn-hospitals-depots-decisive-cases .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a1410 0%, #120e0a 100%); animation: hd-wall 14s ease-in-out infinite alternate; }
.scn-hospitals-depots-decisive-cases .desk { position: absolute; bottom: 30%; left: 15%; right: 15%; height: 25%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: hd-desk 10s ease-in-out infinite alternate; }
.scn-hospitals-depots-decisive-cases .map { position: absolute; bottom: 40%; left: 20%; right: 20%; height: 15%; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1e18 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: hd-map 12s ease-in-out infinite alternate; }
.scn-hospitals-depots-decisive-cases .candle { position: absolute; bottom: 52%; left: 30%; width: 6px; height: 18px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 0 25px 10px #b09060; animation: hd-candle 3s ease-in-out infinite alternate; }
.scn-hospitals-depots-decisive-cases .compass { position: absolute; bottom: 42%; left: 55%; width: 20px; height: 20px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: hd-compass 8s linear infinite; }
.scn-hospitals-depots-decisive-cases .inkwell { position: absolute; bottom: 45%; left: 25%; width: 10px; height: 12px; background: #0a0806; border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-hospitals-depots-decisive-cases .quill { position: absolute; bottom: 52%; left: 28%; width: 2px; height: 20px; background: #4a3a2a; transform: rotate(30deg); transform-origin: bottom; animation: hd-quill 5s ease-in-out infinite alternate; }
.scn-hospitals-depots-decisive-cases .hand { position: absolute; bottom: 38%; left: 48%; width: 12px; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hd-hand 4s ease-in-out infinite; }
@keyframes hd-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes hd-desk { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes hd-map { 0% { transform: scale(1) } 100% { transform: scale(1.01) rotate(2deg) } }
@keyframes hd-candle { 0% { box-shadow: 0 0 20px 8px #a08050, 0 0 40px 15px rgba(160,128,80,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 35px 14px #c0a060, 0 0 70px 25px rgba(192,160,96,0.4); opacity: 1 } 100% { box-shadow: 0 0 22px 10px #a08050, 0 0 45px 18px rgba(160,128,80,0.25); opacity: 0.8 } }
@keyframes hd-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes hd-quill { 0% { transform: rotate(25deg) } 100% { transform: rotate(35deg) } }
@keyframes hd-hand { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }

/* Scene 4: activities-divided-preparations-and-war-itself */
.scn-activities-divided-preparations-and-war-itself {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #12121c 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a44 0%, transparent 70%);
}
.scn-activities-divided-preparations-and-war-itself .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #12121c 100%); animation: ad-wall 16s ease-in-out infinite alternate; }
.scn-activities-divided-preparations-and-war-itself .left-wall { bottom: 20%; left: 0; width: 45%; height: 80%; background: linear-gradient(180deg, #1a1a2a 0%, #12121c 100%); }
.scn-activities-divided-preparations-and-war-itself .right-wall { bottom: 20%; right: 0; width: 45%; height: 80%; background: linear-gradient(180deg, #1a1a2a 0%, #12121c 100%); }
.scn-activities-divided-preparations-and-war-itself .divider { position: absolute; bottom: 20%; left: 45%; right: 45%; height: 80%; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2a 100%); width: 10%; box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: ad-divider 7s ease-in-out infinite alternate; }
.scn-activities-divided-preparations-and-war-itself .book-stack { position: absolute; bottom: 35%; left: 10%; width: 20%; height: 25%; background: linear-gradient(180deg, #4a3a6a 0%, #2a1a4a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: ad-book 6s ease-in-out infinite; }
.scn-activities-divided-preparations-and-war-itself .quill { position: absolute; bottom: 60%; left: 18%; width: 2px; height: 18px; background: #6a5a8a; transform: rotate(-20deg); transform-origin: bottom; animation: ad-quill 4s ease-in-out infinite alternate; }
.scn-activities-divided-preparations-and-war-itself .helmet { position: absolute; bottom: 35%; right: 10%; width: 30px; height: 25px; background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ad-helmet 8s ease-in-out infinite alternate; }
.scn-activities-divided-preparations-and-war-itself .sword { position: absolute; bottom: 30%; right: 22%; width: 4px; height: 50px; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); transform: rotate(25deg); transform-origin: bottom; animation: ad-sword 9s ease-in-out infinite; }
.scn-activities-divided-preparations-and-war-itself .candle-left { position: absolute; bottom: 58%; left: 15%; width: 6px; height: 14px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #b09060; animation: ad-candle-l 3s ease-in-out infinite alternate; }
.scn-activities-divided-preparations-and-war-itself .candle-right { position: absolute; bottom: 55%; right: 20%; width: 6px; height: 14px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #b09060; animation: ad-candle-r 3s ease-in-out infinite alternate 1.5s; }
@keyframes ad-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes ad-divider { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.98) } }
@keyframes ad-book { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ad-quill { 0% { transform: rotate(-25deg) } 100% { transform: rotate(-15deg) } }
@keyframes ad-helmet { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }
@keyframes ad-sword { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(20deg) } }
@keyframes ad-candle-l { 0% { box-shadow: 0 0 15px 6px #a08050, 0 0 30px 12px rgba(160,128,80,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 30px 14px #c0a060, 0 0 60px 25px rgba(192,160,96,0.4); opacity: 1 } 100% { box-shadow: 0 0 18px 8px #a08050, 0 0 35px 15px rgba(160,128,80,0.25); opacity: 0.8 } }
@keyframes ad-candle-r { 0% { box-shadow: 0 0 15px 6px #a08050, 0 0 30px 12px rgba(160,128,80,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 30px 14px #c0a060, 0 0 60px 25px rgba(192,160,96,0.4); opacity: 1 } 100% { box-shadow: 0 0 18px 8px #a08050, 0 0 35px 15px rgba(160,128,80,0.25); opacity: 0.8 } }

/* operating-against-flank-reciprocal */
.scn-operating-against-flank-reciprocal { background: linear-gradient(180deg, #e8dbc8 0%, #cbb99e 45%, #a88b6a 100%), radial-gradient(ellipse at 50% 80%, #f7f0e0 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-operating-against-flank-reciprocal .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d9cab7 0%, #c2b09a 100%); }
.scn-operating-against-flank-reciprocal .window-frame { position: absolute; top: 8%; left: 60%; width: 30%; height: 55%; border: 12px solid #a58b72; background: transparent; border-radius: 4px; box-shadow: inset 0 0 0 6px #bb9f85, 0 4px 12px rgba(0,0,0,0.2); }
.scn-operating-against-flank-reciprocal .window-pane { position: absolute; top: calc(8% + 12px); left: calc(60% + 12px); width: calc(30% - 24px); height: calc(55% - 24px); background: radial-gradient(circle at 30% 20%, rgba(255,255,240,0.9) 0%, rgba(200,200,180,0.3) 60%, transparent 100%); opacity: 0.7; animation: ap1-dawn 8s ease-in-out infinite alternate; }
.scn-operating-against-flank-reciprocal .table { position: absolute; bottom: 12%; left: 10%; width: 65%; height: 24%; background: linear-gradient(180deg, #7d6040 0%, #5a4028 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.4); }
.scn-operating-against-flank-reciprocal .map { position: absolute; bottom: 18%; left: 18%; width: 40%; height: 14%; background: linear-gradient(135deg, #d6c29a 0%, #bfa87a 50%, #d6c29a 100%); border-radius: 2px; transform: rotate(-4deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: ap1-map 12s ease-in-out infinite alternate; }
.scn-operating-against-flank-reciprocal .lamp { position: absolute; bottom: 36%; left: 72%; width: 14px; height: 28px; background: linear-gradient(180deg, #b59a7a 0%, #785e3e 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); }
.scn-operating-against-flank-reciprocal .lamp::after { content: ''; position: absolute; top: -10px; left: 50%; width: 20px; height: 20px; background: radial-gradient(circle, #fae6c0 0%, #e0b080 50%, transparent 100%); transform: translateX(-50%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(250,230,192,0.3); animation: ap1-glow 4s ease-in-out infinite alternate; }
.scn-operating-against-flank-reciprocal .figure { position: absolute; bottom: 14%; left: 36%; width: 30px; height: 60px; background: radial-gradient(ellipse 60% 45% at 50% 30%, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ap1-bow 6s ease-in-out infinite; }
.scn-operating-against-flank-reciprocal .hand { position: absolute; bottom: 20%; left: 60%; width: 8px; height: 12px; background: radial-gradient(circle, #c8a88a 0%, #8a6a4a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(20deg); animation: ap1-point 3s ease-in-out infinite alternate; }
@keyframes ap1-dawn { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes ap1-map { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(2px); } 100% { transform: rotate(-5deg) translateY(-1px); } }
@keyframes ap1-glow { 0% { box-shadow: 0 0 20px 10px rgba(250,230,192,0.2); } 50% { box-shadow: 0 0 40px 25px rgba(250,230,192,0.5); } 100% { box-shadow: 0 0 25px 15px rgba(250,230,192,0.3); } }
@keyframes ap1-bow { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ap1-point { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(3px); } 100% { transform: rotate(20deg) translateX(1px); } }

/* operating-against-flank-same-direction */
.scn-operating-against-flank-same-direction { background: linear-gradient(180deg, #d4c9b0 0%, #b8a58a 40%, #8c765a 100%), radial-gradient(ellipse at 50% 30%, #efe6d0 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-operating-against-flank-same-direction .bg-corridor { position: absolute; inset: 0; background: linear-gradient(90deg, #b09a7a 0%, #c1ae92 20%, #b9a588 50%, #bfad96 80%, #a58b6e 100%); animation: ap2-corridor 20s ease-in-out infinite alternate; }
.scn-operating-against-flank-same-direction .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: repeating-linear-gradient(90deg, #6b543a 0px, #6b543a 20px, #82674a 20px, #82674a 40px); transform: perspective(400px) rotateX(60deg); transform-origin: bottom; animation: ap2-floor 12s linear infinite; }
.scn-operating-against-flank-same-direction .door-left { position: absolute; bottom: 20%; left: 12%; width: 18%; height: 60%; background: linear-gradient(180deg, #5e4a30 0%, #3f2e1a 100%); border-radius: 4px 4px 0 0; border: 3px solid #4d3822; box-shadow: -2px 0 8px rgba(0,0,0,0.3); }
.scn-operating-against-flank-same-direction .door-right { position: absolute; bottom: 20%; right: 12%; width: 18%; height: 60%; background: linear-gradient(180deg, #5e4a30 0%, #3f2e1a 100%); border-radius: 4px 4px 0 0; border: 3px solid #4d3822; box-shadow: 2px 0 8px rgba(0,0,0,0.3); }
.scn-operating-against-flank-same-direction .figure-a { position: absolute; bottom: 10%; left: 30%; width: 28px; height: 55px; background: radial-gradient(ellipse 50% 40% at 50% 25%, #2a1e12 0%, #110c06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ap2-walk-a 7s ease-in-out infinite; }
.scn-operating-against-flank-same-direction .figure-b { position: absolute; bottom: 10%; left: 55%; width: 28px; height: 55px; background: radial-gradient(ellipse 50% 40% at 50% 25%, #2a1e12 0%, #110c06 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ap2-walk-b 7s ease-in-out infinite; animation-delay: -3.5s; }
.scn-operating-against-flank-same-direction .shadow-floor { position: absolute; bottom: 0; left: 25%; width: 50%; height: 20%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); border-radius: 30%; animation: ap2-shadow 8s ease-in-out infinite alternate; }
.scn-operating-against-flank-same-direction .light-ray { position: absolute; top: 0; left: 40%; width: 20%; height: 100%; background: linear-gradient(180deg, rgba(255,240,210,0.6) 0%, transparent 80%); opacity: 0.5; animation: ap2-ray 6s ease-in-out infinite alternate; }
@keyframes ap2-corridor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ap2-floor { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes ap2-walk-a { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(10px) rotate(-1deg); } 50% { transform: translateX(20px) rotate(2deg); } 75% { transform: translateX(10px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ap2-walk-b { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-8px) rotate(2deg); } 50% { transform: translateX(-16px) rotate(-1deg); } 75% { transform: translateX(-8px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ap2-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes ap2-ray { 0% { opacity: 0.3; transform: translateX(-5%); } 50% { opacity: 0.7; transform: translateX(0); } 100% { opacity: 0.4; transform: translateX(5%); } }

/* operating-against-flank-enemy-subjects */
.scn-operating-against-flank-enemy-subjects { background: linear-gradient(180deg, #cbb79a 0%, #a28b6c 50%, #715a3e 100%), radial-gradient(ellipse at 50% 100%, #e0d0b8 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-operating-against-flank-enemy-subjects .bg-wood { position: absolute; inset: 0; background: linear-gradient(135deg, #8a7254 0%, #6b543a 50%, #4d3822 100%); }
.scn-operating-against-flank-enemy-subjects .table-round { position: absolute; bottom: 8%; left: 15%; width: 70%; height: 50%; background: radial-gradient(ellipse, #6a4f30 0%, #3d2b16 100%); border-radius: 50%; box-shadow: 0 12px 30px rgba(0,0,0,0.5); }
.scn-operating-against-flank-enemy-subjects .candle { position: absolute; bottom: 50%; left: 48%; width: 8px; height: 30px; background: linear-gradient(180deg, #e0c48a 0%, #b8965a 100%); border-radius: 2px; box-shadow: 0 0 10px 2px #f0d8a0; transform: translateX(-50%); animation: ap3-candle 3s ease-in-out infinite alternate; }
.scn-operating-against-flank-enemy-subjects .crowd-silhouette { position: absolute; bottom: 12%; left: 5%; width: 90%; height: 35%; background: linear-gradient(180deg, transparent 0%, rgba(20,12,6,0.9) 20%, #140c06 100%); border-radius: 20% 20% 0 0; mask-image: radial-gradient(circle at 30% 0%, black 30%, transparent 31%), radial-gradient(circle at 50% 0%, black 28%, transparent 29%), radial-gradient(circle at 70% 0%, black 32%, transparent 33%); mask-size: 15% 60%; mask-position: 20% 0%, 50% 0%, 80% 0%; mask-repeat: no-repeat; animation: ap3-crowd 15s ease-in-out infinite alternate; }
.scn-operating-against-flank-enemy-subjects .paper-stack { position: absolute; bottom: 22%; left: 60%; width: 30px; height: 8px; background: #d4bc96; border-radius: 1px; box-shadow: 0 2px 0 #b89e72, 0 4px 0 #9f8560, 0 6px 0 #806a48; transform: rotate(8deg); }
.scn-operating-against-flank-enemy-subjects .inkwell { position: absolute; bottom: 28%; left: 54%; width: 14px; height: 16px; background: radial-gradient(circle, #2a1a0a 0%, #0e0600 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-operating-against-flank-enemy-subjects .quill { position: absolute; bottom: 32%; left: 56%; width: 3px; height: 20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 50%, #806040 100%); transform: rotate(-20deg); transform-origin: bottom left; animation: ap3-quill 2s ease-in-out infinite alternate; }
.scn-operating-against-flank-enemy-subjects .candle::after { content: ''; position: absolute; top: -12px; left: 50%; width: 12px; height: 16px; background: radial-gradient(circle, #fedd80 0%, #f0b040 60%, transparent 100%); border-radius: 50%; transform: translateX(-50%); animation: ap3-flame 1.5s ease-in-out infinite alternate; }
@keyframes ap3-candle { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-2px); } }
@keyframes ap3-flame { 0% { transform: translateX(-50%) scale(1, 1); } 50% { transform: translateX(-50%) scale(1.1, 1.2); } 100% { transform: translateX(-50%) scale(0.9, 1.1); } }
@keyframes ap3-crowd { 0% { opacity: 0.6; mask-size: 15% 50%; } 50% { opacity: 0.9; mask-size: 18% 60%; } 100% { opacity: 0.7; mask-size: 12% 55%; } }
@keyframes ap3-quill { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(2px); } }

/* operating-against-flank-conditions-list */
.scn-operating-against-flank-conditions-list { background: linear-gradient(180deg, #e0d6c0 0%, #c4b49a 40%, #9e876c 100%), radial-gradient(ellipse at 50% 20%, #f5eed8 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-operating-against-flank-conditions-list .study-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #cebda2 0%, #b8a589 100%); }
.scn-operating-against-flank-conditions-list .bookshelf { position: absolute; bottom: 20%; right: 6%; width: 20%; height: 60%; background: linear-gradient(90deg, #6a5036 0%, #4d3822 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.2); }
.scn-operating-against-flank-conditions-list .bookshelf::before { content: ''; position: absolute; top: 15%; left: 10%; width: 80%; height: 55%; background: repeating-linear-gradient(180deg, #8a6a44 0px, #8a6a44 8px, transparent 8px, transparent 10px); }
.scn-operating-against-flank-conditions-list .desk { position: absolute; bottom: 6%; left: 10%; width: 60%; height: 18%; background: linear-gradient(180deg, #6f553a 0%, #4c381e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-operating-against-flank-conditions-list .letter { position: absolute; bottom: 16%; left: 20%; width: 28%; height: 12%; background: linear-gradient(135deg, #f0e5d0 0%, #dcccb5 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: ap4-letter 10s ease-in-out infinite alternate; }
.scn-operating-against-flank-conditions-list .spectacles { position: absolute; bottom: 18%; left: 50%; width: 30px; height: 12px; border: 2px solid #b09070; border-radius: 50% 50% 40% 40%; background: transparent; box-shadow: 0 0 0 2px #a08060; transform: rotate(5deg); }
.scn-operating-against-flank-conditions-list .hand-writing { position: absolute; bottom: 16%; left: 36%; width: 12px; height: 16px; background: radial-gradient(circle at 40% 30%, #d4b896 0%, #a8886a 100%); border-radius: 50% 50% 30% 30%; transform: translate(0,0); animation: ap4-hand 4s ease-in-out infinite alternate; }
.scn-operating-against-flank-conditions-list .coffee-cup { position: absolute; bottom: 15%; left: 60%; width: 16px; height: 18px; background: linear-gradient(180deg, #d0bc94 0%, #b09874 100%); border-radius: 0 0 30% 30%; border: 2px solid #9e8866; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-operating-against-flank-conditions-list .steam { position: absolute; bottom: 35%; left: 62%; width: 10px; height: 20px; background: radial-gradient(circle, rgba(255,255,240,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ap4-steam 3s ease-out infinite; }
.scn-operating-against-flank-conditions-list .steam:nth-child(8) { left: 66%; animation-delay: 1s; width: 8px; height: 15px; }
@keyframes ap4-letter { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(2px); } 100% { transform: rotate(-4deg) translateY(-1px); } }
@keyframes ap4-hand { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(6px, -2px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ap4-steam { 0% { opacity: 0.6; transform: translateY(0) scale(1); } 50% { opacity: 0.3; transform: translateY(-20px) scale(1.5); } 100% { opacity: 0; transform: translateY(-40px) scale(2); } }

.scn-contemporary-history-illusion {
  background: linear-gradient(180deg, #2e1e14 0%, #4a3020 50%, #1e120a 100%),
              radial-gradient(ellipse at 60% 40%, #6a4a30 0%, transparent 75%);
}
.scn-contemporary-history-illusion .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2518 0%, #1e120a 100%);
  animation: chi-wall 30s ease-in-out infinite alternate;
}
.scn-contemporary-history-illusion .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.5);
  transform: perspective(800px) rotateX(2deg);
  animation: chi-desk 8s ease-in-out infinite;
}
.scn-contemporary-history-illusion .candle {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 60%, #806040 100%);
  border-radius: 3px; transform-origin: bottom center;
  animation: chi-candle 5s ease-in-out infinite alternate;
}
.scn-contemporary-history-illusion .flame {
  position: absolute; bottom: 72%; left: 45%; width: 10px; height: 20px;
  margin-left: -1px; background: radial-gradient(ellipse 50% 80%, #ffd060 0%, #ff8820 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(255,136,32,.5);
  animation: chi-flame 0.8s ease-in-out infinite alternate;
}
.scn-contemporary-history-illusion .book {
  position: absolute; bottom: 17%; left: 30%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px; transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: chi-book 12s ease-in-out infinite;
}
.scn-contemporary-history-illusion .hourglass {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c0b090 0%, #908070 50%, #605040 100%);
  border-radius: 50% 50% 50% 50% / 30% 30% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  animation: chi-hourglass 20s linear infinite;
}
.scn-contemporary-history-illusion .shelf {
  position: absolute; top: 20%; left: 5%; right: 5%; height: 6px;
  background: linear-gradient(90deg, #4a3020, #5a3a20, #4a3020);
  box-shadow: 0 0 0 2px #2e1e14, 0 4px 8px rgba(0,0,0,.3);
  animation: chi-shelf 15s ease-in-out infinite;
}
@keyframes chi-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes chi-desk { 0%,100% { transform: perspective(800px) rotateX(2deg) translateY(0) } 50% { transform: perspective(800px) rotateX(2deg) translateY(-1px) } }
@keyframes chi-candle { 0% { transform: skewX(-0.5deg) } 50% { transform: skewX(0.5deg) } 100% { transform: skewX(-0.3deg) } }
@keyframes chi-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9 } 25% { transform: scaleY(1.1) translateY(-2px); opacity: 1 } 75% { transform: scaleY(0.95) translateY(1px); opacity: .8 } 100% { transform: scaleY(1.05) translateY(-1px); opacity: .95 } }
@keyframes chi-book { 0%,100% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-7deg) translateX(3px) } }
@keyframes chi-hourglass { 0% { opacity: .6; transform: rotate(0) } 50% { opacity: .8; transform: rotate(2deg) } 100% { opacity: .6; transform: rotate(0) } }
@keyframes chi-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-great-victories-lead-success {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1e120a 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 80%);
}
.scn-great-victories-lead-success .tent {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); transform: scale(.95);
  animation: gvl-tent 30s ease-in-out infinite alternate;
}
.scn-great-victories-lead-success .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(4deg);
  animation: gvl-table 10s ease-in-out infinite alternate;
}
.scn-great-victories-lead-success .map {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7050 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.3);
  transform: rotate(-1deg); animation: gvl-map 20s ease-in-out infinite;
}
.scn-great-victories-lead-success .flag-1 {
  position: absolute; bottom: 36%; left: 25%; width: 4px; height: 24px;
  background: #4a3a2a;
}
.scn-great-victories-lead-success .flag-1::after {
  content: ''; position: absolute; top: 0; left: 4px; width: 16px; height: 12px;
  background: #c8553d; clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  animation: gvl-flag-wave 2s ease-in-out infinite alternate;
}
.scn-great-victories-lead-success .flag-2 {
  position: absolute; bottom: 34%; left: 60%; width: 4px; height: 20px;
  background: #4a3a2a; animation-delay: -1s;
}
.scn-great-victories-lead-success .flag-2::after {
  content: ''; position: absolute; top: 0; left: 4px; width: 14px; height: 10px;
  background: #c8553d; clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  animation: gvl-flag-wave 2.5s ease-in-out infinite alternate;
}
.scn-great-victories-lead-success .hand {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg); transform-origin: 50% 100%;
  animation: gvl-hand 4s ease-in-out infinite;
}
.scn-great-victories-lead-success .lantern {
  position: absolute; top: 20%; left: 50%; width: 16px; height: 24px;
  margin-left: -8px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,180,80,.3);
  animation: gvl-lantern 6s ease-in-out infinite alternate;
}
@keyframes gvl-tent { 0% { transform: scale(.95) } 100% { transform: scale(1) } }
@keyframes gvl-table { 0%,100% { transform: perspective(600px) rotateX(4deg) translateY(0) } 50% { transform: perspective(600px) rotateX(4deg) translateY(-1px) } }
@keyframes gvl-map { 0%,100% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(-0.5deg) translateX(2px) } }
@keyframes gvl-flag-wave { 0% { clip-path: polygon(0% 0%, 100% 50%, 0% 100%) } 100% { clip-path: polygon(0% 0%, 100% 40%, 0% 100%) } }
@keyframes gvl-hand { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-3px) } 100% { transform: rotate(14deg) translateY(0) } }
@keyframes gvl-lantern { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

.scn-no-general-bloodless {
  background: linear-gradient(180deg, #2e1a12 0%, #1e1008 50%, #0e0804 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a22 0%, transparent 70%);
}
.scn-no-general-bloodless .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2218 0%, #1a0e08 100%);
  animation: ngb-wall 25s ease-in-out infinite alternate;
}
.scn-no-general-bloodless .surface {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.7);
  transform: perspective(800px) rotateX(3deg);
}
.scn-no-general-bloodless .sword {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #a0a0b0 0%, #c8c8d0 50%, #a0a0b0 100%);
  border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 0 4px rgba(255,255,255,.2);
  animation: ngb-sword 7s ease-in-out infinite;
}
.scn-no-general-bloodless .sword::before {
  content: ''; position: absolute; right: -8px; top: -4px; width: 12px; height: 16px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 2px 2px 0 0; transform: rotate(20deg);
}
.scn-no-general-bloodless .helmet {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5); transform: rotate(5deg);
  animation: ngb-helmet 9s ease-in-out infinite alternate;
}
.scn-no-general-bloodless .goblet {
  position: absolute; bottom: 18%; right: 20%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 0 0 6px 6px; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 0 10px 2px rgba(94,26,29,.4);
  animation: ngb-goblet 11s ease-in-out infinite;
}
.scn-no-general-bloodless .candle {
  position: absolute; bottom: 42%; left: 50%; width: 6px; height: 35px;
  margin-left: -3px; background: linear-gradient(180deg, #e0d0b0 0%, #b09878 60%, #706050 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: ngb-candle 4s ease-in-out infinite alternate;
}
.scn-no-general-bloodless .candle::after {
  content: ''; position: absolute; top: -12px; left: -3px; width: 12px; height: 18px;
  background: radial-gradient(ellipse 50% 80%, #ffd060 0%, #ff8820 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,136,32,.4);
  animation: ngb-flame 0.6s ease-in-out infinite alternate;
}
@keyframes ngb-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes ngb-sword { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(2px) } }
@keyframes ngb-helmet { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(6deg) } }
@keyframes ngb-goblet { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ngb-candle { 0% { transform: skewX(-0.5deg) } 50% { transform: skewX(0.5deg) } 100% { transform: skewX(-0.3deg) } }
@keyframes ngb-flame { 0% { transform: scaleY(1) translateY(0); opacity: .9 } 50% { transform: scaleY(1.15) translateY(-3px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(1px); opacity: .85 } }

.scn-decision-battle-other-relations {
  background: linear-gradient(180deg, #2e221a 0%, #1e140e 50%, #0e0a06 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 75%);
}
.scn-decision-battle-other-relations .tent-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a20 0%, #1a1008 100%);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: dbr-tent 35s ease-in-out infinite alternate;
}
.scn-decision-battle-other-relations .table-large {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.5);
  transform: perspective(800px) rotateX(3deg);
}
.scn-decision-battle-other-relations .central-figure {
  position: absolute; bottom: 25%; left: 50%; width: 26px; height: 50px;
  margin-left: -13px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 6px rgba(0,0,0,.4); transform: rotate(-2deg);
  animation: dbr-central 7s ease-in-out infinite;
}
.scn-decision-battle-other-relations .advisor-1 {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg); animation: dbr-advisor1 9s ease-in-out infinite alternate;
}
.scn-decision-battle-other-relations .advisor-2 {
  position: absolute; bottom: 27%; right: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: dbr-advisor2 10s ease-in-out infinite alternate;
}
.scn-decision-battle-other-relations .map-large {
  position: absolute; bottom: 14%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(135deg, #b8a088 0%, #8a7060 100%);
  border-radius: 3px; box-shadow: 0 2px 10px rgba(0,0,0,.3);
  transform: rotate(1deg); animation: dbr-map 25s ease-in-out infinite;
}
.scn-decision-battle-other-relations .lamp-glow {
  position: absolute; top: 18%; left: 50%; width: 20px; height: 20px;
  margin-left: -10px; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,160,64,.3);
  animation: dbr-lamp 8s ease-in-out infinite alternate;
}
@keyframes dbr-tent { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }
@keyframes dbr-central { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes dbr-advisor1 { 0% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(7deg) translateX(-2px) } 100% { transform: rotate(9deg) translateX(0) } }
@keyframes dbr-advisor2 { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-4deg) translateX(2px) } 100% { transform: rotate(-6deg) translateX(0) } }
@keyframes dbr-map { 0%,100% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(1.5deg) translateX(3px) } }
@keyframes dbr-lamp { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }

/* flank-positions-efficacy-danger - tense bright interior */
.scn-flank-positions-efficacy-danger {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #d4bf94 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e1 0%, transparent 80%);
}
.scn-flank-positions-efficacy-danger .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d9c494 0%, #c4ad78 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.1);
}
.scn-flank-positions-efficacy-danger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #a88355 0%, #8b6d44 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-flank-positions-efficacy-danger .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #6b4c2a 0%, #543d1f 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 0 #4a3318, 0 12px 24px rgba(0,0,0,0.5);
}
.scn-flank-positions-efficacy-danger .map {
  position: absolute; bottom: 22%; left: 22%; right: 22%; height: 24%;
  background: linear-gradient(135deg, #d4c694 30%, #bca87a 60%, #e2d4a8 90%);
  border-radius: 1%;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
  animation: fp1-map 20s ease-in-out infinite alternate;
}
.scn-flank-positions-efficacy-danger .piece-a {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: fp1-piece-a 8s ease-in-out infinite, fp1-shake 4s ease-in-out infinite;
}
.scn-flank-positions-efficacy-danger .piece-b {
  position: absolute; bottom: 32%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, #3d0f12 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: -1px 2px 4px rgba(0,0,0,0.4);
  animation: fp1-piece-b 10s ease-in-out infinite;
}
.scn-flank-positions-efficacy-danger .candle {
  position: absolute; bottom: 52%; left: 62%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4be8a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,0.2);
}
.scn-flank-positions-efficacy-danger .flame {
  position: absolute; bottom: 72%; left: 62.3%; width: 6px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #ffe48a 0%, #ffb030 50%, #ff7a00 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,180,50,0.5), 0 0 40px 16px rgba(255,120,0,0.2);
  animation: fp1-flame 2s ease-in-out infinite alternate;
}
.scn-flank-positions-efficacy-danger .shadow {
  position: absolute; bottom: 0; left: 30%; right: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.25) 100%);
  filter: blur(8px);
  pointer-events: none;
  animation: fp1-shadow 6s ease-in-out infinite alternate;
}
@keyframes fp1-map {
  0% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(4deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes fp1-piece-a {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(4px,-1px) rotate(3deg); }
  50% { transform: translate(8px,0) rotate(-2deg); }
  75% { transform: translate(12px,-2px) rotate(4deg); }
}
@keyframes fp1-piece-b {
  0%,100% { transform: translate(0,0); }
  50% { transform: translate(-6px,1px) rotate(-5deg); }
}
@keyframes fp1-shake {
  0%,100% { transform: translateX(0); }
  10%,30%,50%,70%,90% { transform: translateX(-1px); }
  20%,40%,60%,80% { transform: translateX(1px); }
}
@keyframes fp1-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; box-shadow: 0 0 25px 10px rgba(255,200,50,0.6), 0 0 50px 20px rgba(255,100,0,0.3); }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.85; }
}
@keyframes fp1-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

/* flank-positions-cautious-opponent - calm bright interior */
.scn-flank-positions-cautious-opponent {
  background:
    linear-gradient(180deg, #f8edd0 0%, #ede0c0 40%, #d4c8a0 100%),
    radial-gradient(ellipse at 50% 20%, #fff9e6 0%, transparent 70%);
}
.scn-flank-positions-cautious-opponent .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e0d2a8 0%, #c4b68a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.08);
}
.scn-flank-positions-cautious-opponent .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b09868 0%, #907850 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-flank-positions-cautious-opponent .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #7d6038 0%, #5e4620 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -2px 0 #4a3318, 0 8px 16px rgba(0,0,0,0.4);
}
.scn-flank-positions-cautious-opponent .map {
  position: absolute; bottom: 22%; left: 18%; right: 18%; height: 24%;
  background: linear-gradient(135deg, #dcc894 30%, #c4b07a 60%, #e6d4a0 90%);
  border-radius: 1%;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.3), 0 4px 8px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
  animation: fp2-map 30s ease-in-out infinite alternate;
}
.scn-flank-positions-cautious-opponent .piece-a {
  position: absolute; bottom: 30%; left: 38%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: fp2-piece-a 12s ease-in-out infinite;
}
.scn-flank-positions-cautious-opponent .piece-b {
  position: absolute; bottom: 32%; left: 52%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, #3d0f12 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: -1px 2px 4px rgba(0,0,0,0.3);
  animation: fp2-piece-b 15s ease-in-out infinite;
}
.scn-flank-positions-cautious-opponent .candle {
  position: absolute; bottom: 52%; left: 60%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4be8a 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,0.15);
}
.scn-flank-positions-cautious-opponent .flame {
  position: absolute; bottom: 72%; left: 60.3%; width: 6px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #ffe48a 0%, #ffb030 50%, #ff7a00 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,180,50,0.4), 0 0 40px 16px rgba(255,120,0,0.15);
  animation: fp2-flame 3s ease-in-out infinite alternate;
}
.scn-flank-positions-cautious-opponent .shadow {
  position: absolute; bottom: 0; left: 30%; right: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 100%);
  filter: blur(8px);
  pointer-events: none;
  animation: fp2-shadow 12s ease-in-out infinite alternate;
}
@keyframes fp2-map {
  0% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(4.5deg) translateY(-1px); }
  100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes fp2-piece-a {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(3px,-1px) rotate(2deg); }
}
@keyframes fp2-piece-b {
  0%,100% { transform: translate(0,0); }
  50% { transform: translate(-4px,1px) rotate(-3deg); }
}
@keyframes fp2-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.9; }
}
@keyframes fp2-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.55; }
}

/* defence-of-mountains-intro - calm bright interior */
.scn-defence-of-mountains-intro {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #d4bf94 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e1 0%, transparent 70%);
}
.scn-defence-of-mountains-intro .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d9c494 0%, #c4ad78 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-defence-of-mountains-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #a88355 0%, #8b6d44 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-defence-of-mountains-intro .table {
  position: absolute; bottom: 20%; left: 12%; right: 12%; height: 30%;
  background: linear-gradient(180deg, #6b4c2a 0%, #543d1f 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -2px 0 #4a3318, 0 8px 16px rgba(0,0,0,0.4);
}
.scn-defence-of-mountains-intro .map.mountain {
  position: absolute; bottom: 22%; left: 16%; right: 16%; height: 24%;
  background: linear-gradient(135deg, #d4c694 30%, #bca87a 60%, #e2d4a8 90%);
  border-radius: 1%;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.3), 0 4px 8px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
  animation: dm1-map 25s ease-in-out infinite alternate;
}
.scn-defence-of-mountains-intro .piece-c {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 22px;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: dm1-piece-c 20s ease-in-out infinite;
}
.scn-defence-of-mountains-intro .piece-d {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, #3d0f12 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: -1px 2px 4px rgba(0,0,0,0.3);
  animation: dm1-piece-d 22s ease-in-out infinite;
}
.scn-defence-of-mountains-intro .lamp {
  position: absolute; bottom: 52%; left: 55%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d4be8a 0%, #b09868 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,0.2);
}
.scn-defence-of-mountains-intro .glow {
  position: absolute; bottom: 58%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd680 0%, rgba(255,214,128,0.2) 50%, transparent 100%);
  transform: translate(-50%, 50%);
  animation: dm1-glow 8s ease-in-out infinite alternate;
}
.scn-defence-of-mountains-intro .page {
  position: absolute; bottom: 24%; left: 26%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #f0e4c0 0%, #dccc98 100%);
  border-radius: 1px 4px 4px 1px;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  transform: perspective(200px) rotateY(-5deg);
  animation: dm1-page 30s ease-in-out infinite alternate;
}
@keyframes dm1-map {
  0% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(4.8deg) translateY(-1px); }
  100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes dm1-piece-c {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-1px) rotate(1deg); }
}
@keyframes dm1-piece-d {
  0%,100% { transform: translate(0,0); }
  50% { transform: translate(-3px,1px) rotate(-2deg); }
}
@keyframes dm1-glow {
  0% { opacity: 0.7; transform: translate(-50%, 50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.1); }
  100% { opacity: 0.75; transform: translate(-50%, 50%) scale(0.95); }
}
@keyframes dm1-page {
  0%,100% { transform: perspective(200px) rotateY(-5deg); }
  50% { transform: perspective(200px) rotateY(-3deg) translateX(2px); }
}

/* defence-mountains-tactical-nature - calm bright interior */
.scn-defence-mountains-tactical-nature {
  background:
    linear-gradient(180deg, #f8edd0 0%, #ede0c0 40%, #d4c8a0 100%),
    radial-gradient(ellipse at 50% 20%, #fff9e6 0%, transparent 70%);
}
.scn-defence-mountains-tactical-nature .wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #e0d2a8 0%, #c4b68a 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.08);
}
.scn-defence-mountains-tactical-nature .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b09868 0%, #907850 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-defence-mountains-tactical-nature .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #7d6038 0%, #5e4620 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -2px 0 #4a3318, 0 8px 16px rgba(0,0,0,0.4);
}
.scn-defence-mountains-tactical-nature .map.mountain {
  position: absolute; bottom: 22%; left: 18%; right: 18%; height: 24%;
  background: linear-gradient(135deg, #dcc894 30%, #c4b07a 60%, #e6d4a0 90%);
  border-radius: 1%;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.3), 0 4px 8px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
  animation: dm2-map 28s ease-in-out infinite alternate;
}
.scn-defence-mountains-tactical-nature .piece-e {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: dm2-piece-e 18s ease-in-out infinite;
}
.scn-defence-mountains-tactical-nature .piece-f {
  position: absolute; bottom: 32%; left: 52%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #5e1a1d 0%, #3d0f12 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: -1px 2px 4px rgba(0,0,0,0.3);
  animation: dm2-piece-f 20s ease-in-out infinite;
}
.scn-defence-mountains-tactical-nature .lamp {
  position: absolute; bottom: 52%; left: 58%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #d4be8a 0%, #b09868 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -4px 4px rgba(0,0,0,0.2);
}
.scn-defence-mountains-tactical-nature .glow {
  position: absolute; bottom: 58%; left: 53%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd680 0%, rgba(255,214,128,0.2) 50%, transparent 100%);
  transform: translate(-50%, 50%);
  animation: dm2-glow 9s ease-in-out infinite alternate;
}
.scn-defence-mountains-tactical-nature .page {
  position: absolute; bottom: 24%; left: 24%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #f0e4c0 0%, #dccc98 100%);
  border-radius: 1px 4px 4px 1px;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  transform: perspective(200px) rotateY(-6deg);
  animation: dm2-page 32s ease-in-out infinite alternate;
}
@keyframes dm2-map {
  0% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(4.5deg) translateY(-1px); }
  100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes dm2-piece-e {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(3px,-1px) rotate(2deg); }
}
@keyframes dm2-piece-f {
  0%,100% { transform: translate(0,0); }
  50% { transform: translate(-4px,1px) rotate(-3deg); }
}
@keyframes dm2-glow {
  0% { opacity: 0.7; transform: translate(-50%, 50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.15); }
  100% { opacity: 0.75; transform: translate(-50%, 50%) scale(0.95); }
}
@keyframes dm2-page {
  0%,100% { transform: perspective(200px) rotateY(-6deg); }
  50% { transform: perspective(200px) rotateY(-4deg) translateX(2px); }
}

.scn-tactics-tried-to-find-way { background: linear-gradient(180deg, #2a2318 0%, #3d3224 40%, #2e271c 100%), radial-gradient(ellipse at 30% 50%, #4a3e2a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-tactics-tried-to-find-way .wall-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #3d3224 0%, #2a2318 100%); }
.scn-tactics-tried-to-find-way .desk { position: absolute; bottom: 8%; left: 10%; right: 10%; height: 32%; background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: s1-desk 12s ease-in-out infinite alternate; }
.scn-tactics-tried-to-find-way .lamp-body { position: absolute; bottom: 38%; left: 60%; width: 40px; height: 70px; background: linear-gradient(180deg, #8b7355 0%, #5c4834 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom center; animation: s1-lamp 8s ease-in-out infinite alternate; }
.scn-tactics-tried-to-find-way .lamp-glow { position: absolute; bottom: 50%; left: 58%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(200,160,100,.6) 0%, rgba(200,160,100,0) 70%); border-radius: 50%; filter: blur(8px); animation: s1-glow 4s ease-in-out infinite alternate; }
.scn-tactics-tried-to-find-way .figure-sil { position: absolute; bottom: 28%; left: 20%; width: 60px; height: 120px; background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-figure 6s ease-in-out infinite; }
.scn-tactics-tried-to-find-way .papers { position: absolute; bottom: 18%; left: 30%; width: 90px; height: 60px; background: #d4c4a0; border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.5); animation: s1-papers 10s ease-in-out infinite alternate; }
.scn-tactics-tried-to-find-way .clock { position: absolute; top: 12%; right: 10%; width: 50px; height: 50px; border: 4px solid #8b7355; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #b8a88a 0%, #8b7355 100%); box-shadow: 0 0 12px rgba(0,0,0,.4); animation: s1-clock 6s ease-in-out infinite; }
@keyframes s1-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s1-lamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes s1-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes s1-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s1-papers { 0% { transform: translateX(0); opacity: 0.9 } 50% { transform: translateX(3px); opacity: 1 } 100% { transform: translateX(0); opacity: 0.95 } }
@keyframes s1-clock { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

.scn-real-conduct-of-war-appeared-incidentally { background: linear-gradient(180deg, #1e1b16 0%, #2e281e 40%, #1e1b16 100%), radial-gradient(ellipse at 70% 30%, #3d3228 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-real-conduct-of-war-appeared-incidentally .shelves { position: absolute; top: 8%; left: 5%; right: 5%; bottom: 15%; background: linear-gradient(180deg, #4a3e2a 0%, #3d3224 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: s2-shelves 20s ease-in-out infinite alternate; }
.scn-real-conduct-of-war-appeared-incidentally .books-left { position: absolute; top: 12%; left: 10%; width: 30%; height: 50%; background: linear-gradient(90deg, #6b4f3a 0%, #a0856e 20%, #8b7355 40%, #5c4834 60%, #7a604a 80%, #4a3528 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: s2-books 12s ease-in-out infinite alternate; }
.scn-real-conduct-of-war-appeared-incidentally .books-right { position: absolute; top: 18%; right: 8%; width: 25%; height: 40%; background: linear-gradient(90deg, #5c4834 0%, #8b7355 30%, #a0856e 60%, #6b4f3a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: s2-books 15s ease-in-out infinite alternate-reverse; }
.scn-real-conduct-of-war-appeared-incidentally .globe { position: absolute; bottom: 25%; left: 20%; width: 60px; height: 60px; border-radius: 50%; background: radial-gradient(circle at 35% 40%, #8b7355 0%, #4a3e2a 70%, #2e281e 100%); box-shadow: 0 0 10px rgba(0,0,0,.5); animation: s2-globe 6s ease-in-out infinite; }
.scn-real-conduct-of-war-appeared-incidentally .globe-stand { position: absolute; bottom: 20%; left: 23%; width: 8px; height: 30px; background: #5c4834; border-radius: 2px; transform-origin: bottom center; animation: s2-stand 8s ease-in-out infinite alternate; }
.scn-real-conduct-of-war-appeared-incidentally .candle { position: absolute; bottom: 18%; left: 60%; width: 12px; height: 45px; background: linear-gradient(180deg, #e8d8c0 0%, #c4b098 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: s2-candle-body 6s ease-in-out infinite; }
.scn-real-conduct-of-war-appeared-incidentally .candle-glow { position: absolute; bottom: 28%; left: 57%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(240,200,140,.5) 0%, rgba(240,200,140,0) 70%); border-radius: 50%; filter: blur(6px); animation: s2-glow 3s ease-in-out infinite alternate; }
.scn-real-conduct-of-war-appeared-incidentally .figure-half { position: absolute; bottom: 12%; right: 18%; width: 40px; height: 80px; background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-figure 6s ease-in-out infinite; }
@keyframes s2-shelves { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes s2-books { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes s2-globe { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes s2-stand { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes s2-candle-body { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes s2-glow { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes s2-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-want-of-a-theory-reflections { background: linear-gradient(180deg, #1a1a22 0%, #2a2a34 40%, #1e1e26 100%), radial-gradient(ellipse at 50% 80%, #3a3a44 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-want-of-a-theory-reflections .window-frame { position: absolute; top: 8%; left: 20%; right: 20%; bottom: 50%; background: linear-gradient(180deg, #3a3228 0%, #2a241c 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: s3-frame 20s ease-in-out infinite alternate; }
.scn-want-of-a-theory-reflections .window-glass { position: absolute; top: 10%; left: 22%; right: 22%; bottom: 52%; background: linear-gradient(180deg, rgba(100,120,160,0.3) 0%, rgba(100,120,160,0.05) 100%); border: 1px solid rgba(120,140,180,0.2); border-radius: 2px; box-shadow: 0 0 12px rgba(100,120,160,0.1); animation: s3-glass 6s ease-in-out infinite alternate; }
.scn-want-of-a-theory-reflections .curtain-left { position: absolute; top: 8%; left: 18%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3e 0%, #4a3a2e 100%); border-radius: 0 30% 30% 0; box-shadow: 3px 0 6px rgba(0,0,0,.4); animation: s3-curtain 8s ease-in-out infinite alternate; }
.scn-want-of-a-theory-reflections .curtain-right { position: absolute; top: 8%; right: 18%; width: 10%; height: 60%; background: linear-gradient(180deg, #5a4a3e 0%, #4a3a2e 100%); border-radius: 30% 0 0 30%; box-shadow: -3px 0 6px rgba(0,0,0,.4); animation: s3-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-want-of-a-theory-reflections .chair { position: absolute; bottom: 12%; left: 30%; width: 40px; height: 60px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: s3-chair 12s ease-in-out infinite alternate; }
.scn-want-of-a-theory-reflections .table-small { position: absolute; bottom: 8%; left: 45%; width: 70px; height: 40px; background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%); border-radius: 3px; box-shadow: 0 -2px 6px rgba(0,0,0,.4); animation: s3-table 10s ease-in-out infinite alternate; }
.scn-want-of-a-theory-reflections .mirror { position: absolute; top: 30%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border: 3px solid #5a4a3e; border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,.5); animation: s3-mirror 6s ease-in-out infinite; }
.scn-want-of-a-theory-reflections .mirror-reflection { position: absolute; top: 32%; left: 52%; width: 20px; height: 30px; background: radial-gradient(circle at 40% 40%, rgba(200,180,160,0.4) 0%, rgba(200,180,160,0) 70%); border-radius: 50%; filter: blur(4px); animation: s3-reflection 5s ease-in-out infinite alternate; }
@keyframes s3-frame { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes s3-glass { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes s3-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes s3-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s3-table { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes s3-mirror { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes s3-reflection { 0% { opacity: 0.3; transform: translate(0,0) } 50% { opacity: 0.5; transform: translate(2px,-2px) } 100% { opacity: 0.3; transform: translate(0,0) } }

.scn-endeavours-to-establish-positive-theory { background: linear-gradient(180deg, #1e1b16 0%, #2e281e 40%, #1e1b16 100%), radial-gradient(ellipse at 30% 40%, #3d3228 0%, transparent 80%); position: relative; overflow: hidden; }
.scn-endeavours-to-establish-positive-theory .desk-top { position: absolute; bottom: 5%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #6b4f3a 0%, #4a3528 100%); border-radius: 3px; box-shadow: 0 -4px 10px rgba(0,0,0,.6); animation: s4-desk 15s ease-in-out infinite alternate; }
.scn-endeavours-to-establish-positive-theory .book-stack-1 { position: absolute; bottom: 30%; left: 15%; width: 80px; height: 30px; background: linear-gradient(90deg, #5c4834 0%, #8b7355 50%, #6b4f3a 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: s4-stack1 12s ease-in-out infinite alternate; }
.scn-endeavours-to-establish-positive-theory .book-stack-2 { position: absolute; bottom: 22%; left: 20%; width: 70px; height: 25px; background: linear-gradient(90deg, #7a604a 0%, #a0856e 50%, #8b7355 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: s4-stack2 14s ease-in-out infinite alternate-reverse; }
.scn-endeavours-to-establish-positive-theory .candle-body { position: absolute; bottom: 28%; left: 65%; width: 10px; height: 40px; background: linear-gradient(180deg, #e8d8c0 0%, #c4b098 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: s4-candle 6s ease-in-out infinite; }
.scn-endeavours-to-establish-positive-theory .candle-flame { position: absolute; bottom: 40%; left: 65.5%; width: 8px; height: 12px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #e8a060 40%, transparent 80%); border-radius: 50%; filter: blur(1px); animation: s4-flame 2s ease-in-out infinite alternate; }
.scn-endeavours-to-establish-positive-theory .compass { position: absolute; bottom: 16%; left: 55%; width: 30px; height: 30px; border: 2px solid #b8a88a; border-radius: 50%; background: radial-gradient(circle at 50% 50%, #c4b098 0%, #8b7355 100%); box-shadow: 0 0 8px rgba(0,0,0,.3); animation: s4-compass 8s ease-in-out infinite; }
.scn-endeavours-to-establish-positive-theory .quill { position: absolute; bottom: 20%; left: 40%; width: 5px; height: 30px; background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%); border-radius: 50% 50% 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: s4-quill 10s ease-in-out infinite alternate; }
.scn-endeavours-to-establish-positive-theory .inkwell { position: absolute; bottom: 14%; left: 38%; width: 18px; height: 18px; background: #1a1510; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: s4-inkwell 16s ease-in-out infinite alternate; }
@keyframes s4-desk { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes s4-stack1 { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes s4-stack2 { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes s4-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes s4-flame { 0% { transform: scale(1) translateY(0); opacity: 0.9 } 50% { transform: scale(1.05) translateY(-1px); opacity: 1 } 100% { transform: scale(1) translateY(0); opacity: 0.9 } }
@keyframes s4-compass { 0% { transform: rotate(0) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0) } }
@keyframes s4-quill { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes s4-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-preface-blessed-wife {
  background: linear-gradient(180deg, #2b1a0e 0%, #3d2516 40%, #4a2d1a 100%), radial-gradient(ellipse at 50% 20%, rgba(180,120,60,0.2) 0%, transparent 70%);
}
.scn-preface-blessed-wife .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3d2516 0%, #1f1108 100%);
  animation: pbw-bg 8s ease-in-out infinite alternate;
}
.scn-preface-blessed-wife .wall-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, #00000040 0%, transparent 70%);
  animation: pbw-shadow 12s ease-in-out infinite alternate;
}
.scn-preface-blessed-wife .table {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 8%; background: linear-gradient(180deg, #5c3a20 0%, #3a2210 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-preface-blessed-wife .candle {
  position: absolute; bottom: 13%; left: 50%; width: 6px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 60%, #8a6020 100%);
  border-radius: 2px 2px 1px 1px; box-shadow: 0 0 8px rgba(200,160,96,0.3);
}
.scn-preface-blessed-wife .flame {
  position: absolute; bottom: calc(13% + 40px); left: 50%; width: 8px; height: 12px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px #ffa04080, 0 0 32px 12px #ff800040;
  animation: pbw-flame 2s ease-in-out infinite;
}
.scn-preface-blessed-wife .woman-silhouette {
  position: absolute; bottom: 13%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0e06 0%, #0f0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbw-breathe 6s ease-in-out infinite;
}
.scn-preface-blessed-wife .memory-particle {
  position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, #ffd08080 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
}
.scn-preface-blessed-wife .memory-particle.a {
  top: 40%; left: 20%; animation: pbw-drift-a 20s linear infinite;
}
.scn-preface-blessed-wife .memory-particle.b {
  top: 50%; left: 60%; animation: pbw-drift-b 25s linear infinite;
}
.scn-preface-blessed-wife .memory-particle.c {
  top: 35%; left: 70%; animation: pbw-drift-c 18s linear infinite;
}

@keyframes pbw-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pbw-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes pbw-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.3) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); opacity: 0.85; } }
@keyframes pbw-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pbw-drift-a { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(30px, -20px) scale(0.8); opacity: 0.7; } 100% { transform: translate(-20px, 10px) scale(1.2); opacity: 0.2; } }
@keyframes pbw-drift-b { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 50% { transform: translate(-40px, -30px) scale(1.1); opacity: 0.8; } 100% { transform: translate(20px, 20px) scale(0.9); opacity: 0.3; } }
@keyframes pbw-drift-c { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 50% { transform: translate(20px, 30px) scale(0.7); opacity: 0.6; } 100% { transform: translate(-30px, -10px) scale(1.3); opacity: 0.1; } }

.scn-preface-royal-couple-trust {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2516 40%, #4a2d1a 100%), radial-gradient(ellipse at 50% 30%, #5e3a22 0%, transparent 70%);
}
.scn-preface-royal-couple-trust .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2516 0%, #1f1108 100%);
  animation: rct-bg 10s ease-in-out infinite alternate;
}
.scn-preface-royal-couple-trust .cradle {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rct-cradle 8s ease-in-out infinite;
}
.scn-preface-royal-couple-trust .child-blanket {
  position: absolute; bottom: 14%; left: 40%; right: 40%; height: 12%;
  background: linear-gradient(180deg, #8a6040 0%, #5e3a22 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  animation: rct-blanket 6s ease-in-out infinite;
}
.scn-preface-royal-couple-trust .royal-silhouette {
  position: absolute; bottom: 10%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #1a0e06 0%, #0f0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-preface-royal-couple-trust .royal-silhouette.left {
  left: 20%; animation: rct-figure-left 7s ease-in-out infinite;
}
.scn-preface-royal-couple-trust .royal-silhouette.right {
  right: 20%; animation: rct-figure-right 7s ease-in-out infinite;
}
.scn-preface-royal-couple-trust .glow-orb {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffd08080 0%, #ffa04040 50%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: rct-glow 4s ease-in-out infinite;
}
.scn-preface-royal-couple-trust .shadow-vignette {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, #00000060 0%, transparent 60%);
  animation: rct-vignette 12s ease-in-out infinite alternate;
}

@keyframes rct-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rct-cradle { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-0.5deg); } }
@keyframes rct-blanket { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes rct-figure-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rct-figure-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rct-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); } }
@keyframes rct-vignette { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-preface-marble-palace-signature {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 40%, #887060 100%), radial-gradient(ellipse at 40% 30%, #d0c0a8 0%, transparent 60%);
}
.scn-preface-marble-palace-signature .bg-marble {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8c8b0 0%, #b8a090 50%, #988070 100%);
  animation: mps-bg 15s ease-in-out infinite alternate;
}
.scn-preface-marble-palace-signature .window-frame {
  position: absolute; top: 5%; left: 10%; right: 60%; bottom: 30%;
  border: 6px solid #5a3a2a; background: radial-gradient(ellipse at 50% 30%, #e0e8f0 0%, #c0c8d0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-preface-marble-palace-signature .light-beam {
  position: absolute; top: 8%; left: 15%; right: 55%; bottom: 10%;
  background: linear-gradient(135deg, rgba(255,255,240,0.15) 0%, rgba(255,255,240,0.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: mps-beam 6s ease-in-out infinite alternate;
}
.scn-preface-marble-palace-signature .desk-marble {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a090 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-preface-marble-palace-signature .paper {
  position: absolute; bottom: 12%; left: 35%; right: 25%; height: 18%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: mps-paper 8s ease-in-out infinite;
}
.scn-preface-marble-palace-signature .quill {
  position: absolute; bottom: 20%; left: 40%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a090 100%);
  border-radius: 2px 2px 0 0; transform-origin: bottom center;
  animation: mps-quill 3s ease-in-out infinite;
}
.scn-preface-marble-palace-signature .ink-pot {
  position: absolute; bottom: 10%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-preface-marble-palace-signature .dust-mote {
  position: absolute; width: 4px; height: 4px; background: radial-gradient(circle, #f0e8d080 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
}
.scn-preface-marble-palace-signature .dust-mote.a {
  top: 20%; left: 25%; animation: mps-dust-a 30s linear infinite;
}
.scn-preface-marble-palace-signature .dust-mote.b {
  top: 35%; left: 40%; animation: mps-dust-b 40s linear infinite;
}

@keyframes mps-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mps-beam { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes mps-paper { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mps-quill { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }
@keyframes mps-dust-a { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(60px, -40px) scale(0.8); opacity: 0.6; } 100% { transform: translate(-30px, 20px) scale(1.2); opacity: 0.1; } }
@keyframes mps-dust-b { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(-50px, -30px) scale(1.1); opacity: 0.5; } 100% { transform: translate(40px, 10px) scale(0.9); opacity: 0.1; } }

.scn-author-notice-1827-revision {
  background: linear-gradient(180deg, #1f1610 0%, #2a1e16 40%, #36231a 100%), radial-gradient(ellipse at 50% 40%, #4a3020 0%, transparent 70%);
}
.scn-author-notice-1827-revision .bg-study {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e16 0%, #140c08 100%);
  animation: anr-bg 12s ease-in-out infinite alternate;
}
.scn-author-notice-1827-revision .desk-wood {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-author-notice-1827-revision .manuscript-stack {
  position: absolute; bottom: 17%; left: 35%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #e0d0b0 0%, #b8a890 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: anr-stack 10s ease-in-out infinite;
}
.scn-author-notice-1827-revision .candle-stub {
  position: absolute; bottom: 17%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b89060 60%, #6a4020 100%);
  border-radius: 2px 2px 1px 1px;
}
.scn-author-notice-1827-revision .flame-dim {
  position: absolute; bottom: calc(17% + 20px); left: 55%; width: 6px; height: 10px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #c09040 0%, #80602040 100%);
  border-radius: 50%; box-shadow: 0 0 8px 4px #80602040;
  animation: anr-flame 4s ease-in-out infinite;
}
.scn-author-notice-1827-revision .thinker-shadow {
  position: absolute; bottom: 17%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0f0804 0%, #080400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: anr-think 9s ease-in-out infinite;
}
.scn-author-notice-1827-revision .paper-sheet {
  position: absolute; width: 40px; height: 15px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b8a0 100%);
  border-radius: 2px; box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
.scn-author-notice-1827-revision .paper-sheet.a {
  bottom: 22%; left: 30%; animation: anr-paper-a 8s ease-in-out infinite;
}
.scn-author-notice-1827-revision .paper-sheet.b {
  bottom: 20%; left: 42%; animation: anr-paper-b 10s ease-in-out infinite;
}

@keyframes anr-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes anr-stack { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes anr-flame { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.6; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 0.8; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.5; } }
@keyframes anr-think { 0% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes anr-paper-a { 0% { transform: translateY(0) rotate(2deg) scale(1); } 50% { transform: translateY(-5px) rotate(-1deg) scale(0.95); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes anr-paper-b { 0% { transform: translateY(0) rotate(-3deg) scale(1); } 50% { transform: translateY(-4px) rotate(2deg) scale(0.97); } 100% { transform: translateY(0) rotate(0) scale(1); } }

/* introduction-colours-and-war – tense, dim-interior, black/red/white flag */
.scn-introduction-colours-and-war {
  background:
    radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, #0d0d1a 70%),
    linear-gradient(180deg, #0a0a14 0%, #1a1a3e 40%, #2a1a1a 100%);
  position: relative; overflow: hidden;
}
.scn-introduction-colours-and-war .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #14142a 0%, #1a1220 100%);
  box-shadow: inset 0 0 60px #000; opacity: .9;
}
.scn-introduction-colours-and-war .window-frame {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 140px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4px;
  border: 6px solid #3a2a2a; box-shadow: inset 0 0 20px #000;
}
.scn-introduction-colours-and-war .flag-black {
  position: absolute; top: 12%; left: 50%; width: 80px; height: 26px; transform: translateX(-50%);
  background: #1a1a1a; border-radius: 2px;
  animation: cw1-flagpull 6s ease-in-out infinite alternate;
}
.scn-introduction-colours-and-war .flag-white {
  position: absolute; top: calc(12% + 26px); left: 50%; width: 80px; height: 26px; transform: translateX(-50%);
  background: #ddd9d0; border-radius: 2px;
  animation: cw1-flagpull 6s ease-in-out infinite alternate;
}
.scn-introduction-colours-and-war .flag-red {
  position: absolute; top: calc(12% + 52px); left: 50%; width: 80px; height: 26px; transform: translateX(-50%);
  background: #c8553d; border-radius: 2px;
  animation: cw1-flagpull 6s ease-in-out infinite alternate;
}
.scn-introduction-colours-and-war .candle-glow {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c060 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: cw1-flicker 3s ease-in-out infinite alternate;
}
.scn-introduction-colours-and-war .candle-body {
  position: absolute; bottom: 18%; left: calc(30% + 14px); width: 12px; height: 36px;
  background: linear-gradient(180deg, #e8d8b0 0%, #b89860 100%);
  border-radius: 2px 2px 4px 4px;
  animation: cw1-wobble 4s ease-in-out infinite;
}
.scn-introduction-colours-and-war .table {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px #000;
}
.scn-introduction-colours-and-war .shadow-figure {
  position: absolute; bottom: 12%; left: 60%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw1-figure 8s ease-in-out infinite;
}
@keyframes cw1-flagpull {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.85); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes cw1-flicker {
  0% { opacity: .7; box-shadow: 0 0 20px 4px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 10px #f0c060; }
  100% { opacity: .8; box-shadow: 0 0 25px 6px #b08040; }
}
@keyframes cw1-wobble {
  0%,100% { transform: rotate(0deg); }
  33% { transform: rotate(2deg); }
  66% { transform: rotate(-1deg); }
}
@keyframes cw1-figure {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-8px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}

/* introduction-force-and-politics – tense, dim-interior, militaristic */
.scn-introduction-force-and-politics {
  background:
    radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, #10101a 70%),
    linear-gradient(180deg, #0d0d18 0%, #1a1420 100%);
  position: relative; overflow: hidden;
}
.scn-introduction-force-and-politics .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 100%);
  box-shadow: inset 0 0 80px #0a0a0a;
}
.scn-introduction-force-and-politics .map {
  position: absolute; top: 40%; left: 10%; width: 50%; height: 40%;
  background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 40%, #1a2a1a 100%);
  border-radius: 4px; border: 3px solid #5a5a4a;
  animation: fp1-maprust 15s ease-in-out infinite alternate;
}
.scn-introduction-force-and-politics .soldier-silhouette {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 80px;
  background: #0a0a14; border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fp1-stand 8s ease-in-out infinite;
}
.scn-introduction-force-and-politics .rifle {
  position: absolute; bottom: 30%; right: 6%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation: fp1-aim 10s ease-in-out infinite alternate;
}
.scn-introduction-force-and-politics .target-dot {
  position: absolute; top: 38%; left: 15%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a0461a 0%, #702243 100%);
  border-radius: 50%; box-shadow: 0 0 12px 4px #a0461a;
  animation: fp1-pulse 4s ease-in-out infinite;
}
.scn-introduction-force-and-politics .desk {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -6px 20px #000;
}
.scn-introduction-force-and-politics .lamp-glow {
  position: absolute; bottom: 12%; left: 68%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0a060 0%, #805020 50%, transparent 80%);
  border-radius: 50%;
  animation: fp1-lamp 6s ease-in-out infinite alternate;
}
.scn-introduction-force-and-politics .paper-edge {
  position: absolute; bottom: 8%; left: 20%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%);
  border-radius: 0 0 4px 4px; box-shadow: 0 2px 6px #000;
}
@keyframes fp1-maprust {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.02); }
  100% { opacity: .8; transform: scale(0.98); }
}
@keyframes fp1-stand {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
}
@keyframes fp1-aim {
  0% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(4px); }
}
@keyframes fp1-pulse {
  0% { box-shadow: 0 0 8px 2px #a0461a; opacity: .7; }
  50% { box-shadow: 0 0 20px 6px #a0461a; opacity: 1; }
  100% { box-shadow: 0 0 10px 3px #a0461a; opacity: .8; }
}
@keyframes fp1-lamp {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(0.95); }
}

/* introduction-darwin-and-survival – calm, dim-interior, naturalist study */
.scn-introduction-darwin-and-survival {
  background:
    radial-gradient(ellipse at 50% 60%, #2a3a2a 0%, #1a2a1a 70%),
    linear-gradient(180deg, #0d1a0d 0%, #1a2a1a 40%, #2a1a1a 100%);
  position: relative; overflow: hidden;
}
.scn-introduction-darwin-and-survival .shelf {
  position: absolute; top: 20%; left: 5%; right: 5%; height: 4px;
  background: #4a3a2a; box-shadow: 0 4px 8px #000;
}
.scn-introduction-darwin-and-survival .books {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px #000;
  animation: ds3-tilt 12s ease-in-out infinite alternate;
}
.scn-introduction-darwin-and-survival .microscope {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: ds3-micromove 20s ease-in-out infinite alternate;
}
.scn-introduction-darwin-and-survival .specimen-jar {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,180,.3) 0%, rgba(200,200,180,.1) 80%);
  border: 2px solid #8a8a7a; border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 10px rgba(200,200,180,.2);
  animation: ds3-sway 18s ease-in-out infinite;
}
.scn-introduction-darwin-and-survival .leaf-sample {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%;
  transform: rotate(-10deg);
  animation: ds3-leaf 14s ease-in-out infinite alternate;
}
.scn-introduction-darwin-and-survival .desk-lamp {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  animation: ds3-lamp 6s ease-in-out infinite alternate;
}
.scn-introduction-darwin-and-survival .warm-glow {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #e0c080 0%, #806040 50%, transparent 80%);
  border-radius: 50%; opacity: .5;
  animation: ds3-glow 8s ease-in-out infinite alternate;
}
@keyframes ds3-tilt {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ds3-micromove {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(0.98); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes ds3-sway {
  0%,100% { transform: rotate(0deg); }
  33% { transform: rotate(3deg); }
  66% { transform: rotate(-2deg); }
}
@keyframes ds3-leaf {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.05); }
  100% { transform: rotate(-15deg) scaleX(0.95); }
}
@keyframes ds3-lamp {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(0.95); }
  100% { opacity: .7; transform: scaleY(1); }
}
@keyframes ds3-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.2); }
  100% { opacity: .5; transform: scale(0.9); }
}

/* introduction-equilibrium-of-forces – calm, dim-interior, balance */
.scn-introduction-equilibrium-of-forces {
  background:
    radial-gradient(ellipse at 50% 70%, #1a2a2a 0%, #0d1a1a 80%),
    linear-gradient(180deg, #0a1414 0%, #1a2a2a 40%, #2a1a1a 100%);
  position: relative; overflow: hidden;
}
.scn-introduction-equilibrium-of-forces .table-top {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -8px 30px #000;
}
.scn-introduction-equilibrium-of-forces .globe {
  position: absolute; bottom: 22%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #5a7a5a 0%, #3a5a3a 60%, #1a2a1a 100%);
  border-radius: 50%; box-shadow: 0 4px 12px #000;
  animation: ef4-spin 30s linear infinite;
}
.scn-introduction-equilibrium-of-forces .scale-left {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px #000;
  transform-origin: bottom center;
  animation: ef4-balance 12s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-of-forces .scale-right {
  position: absolute; bottom: 28%; left: 58%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px #000;
  transform-origin: bottom center;
  animation: ef4-balance 12s ease-in-out infinite alternate-reverse;
}
.scn-introduction-equilibrium-of-forces .scale-beam {
  position: absolute; bottom: 38%; left: 35%; width: 30%; height: 4px;
  background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 4px #000;
  transform-origin: center;
  animation: ef4-beam 12s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-of-forces .map-europe {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 60%);
  border-radius: 2px; border: 2px solid #5a5a4a;
  animation: ef4-mapglow 15s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-of-forces .candle-a {
  position: absolute; bottom: 20%; right: 15%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #b89860 100%);
  border-radius: 2px 2px 4px 4px;
  animation: ef4-candle 5s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-of-forces .candle-b {
  position: absolute; bottom: 20%; right: 30%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #e8d8b0 0%, #b89860 100%);
  border-radius: 2px 2px 4px 4px;
  animation: ef4-candle 5s ease-in-out 2.5s infinite alternate;
}
@keyframes ef4-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ef4-balance {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(4px) rotate(5deg); }
  66% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ef4-beam {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(3deg); }
  66% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ef4-mapglow {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes ef4-candle {
  0% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: .85; }
}

.scn-defence-of-streams-bonaparte-1813 {
  background:
    linear-gradient(180deg, #8b9da8 0%, #6d7f8a 40%, #4a5a63 100%),
    radial-gradient(ellipse at 50% 30%, #a0b5c0 0%, transparent 60%);
}
.scn-defence-of-streams-bonaparte-1813 .sky-low { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #b0c4d0 0%, #7a8d96 100%); animation:bon-sky 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-bonaparte-1813 .river { position:absolute; bottom:25%; left:5%; right:5%; height:18%; background:linear-gradient(90deg, #5b6e78 0%, #6c808a 30%, #4b5d67 70%, #596c76 100%); border-radius:0 0 30% 30% / 0 0 60% 60%; box-shadow: inset 0 -4px 12px rgba(0,0,0,.3); animation:bon-river 6s ease-in-out infinite alternate; }
.scn-defence-of-streams-bonaparte-1813 .bank-left { position:absolute; bottom:35%; left:10%; width:25%; height:12%; background:linear-gradient(150deg, #5c6b4a 0%, #3d4c2f 100%); border-radius:0 40% 20% 20%; }
.scn-defence-of-streams-bonaparte-1813 .bank-right { position:absolute; bottom:33%; right:8%; width:20%; height:15%; background:linear-gradient(210deg, #5c6b4a 0%, #3d4c2f 100%); border-radius:40% 0 20% 20%; }
.scn-defence-of-streams-bonaparte-1813 .bridge { position:absolute; bottom:40%; left:35%; right:35%; height:6%; background:linear-gradient(180deg, #6a4e3e 0%, #4a3428 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation:bon-bridge 12s ease-in-out infinite; }
.scn-defence-of-streams-bonaparte-1813 .figure-commander { position:absolute; bottom:43%; left:48%; width:14px; height:32px; background:linear-gradient(180deg, #2a2e35 0%, #14181e 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:bon-figure 4s ease-in-out infinite; }
.scn-defence-of-streams-bonaparte-1813 .haze { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, rgba(180,200,210,.4) 0%, transparent 70%); pointer-events:none; animation:bon-haze 15s ease-in-out infinite alternate; }
.scn-defence-of-streams-bonaparte-1813 .cloud-front { position:absolute; top:15%; left:-10%; width:90px; height:24px; background:linear-gradient(180deg, rgba(200,210,220,.6) 0%, rgba(160,180,190,.2) 100%); border-radius:50%; filter:blur(5px); animation:bon-drift-a 30s linear infinite; }
.scn-defence-of-streams-bonaparte-1813 .cloud-back { position:absolute; top:8%; right:-5%; width:70px; height:18px; background:linear-gradient(180deg, rgba(200,210,220,.4) 0%, rgba(160,180,190,.1) 100%); border-radius:50%; filter:blur(8px); animation:bon-drift-b 45s linear infinite reverse; }
@keyframes bon-sky   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes bon-river { 0% { transform: translateY(0); background-position:0 0 } 50% { transform: translateY(2px); background-position:-10px 0 } 100% { transform: translateY(0); background-position:0 0 } }
@keyframes bon-bridge{ 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(.98) translateY(1px) } }
@keyframes bon-figure{ 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bon-haze  { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes bon-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }
@keyframes bon-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-defence-of-streams-macdonald-mistake {
  background:
    linear-gradient(180deg, #3a3f47 0%, #252a32 50%, #1a1e26 100%),
    radial-gradient(ellipse at 30% 80%, #4a525f 0%, transparent 60%);
}
.scn-defence-of-streams-macdonald-mistake .sky-dark { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #505a68 0%, #2e343e 100%); animation:mac-sky 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-macdonald-mistake .ground-uneven { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #3a4038 0%, #1e221c 100%); border-radius: 80% 70% 0 0 / 60% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-defence-of-streams-macdonald-mistake .figure-macdonald { position:absolute; bottom:30%; left:25%; width:20px; height:40px; background:linear-gradient(180deg, #1a1e26 0%, #0a0d12 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation:mac-walk 2s steps(2) infinite; }
.scn-defence-of-streams-macdonald-mistake .shadow-late { position:absolute; bottom:28%; left:22%; width:28px; height:12px; background:rgba(0,0,0,.3); border-radius:50%; filter:blur(4px); animation:mac-shadow 2s step-end infinite; }
.scn-defence-of-streams-macdonald-mistake .fork-road { position:absolute; bottom:25%; left:45%; width:30px; height:40px; background: none; border-left: 3px solid #6c604c; border-right: 3px solid #6c604c; border-bottom: 2px solid #6c604c; transform:rotate(10deg); border-radius:0 0 40% 0; opacity:.6; animation:mac-fork 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-macdonald-mistake .regiment-ghost { position:absolute; bottom:22%; right:15%; width:40px; height:60px; background:linear-gradient(180deg, rgba(40,50,60,.3) 0%, transparent 100%); border-radius:30% 30% 20% 20%; filter:blur(6px); animation:mac-ghost 5s ease-in-out infinite; }
.scn-defence-of-streams-macdonald-mistake .flag-wrong { position:absolute; bottom:45%; left:55%; width:6px; height:12px; background:linear-gradient(180deg, #703830 0%, #4a2018 100%); border-radius:0 0 50% 50%; transform-origin:bottom center; animation:mac-flag 1s ease-in-out infinite alternate; }
.scn-defence-of-streams-macdonald-mistake .dust-swirl { position:absolute; bottom:35%; left:20%; width:30px; height:30px; background:radial-gradient(circle, rgba(180,170,150,.2) 0%, transparent 100%); border-radius:50%; animation:mac-dust 4s ease-in-out infinite; }
@keyframes mac-sky  { 0% { opacity:.6; background-position:0 0 } 50% { opacity:.8; background-position:20px 0 } 100% { opacity:.7; background-position:0 0 } }
@keyframes mac-walk { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mac-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(.9) } }
@keyframes mac-fork  { 0% { opacity:.4; transform: rotate(5deg) } 50% { opacity:.8; transform: rotate(15deg) } 100% { opacity:.5; transform: rotate(8deg) } }
@keyframes mac-ghost { 0% { opacity:0; transform: translateY(0) } 50% { opacity:.4; transform: translateY(-10px) } 100% { opacity:0; transform: translateY(0) } }
@keyframes mac-flag  { 0% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes mac-dust  { 0% { transform: translate(0,0) scale(1); opacity:0 } 50% { transform: translate(-15px,-10px) scale(1.5); opacity:.5 } 100% { transform: translate(-30px,-20px) scale(2); opacity:0 } }

.scn-defence-of-streams-six-weeks-value {
  background:
    linear-gradient(135deg, #d4bfa8 0%, #b89e82 60%, #9c8266 100%),
    radial-gradient(ellipse at 70% 30%, #e8d4b8 0%, transparent 70%);
}
.scn-defence-of-streams-six-weeks-value .wall-warm { position:absolute; inset:0; background:linear-gradient(180deg, #c7ad90 0%, #a88c70 100%); }
.scn-defence-of-streams-six-weeks-value .table-map { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background:linear-gradient(150deg, #7a5e3e 0%, #4c3824 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-defence-of-streams-six-weeks-value .candle { position:absolute; bottom:45%; left:50%; width:14px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg, #e8d8c8 0%, #c0a888 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-defence-of-streams-six-weeks-value .flame-core { position:absolute; bottom:70%; left:50%; width:10px; height:24px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 70%, #ffd070 0%, #ffb030 50%, #c07020 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 10px #ffa020, 0 0 60px 20px rgba(255,160,32,.3); animation:six-flame 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-six-weeks-value .chair-shadow { position:absolute; bottom:12%; right:15%; width:40px; height:20px; background:radial-gradient(ellipse at 50% 0, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; }
.scn-defence-of-streams-six-weeks-value .inkwell { position:absolute; bottom:20%; left:38%; width:16px; height:20px; background:linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-defence-of-streams-six-weeks-value .quill { position:absolute; bottom:22%; left:42%; width:4px; height:40px; background:linear-gradient(180deg, #e8d8c0 0%, #b8a088 100%); border-radius:2px; transform:rotate(-15deg); transform-origin:bottom center; animation:six-quill 6s ease-in-out infinite; }
.scn-defence-of-streams-six-weeks-value .window-rect { position:absolute; top:10%; left:60%; width:60px; height:80px; background:linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border:3px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,200,100,.5); }
.scn-defence-of-streams-six-weeks-value .window-light { position:absolute; top:12%; left:62%; width:56px; height:76px; background:linear-gradient(180deg, #d8c8a8 0%, #b8a080 100%); opacity:.6; animation:six-winlight 8s ease-in-out infinite alternate; }
@keyframes six-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.9 } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95) rotate(-1deg); opacity:.8 } }
@keyframes six-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes six-winlight { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-defence-of-streams-outpost-use {
  background:
    linear-gradient(180deg, #b8a88a 0%, #9c8c70 50%, #7a6a52 100%),
    radial-gradient(ellipse at 30% 40%, #d0c0a0 0%, transparent 70%);
}
.scn-defence-of-streams-outpost-use .room-back { position:absolute; inset:0; background:linear-gradient(180deg, #a09078 0%, #8a7a62 100%); }
.scn-defence-of-streams-outpost-use .door-arch { position:absolute; bottom:0; right:10%; width:50px; height:100%; background:radial-gradient(ellipse at 50% 0, #6a5a42 0%, #4a3a2a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-defence-of-streams-outpost-use .sentry-figure { position:absolute; bottom:10%; left:25%; width:18px; height:48px; background:linear-gradient(180deg, #3a342a 0%, #1a1610 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:out-sentry 5s ease-in-out infinite; }
.scn-defence-of-streams-outpost-use .lantern-post { position:absolute; bottom:20%; left:38%; width:8px; height:30px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
.scn-defence-of-streams-outpost-use .desk-rough { position:absolute; bottom:5%; left:15%; right:35%; height:8%; background:linear-gradient(180deg, #6a523a 0%, #4a3822 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-defence-of-streams-outpost-use .letter-pile { position:absolute; bottom:8%; left:18%; width:20px; height:8px; background:linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:2px; box-shadow: 0 1px 2px rgba(0,0,0,.2); animation:out-letter 10s ease-in-out infinite; }
.scn-defence-of-streams-outpost-use .window-bars { position:absolute; top:10%; left:60%; width:40px; height:50px; background:none; border:3px solid #3a2a1a; border-radius:4px; box-shadow: inset 0 0 10px rgba(200,180,140,.3); }
.scn-defence-of-streams-outpost-use .outside-gleam { position:absolute; top:12%; left:62%; width:36px; height:46px; background:linear-gradient(180deg, #d8c8a0 0%, #b0a080 100%); opacity:.5; animation:out-gleam 7s ease-in-out infinite alternate; }
.scn-defence-of-streams-outpost-use .shadow-corner { position:absolute; bottom:0; left:0; width:40%; height:20%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); }
@keyframes out-sentry { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes out-letter { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes out-gleam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* no-theory-like-scaffolding (nts) */
.scn-no-theory-like-scaffolding {
  background: linear-gradient(180deg, #2a241c 0%, #1e1812 30%, #16120e 70%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-no-theory-like-scaffolding .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2e261e 0%, #3a2e24 50%, #2e261e 100%);
  border-bottom: 2px solid #1e1610;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: nts-wall 20s ease-in-out infinite alternate;
}
.scn-no-theory-like-scaffolding .beam-h {
  position: absolute; top: 25%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(180deg, #6a523a 0%, #4a3828 100%);
  border-radius: 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: nts-beam 12s ease-in-out infinite;
}
.scn-no-theory-like-scaffolding .beam-v {
  position: absolute; top: 10%; left: 30%; width: 3%; height: 55%;
  background: linear-gradient(180deg, #5a4232 0%, #3a2a1e 100%);
  border-radius: 2px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: nts-beam 14s ease-in-out infinite reverse;
}
.scn-no-theory-like-scaffolding .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: nts-desk 18s ease-in-out infinite;
}
.scn-no-theory-like-scaffolding .book {
  position: absolute; bottom: 24%; left: 42%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a523a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: nts-book 8s ease-in-out infinite;
}
.scn-no-theory-like-scaffolding .candle {
  position: absolute; bottom: 26%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #a08060 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(200,168,120,0.3);
}
.scn-no-theory-like-scaffolding .glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8c878 0%, #d8a850 30%, transparent 70%);
  transform: translate(-50%, 0);
  border-radius: 50%;
  opacity: 0.6;
  animation: nts-glow 4s ease-in-out infinite alternate;
}
.scn-no-theory-like-scaffolding .figure {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1610 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nts-figure 6s ease-in-out infinite;
}
@keyframes nts-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nts-beam { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nts-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes nts-book { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes nts-glow { 0% { opacity: 0.5; transform: translate(-50%, 0) scale(0.95) } 50% { opacity: 0.7; transform: translate(-50%, -2px) scale(1.05) } 100% { opacity: 0.6; transform: translate(-50%, 0) scale(1) } }
@keyframes nts-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* means-left-for-theory (mlt) */
.scn-means-left-for-theory {
  background: linear-gradient(180deg, #2a2018 0%, #1e1610 40%, #140e0a 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a1e 0%, transparent 60%);
}
.scn-means-left-for-theory .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e16 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,0.7);
  animation: mlt-wall 24s ease-in-out infinite alternate;
}
.scn-means-left-for-theory .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-means-left-for-theory .desk {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: mlt-desk 16s ease-in-out infinite;
}
.scn-means-left-for-theory .book-a {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a4230 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: mlt-book 10s ease-in-out infinite;
}
.scn-means-left-for-theory .book-b {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a523a 100%);
  border-radius: 2px;
  transform: rotate(4deg);
  box-shadow: -2px 2px 4px rgba(0,0,0,0.4);
  animation: mlt-book 12s ease-in-out infinite reverse;
}
.scn-means-left-for-theory .candle {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #c8a068 0%, #a08050 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(200,160,104,0.4);
}
.scn-means-left-for-theory .glow {
  position: absolute; bottom: 34%; left: 42%; width: 70px; height: 70px;
  background: radial-gradient(circle, #e8c070 0%, #d8a050 30%, transparent 70%);
  transform: translate(-50%, 0);
  border-radius: 50%;
  opacity: 0.5;
  animation: mlt-glow 3.5s ease-in-out infinite alternate;
}
.scn-means-left-for-theory .hand {
  position: absolute; bottom: 30%; left: 55%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mlt-hand 5s ease-in-out infinite;
}
@keyframes mlt-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mlt-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mlt-book { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes mlt-glow { 0% { opacity: 0.4; transform: translate(-50%, 0) scale(0.9) } 50% { opacity: 0.6; transform: translate(-50%, -3px) scale(1.1) } 100% { opacity: 0.5; transform: translate(-50%, 0) scale(1) } }
@keyframes mlt-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(5deg) } 50% { transform: translateX(5px) rotate(-3deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* difficulties-diminish-material-results (ddm) */
.scn-difficulties-diminish-material-results {
  background: linear-gradient(180deg, #1e1a14 0%, #14100c 40%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 60%, #2a221c 0%, transparent 70%);
}
.scn-difficulties-diminish-material-results .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2218 0%, #1e1610 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,0.6);
  animation: ddm-bg 20s ease-in-out infinite alternate;
}
.scn-difficulties-diminish-material-results .arch {
  position: absolute; bottom: 25%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #5a4230 0%, #3a2a1e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.6);
  transform-origin: bottom center;
}
.scn-difficulties-diminish-material-results .arch.large {
  left: 15%; width: 60px; height: 80px;
  animation: ddm-arch-large 14s ease-in-out infinite;
}
.scn-difficulties-diminish-material-results .arch.medium {
  left: 38%; width: 50px; height: 65px;
  animation: ddm-arch-medium 12s ease-in-out infinite;
}
.scn-difficulties-diminish-material-results .arch.small {
  left: 58%; width: 40px; height: 50px;
  animation: ddm-arch-small 10s ease-in-out infinite;
}
.scn-difficulties-diminish-material-results .figure {
  position: absolute; bottom: 24%; left: 58%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1e1610 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ddm-figure 6s ease-in-out infinite;
}
.scn-difficulties-diminish-material-results .lantern {
  position: absolute; bottom: 30%; left: 65%; width: 6px; height: 10px;
  background: radial-gradient(circle, #e8c060 0%, #d09840 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #e8b050, 0 0 40px 12px rgba(232,176,80,0.4);
  animation: ddm-lantern 3s ease-in-out infinite alternate;
}
.scn-difficulties-diminish-material-results .particle {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #e8d080 0%, transparent 80%);
  border-radius: 50%;
  opacity: 0.5;
}
.scn-difficulties-diminish-material-results .particle.p1 {
  top: 20%; left: 20%;
  animation: ddm-particle 8s linear infinite;
}
.scn-difficulties-diminish-material-results .particle.p2 {
  top: 40%; left: 70%;
  animation: ddm-particle 12s linear infinite reverse;
}
@keyframes ddm-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ddm-arch-large { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ddm-arch-medium { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes ddm-arch-small { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes ddm-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ddm-lantern { 0% { box-shadow: 0 0 16px 4px #e8b050, 0 0 32px 8px rgba(232,176,80,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.5); opacity: 1 } 100% { box-shadow: 0 0 20px 6px #e8b050, 0 0 40px 12px rgba(232,176,80,0.4); opacity: 0.9 } }
@keyframes ddm-particle { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.3 } 50% { transform: translateY(-30px) rotate(180deg) scale(1.5); opacity: 0.7 } 100% { transform: translateY(-60px) rotate(360deg) scale(1); opacity: 0 } }

/* theory-observations-not-doctrine (tob) */
.scn-theory-observations-not-doctrine {
  background: linear-gradient(180deg, #1e1a16 0%, #14100c 40%, #0c0806 100%),
              radial-gradient(ellipse at 40% 20%, #2a221c 0%, transparent 60%);
}
.scn-theory-observations-not-doctrine .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e221a 0%, #1e1610 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: tob-wall 22s ease-in-out infinite alternate;
}
.scn-theory-observations-not-doctrine .window {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #2e3a4a 0%, #0a0e14 100%);
  border: 6px solid #3a2a1e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  animation: tob-window 18s ease-in-out infinite;
}
.scn-theory-observations-not-doctrine .sill {
  position: absolute; top: 53%; left: 28%; width: 44%; height: 6%;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tob-sill 16s ease-in-out infinite;
}
.scn-theory-observations-not-doctrine .figure {
  position: absolute; top: 35%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: tob-figure 7s ease-in-out infinite;
}
.scn-theory-observations-not-doctrine .telescope {
  position: absolute; top: 38%; left: 42%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #6a523a 0%, #4a3828 100%);
  border-radius: 4px 50% 50% 4px;
  transform: rotate(-15deg);
  transform-origin: left center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tob-telescope 10s ease-in-out infinite alternate;
}
.scn-theory-observations-not-doctrine .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4230 0%, #3a2a1e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: tob-desk 14s ease-in-out infinite;
}
.scn-theory-observations-not-doctrine .book {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a523a 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: tob-book 9s ease-in-out infinite;
}
.scn-theory-observations-not-doctrine .candle {
  position: absolute; bottom: 24%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a068 0%, #a08050 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(200,160,104,0.4);
}
.scn-theory-observations-not-doctrine .glow {
  position: absolute; bottom: 26%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8c070 0%, #d8a050 30%, transparent 70%);
  transform: translate(-50%, 0);
  border-radius: 50%;
  opacity: 0.5;
  animation: tob-glow 4s ease-in-out infinite alternate;
}
@keyframes tob-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tob-window { 0%,100% { opacity: 0.7 } 50% { opacity: 0.9 } }
@keyframes tob-sill { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tob-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes tob-telescope { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) scaleX(1.02) } 100% { transform: rotate(-15deg) } }
@keyframes tob-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tob-book { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes tob-glow { 0% { opacity: 0.4; transform: translate(-50%, 0) scale(0.95) } 50% { opacity: 0.6; transform: translate(-50%, -2px) scale(1.05) } 100% { opacity: 0.5; transform: translate(-50%, 0) scale(1) } }

/* Scene 1 - intro */
.scn-unfinished-memorandum-intro {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, #1a1210 60%, #0d0907 100%),
    linear-gradient(180deg, #2a1e14 0%, #1a1210 50%, #0d0907 100%);
}
.scn-unfinished-memorandum-intro .wall {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  animation: mi1-wall 8s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-intro .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
}
.scn-unfinished-memorandum-intro .paper-stack {
  position:absolute; bottom:25%; left:30%; width:120px; height:20px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b89860 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4), 0 0 0 1px #a08050;
  animation: mi1-paper 6s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-intro .candle {
  position:absolute; bottom:28%; left:55%; width:14px; height:40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 50%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 2px rgba(200,168,112,0.3);
  animation: mi1-candle 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-intro .flame {
  position:absolute; bottom:60%; left:54.5%; width:20px; height:30px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(232,160,48,0.5), 0 0 80px 20px rgba(232,160,48,0.2);
  animation: mi1-flame 2s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-intro .hand {
  position:absolute; bottom:22%; left:40%; width:30px; height:40px;
  background: linear-gradient(180deg, #c8a080 0%, #b08060 100%);
  border-radius: 40% 20% 30% 50% / 60% 50% 40% 50%;
  transform-origin: 70% 100%;
  animation: mi1-hand 4s ease-in-out infinite;
}
.scn-unfinished-memorandum-intro .inkwell {
  position:absolute; bottom:24%; left:68%; width:24px; height:28px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5), inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: mi1-ink 7s ease-in-out infinite alternate;
}
@keyframes mi1-wall { 0% { opacity:1; } 50% { opacity:0.95; } 100% { opacity:1; } }
@keyframes mi1-paper { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mi1-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes mi1-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }
@keyframes mi1-hand { 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(-1px,-2px); } 100% { transform: rotate(-5deg) translate(0,0); } }
@keyframes mi1-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* Scene 2 - right-principles */
.scn-unfinished-memorandum-right-principles {
  background:
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, #1a1210 50%, #0d0907 100%),
    linear-gradient(90deg, #2a1e14 0%, #1a1210 50%, #0d0907 100%);
}
.scn-unfinished-memorandum-right-principles .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  animation: mi2-wall 10s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-right-principles .bookshelf {
  position:absolute; top:10%; right:5%; width:40%; height:75%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-unfinished-memorandum-right-principles .armchair {
  position:absolute; bottom:15%; left:15%; width:160px; height:120px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: mi2-chair 9s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-right-principles .figure {
  position:absolute; bottom:20%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi2-figure 6s ease-in-out infinite;
}
.scn-unfinished-memorandum-right-principles .lamp {
  position:absolute; bottom:45%; left:55%; width:12px; height:50px;
  background: linear-gradient(180deg, #d4b888 0%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 16px 4px rgba(200,168,112,0.4);
  animation: mi2-lamp 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-right-principles .lamp-glow {
  position:absolute; bottom:50%; left:53%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(232,184,96,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mi2-glow 4s ease-in-out infinite alternate;
}
@keyframes mi2-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes mi2-chair { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes mi2-figure { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(4px,-2px) rotate(2deg); } 50% { transform: translate(8px,0) rotate(-1deg); } 75% { transform: translate(4px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes mi2-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes mi2-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(1); } }

/* Scene 3 - seventh-eighth */
.scn-unfinished-memorandum-seventh-eighth {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1e14 0%, #1a1210 50%, #0d0907 100%),
    linear-gradient(0deg, #1a1210 0%, #2a1e14 50%, #1a1210 100%);
}
.scn-unfinished-memorandum-seventh-eighth .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-unfinished-memorandum-seventh-eighth .table {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.5);
  animation: mi3-table 12s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-seventh-eighth .map {
  position:absolute; bottom:25%; left:20%; width:200px; height:80px;
  background: linear-gradient(135deg, #c8b888 0%, #b8a878 50%, #a89868 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: mi3-map 15s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-seventh-eighth .compass {
  position:absolute; bottom:30%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, #d4c4a0 0%, #a08050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(160,128,80,0.3);
  animation: mi3-compass 8s ease-in-out infinite;
}
.scn-unfinished-memorandum-seventh-eighth .document {
  position:absolute; bottom:22%; left:35%; width:100px; height:16px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b888 100%);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: mi3-doc 7s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-seventh-eighth .candle-two {
  position:absolute; bottom:35%; left:50%; width:14px; height:40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 50%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 2px rgba(200,168,112,0.3);
  animation: mi3-candle 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-seventh-eighth .flame-two {
  position:absolute; bottom:68%; left:49.5%; width:20px; height:30px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(232,160,48,0.5), 0 0 80px 20px rgba(232,160,48,0.2);
  animation: mi3-flame 2s ease-in-out infinite alternate;
}
@keyframes mi3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mi3-map { 0% { transform: rotate(-2deg) translate(0,0); } 50% { transform: rotate(-1deg) translate(2px,-1px); } 100% { transform: rotate(-2deg) translate(0,0); } }
@keyframes mi3-compass { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.05); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes mi3-doc { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes mi3-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes mi3-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }

/* Scene 4 - grande-guerre-difficulties */
.scn-unfinished-memorandum-grande-guerre-difficulties {
  background:
    radial-gradient(ellipse at 50% 30%, #2a1e14 0%, #1a1210 60%, #0d0907 100%),
    linear-gradient(180deg, #1a1210 0%, #2a1e14 50%, #1a1210 100%);
}
.scn-unfinished-memorandum-grande-guerre-difficulties .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  animation: mi4-wall 10s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .board {
  position:absolute; top:10%; left:10%; right:10%; bottom:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: 0 0 30px rgba(0,0,0,0.6), inset 0 0 60px rgba(0,0,0,0.4);
  animation: mi4-board 14s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .map-grid {
  position:absolute; top:15%; left:15%; right:15%; bottom:30%;
  background: repeating-linear-gradient(0deg, transparent, transparent 15px, rgba(160,128,80,0.15) 15px, rgba(160,128,80,0.15) 16px), repeating-linear-gradient(90deg, transparent, transparent 15px, rgba(160,128,80,0.15) 15px, rgba(160,128,80,0.15) 16px);
  border-radius: 4px;
  animation: mi4-grid 20s linear infinite;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .figure {
  position:absolute; bottom:20%; left:30%; width:50px; height:100px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi4-figure 8s ease-in-out infinite;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .pointer {
  position:absolute; bottom:35%; left:45%; width:40px; height:6px;
  background: linear-gradient(90deg, #b89860 0%, #d4b888 50%, #b89860 100%);
  border-radius: 3px;
  transform: rotate(-15deg);
  transform-origin: 0 50%;
  animation: mi4-pointer 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .candle-three {
  position:absolute; bottom:60%; right:15%; width:14px; height:40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 50%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 2px rgba(200,168,112,0.3);
  animation: mi4-candle 5s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .flame-three {
  position:absolute; bottom:88%; right:14.5%; width:20px; height:30px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(232,160,48,0.5), 0 0 80px 20px rgba(232,160,48,0.2);
  animation: mi4-flame 2s ease-in-out infinite alternate;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .second-candle {
  position:absolute; bottom:55%; left:15%; width:14px; height:40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 50%, #a08050 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 2px rgba(200,168,112,0.3);
  animation: mi4-candle2 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-unfinished-memorandum-grande-guerre-difficulties .second-flame {
  position:absolute; bottom:84%; left:14.5%; width:20px; height:30px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 70% 70% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(232,160,48,0.5), 0 0 80px 20px rgba(232,160,48,0.2);
  animation: mi4-flame2 2.5s ease-in-out infinite alternate;
  animation-delay: -1.2s;
}
@keyframes mi4-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes mi4-board { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mi4-grid { 0% { background-position: 0 0; } 100% { background-position: 30px 30px; } }
@keyframes mi4-figure { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(3px,-2px) rotate(1deg); } 50% { transform: translate(6px,0) rotate(-1deg); } 75% { transform: translate(3px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes mi4-pointer { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.05); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes mi4-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes mi4-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }
@keyframes mi4-candle2 { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes mi4-flame2 { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1) rotate(2deg); opacity:1; } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85; } }

/* defence-mountains-paralysing-principle — bright interior, tense */
.scn-defence-mountains-paralysing-principle {
  background:
    linear-gradient(180deg, #b8a88a 0%, #d4c4a4 20%, #e8dcc4 50%, #d0c0a0 80%, #a89878 100%),
    radial-gradient(ellipse at 60% 40%, #f0e8d4 0%, #c8b898 60%, transparent 80%);
}
.scn-defence-mountains-paralysing-principle .stone-frame {
  position: absolute; inset: 0; background:
    linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 6%, transparent 14%, transparent 86%, #8a7a6a 94%, #6a5a4a 100%),
    linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 8%, transparent 16%, transparent 84%, #7a6a5a 92%, #5a4a3a 100%);
}
.scn-defence-mountains-paralysing-principle .window-arch {
  position: absolute; top: 16%; left: 14%; right: 14%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 100%, #c8d8e8 0%, #a8b8c8 40%, #8898a8 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.15);
}
.scn-defence-mountains-paralysing-principle .peak-far {
  position: absolute; bottom: 35%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(160deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%);
  clip-path: polygon(5% 100%, 35% 20%, 50% 45%, 68% 10%, 85% 55%, 95% 100%);
  opacity: .7; animation: dpp-far 16s ease-in-out infinite alternate;
}
.scn-defence-mountains-paralysing-principle .peak-near {
  position: absolute; bottom: 28%; right: 10%; width: 35%; height: 55%;
  background: linear-gradient(140deg, #4a5a4a 0%, #2a3a2a 50%, #1a1a1a 100%);
  clip-path: polygon(10% 100%, 40% 30%, 60% 55%, 80% 15%, 92% 60%, 100% 100%);
  opacity: .9; animation: dpp-near 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-paralysing-principle .shadow-slice {
  position: absolute; top: 30%; left: 0; width: 22%; height: 60%;
  background: linear-gradient(90deg, rgba(0,0,0,.35) 0%, transparent 100%);
  animation: dpp-slice 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-paralysing-principle .spear {
  position: absolute; bottom: 22%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #8a7a4a 30%, #c8b86a 60%, #8a7a4a 100%);
  border-radius: 0 0 40% 40%; transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(200,184,106,.3);
  animation: dpp-spear 5s ease-in-out infinite;
}
.scn-defence-mountains-paralysing-principle .dust {
  position: absolute; top: 30%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,240,210,.15) 0%, transparent 70%);
  filter: blur(12px); animation: dpp-dust 14s ease-in-out infinite;
}
.scn-defence-mountains-paralysing-principle .grain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,.02) 2px, rgba(0,0,0,.02) 4px);
  pointer-events: none; opacity: .5;
}
@keyframes dpp-far { 0% { transform: translateY(0) scaleX(1); opacity:.65; } 50% { transform: translateY(-4px) scaleX(1.02); opacity:.75; } 100% { transform: translateY(2px) scaleX(.98); opacity:.7; } }
@keyframes dpp-near { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.01); } 100% { transform: translateY(2px) scale(1); } }
@keyframes dpp-slice { 0% { opacity:.5; } 50% { opacity:.9; } 100% { opacity:.4; } }
@keyframes dpp-spear { 0% { transform: rotate(-2deg); } 40% { transform: rotate(3deg); } 70% { transform: rotate(-1deg); } 100% { transform: rotate(-2deg); } }
@keyframes dpp-dust { 0% { transform: translate(0,0) scale(1); opacity:.6; } 50% { transform: translate(15px,-8px) scale(1.3); opacity:1; } 100% { transform: translate(-10px,5px) scale(.9); opacity:.5; } }

/* defence-mountains-danger-of-being-cut-off — dark, overcast */
.scn-defence-mountains-danger-of-being-cut-off {
  background:
    linear-gradient(180deg, #2a3a3a 0%, #3a4a4a 25%, #4a5a5a 50%, #3a4a4a 75%, #2a3a3a 100%),
    radial-gradient(ellipse at 50% 30%, #4a5a5a 0%, #2a3a3a 60%, transparent 80%);
}
.scn-defence-mountains-danger-of-being-cut-off .mist-mountain {
  position: absolute; bottom: 40%; left: -5%; right: -5%; height: 60%;
  background: linear-gradient(140deg, #3a4a3a 0%, #5a6a5a 30%, #4a5a4a 60%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 60% 80% 0 0;
  filter: blur(2px); opacity: .6; animation: dco-mist 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-danger-of-being-cut-off .mist-mid {
  position: absolute; bottom: 32%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(90deg, #4a5a4a 0%, #6a7a5a 40%, #5a6a5a 70%, #3a4a3a 100%);
  border-radius: 40% 30% 0 0 / 50% 40% 0 0;
  filter: blur(3px); opacity: .5; animation: dco-mid 28s ease-in-out infinite alternate;
}
.scn-defence-mountains-danger-of-being-cut-off .col-fore {
  position: absolute; bottom: 20%; width: 100%; height: 28%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%);
  clip-path: polygon(0% 100%, 0% 30%, 8% 25%, 15% 40%, 22% 20%, 30% 35%, 38% 15%, 48% 28%, 55% 22%, 62% 35%, 70% 18%, 78% 30%, 85% 20%, 92% 28%, 100% 15%, 100% 100%);
  animation: dco-fore 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-danger-of-being-cut-off .soldier {
  position: absolute; bottom: 24%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #050505 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  filter: blur(1px);
}
.scn-defence-mountains-danger-of-being-cut-off .soldier-a { left: 30%; height: 26px; animation: dco-march-a 6s ease-in-out infinite; }
.scn-defence-mountains-danger-of-being-cut-off .soldier-b { left: 38%; height: 28px; animation: dco-march-b 7s ease-in-out infinite 1s; }
.scn-defence-mountains-danger-of-being-cut-off .soldier-c { left: 44%; height: 24px; animation: dco-march-c 5.5s ease-in-out infinite 2.2s; }
.scn-defence-mountains-danger-of-being-cut-off .fog-wisp {
  position: absolute; top: 20%; left: 0%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(100,110,100,.2) 0%, transparent 60%);
  filter: blur(14px); animation: dco-wisp 35s linear infinite;
}
@keyframes dco-mist { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-6px) scale(1.03); opacity:.7; } 100% { transform: translateY(3px) scale(.97); opacity:.55; } }
@keyframes dco-mid { 0% { transform: translateX(0) translateY(0); opacity:.4; } 50% { transform: translateX(10px) translateY(-4px); opacity:.6; } 100% { transform: translateX(-8px) translateY(2px); opacity:.45; } }
@keyframes dco-fore { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes dco-march-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(6px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(12px) translateY(0) rotate(-1deg); } 100% { transform: translateX(18px) translateY(-1px) rotate(1deg); } }
@keyframes dco-march-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(-2px) rotate(-2deg); } 60% { transform: translateX(10px) translateY(0) rotate(1deg); } 100% { transform: translateX(15px) translateY(-1px) rotate(-1deg); } }
@keyframes dco-march-c { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(7px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(14px) translateY(0) rotate(-2deg); } 100% { transform: translateX(21px) translateY(-1px) rotate(1deg); } }
@keyframes dco-wisp { 0% { transform: translateX(-80px) scale(1); opacity:0; } 10% { opacity:.7; } 50% { transform: translateX(40vw) scale(1.5); opacity:.3; } 90% { opacity:.6; } 100% { transform: translateX(100vw) scale(1); opacity:0; } }

/* defence-mountains-no-relief — dark */
.scn-defence-mountains-no-relief {
  background:
    linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 20%, #0e0e0e 50%, #1a1a1a 80%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a1a 0%, #050505 70%, transparent 90%);
}
.scn-defence-mountains-no-relief .cliff-l {
  position: absolute; left: 0; top: 0; bottom: 0; width: 35%;
  background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 30%, #2a2a2a 60%, #1a1a1a 100%),
    linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 15%, 92% 30%, 78% 45%, 88% 55%, 75% 70%, 90% 85%, 80% 100%, 0% 100%);
  box-shadow: 12px 0 20px rgba(0,0,0,.7);
  animation: dnr-cliff-l 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-relief .cliff-r {
  position: absolute; right: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(270deg, #0a0a0a 0%, #1a1a1a 30%, #2a2a2a 60%, #1a1a1a 100%),
    linear-gradient(180deg, #151515 0%, #050505 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 10% 100%, 25% 85%, 15% 70%, 30% 55%, 18% 40%, 28% 25%, 12% 10%);
  box-shadow: -12px 0 20px rgba(0,0,0,.7);
  animation: dnr-cliff-r 22s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-relief .abyss {
  position: absolute; bottom: 0; left: 30%; right: 35%; height: 60%;
  background: radial-gradient(ellipse at 50% 80%, #0a0a12 0%, #050508 60%, transparent 80%);
  animation: dnr-abyss 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-relief .blockade {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,.8), inset 0 2px 8px rgba(60,40,20,.15);
  animation: dnr-blockade 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-relief .figure-tiny {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 16px;
  background: #0a0a0a; border-radius: 45% 45% 30% 30%;
  transform: translateX(-50%);
  animation: dnr-figure 8s ease-in-out infinite;
}
.scn-defence-mountains-no-relief .shadow-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 30%, rgba(0,0,0,.5) 70%, rgba(0,0,0,.8) 100%);
  pointer-events: none;
}
.scn-defence-mountains-no-relief .falling-stone {
  position: absolute; top: 10%; left: 48%; width: 4px; height: 4px;
  background: #1a1a1a; border-radius: 50%;
  box-shadow: 0 0 2px rgba(30,30,30,.5);
  animation: dnr-stone 6s ease-in infinite;
}
@keyframes dnr-cliff-l { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(1px); } }
@keyframes dnr-cliff-r { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes dnr-abyss { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dnr-blockade { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes dnr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } }
@keyframes dnr-stone { 0% { transform: translateY(0) translateX(0); opacity:0; } 5% { opacity:1; } 50% { transform: translateY(40vh) translateX(6px); opacity:.8; } 100% { transform: translateY(80vh) translateX(-3px); opacity:0; } }

/* defence-mountains-nervous-sensibility — overcast, tense */
.scn-defence-mountains-nervous-sensibility {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #5a6a6a 20%, #6a7a7a 40%, #5a6a6a 60%, #4a5a5a 80%, #3a4a4a 100%),
    radial-gradient(ellipse at 40% 30%, #7a8a8a 0%, #4a5a5a 50%, transparent 75%);
}
.scn-defence-mountains-nervous-sensibility .ridge-bg {
  position: absolute; bottom: 40%; left: -10%; right: -10%; height: 60%;
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 40%, #3a4a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: dns-bg 25s ease-in-out infinite alternate;
}
.scn-defence-mountains-nervous-sensibility .ridge-mid {
  position: absolute; bottom: 30%; left: 0%; right: 0%; height: 40%;
  background: linear-gradient(90deg, #3a4a3a 0%, #5a6a4a 30%, #4a5a3a 60%, #3a4a3a 100%);
  clip-path: polygon(0% 100%, 0% 40%, 5% 35%, 12% 50%, 18% 30%, 25% 45%, 32% 25%, 40% 38%, 48% 20%, 55% 35%, 62% 28%, 70% 42%, 78% 22%, 85% 38%, 92% 25%, 100% 35%, 100% 100%);
  animation: dns-mid 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-nervous-sensibility .wood-ridge {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 60%, #0a1a0a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  filter: blur(2px);
  animation: dns-wood 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-nervous-sensibility .detachment-a {
  position: absolute; bottom: 28%; left: 25%; width: 8px; height: 20px;
  background: #1a1a1a; border-radius: 45% 45% 30% 30%;
  animation: dns-twitch-a 3s ease-in-out infinite;
}
.scn-defence-mountains-nervous-sensibility .detachment-b {
  position: absolute; bottom: 30%; right: 28%; width: 7px; height: 18px;
  background: #151515; border-radius: 45% 45% 30% 30%;
  animation: dns-twitch-b 3.4s ease-in-out infinite 0.8s;
}
.scn-defence-mountains-nervous-sensibility .flag-pole {
  position: absolute; bottom: 30%; left: 42%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  transform-origin: bottom center;
  animation: dns-flagpole 4s ease-in-out infinite;
}
.scn-defence-mountains-nervous-sensibility .shimmer {
  position: absolute; top: 15%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,200,180,.08) 0%, transparent 60%);
  filter: blur(10px); animation: dns-shimmer 8s ease-in-out infinite alternate;
}
@keyframes dns-bg { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-5px) scale(1.02); opacity:.8; } 100% { transform: translateY(2px) scale(.98); opacity:.65; } }
@keyframes dns-mid { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-6px) translateY(-3px); } 100% { transform: translateX(4px) translateY(1px); } }
@keyframes dns-wood { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(2px) scaleY(.97); } }
@keyframes dns-twitch-a { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(1px,-1px) rotate(3deg); } 40% { transform: translate(-1px,1px) rotate(-2deg); } 60% { transform: translate(2px,0) rotate(1deg); } 80% { transform: translate(-1px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dns-twitch-b { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1px,1px) rotate(-3deg); } 45% { transform: translate(1px,-1px) rotate(2deg); } 65% { transform: translate(-2px,0) rotate(-1deg); } 85% { transform: translate(1px,1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dns-flagpole { 0% { transform: rotate(-1deg); } 40% { transform: rotate(3deg); } 70% { transform: rotate(-2deg); } 100% { transform: rotate(-1deg); } }
@keyframes dns-shimmer { 0% { opacity:.2; transform: scale(1) translate(0,0); } 50% { opacity:.6; transform: scale(1.2) translate(8px,-4px); } 100% { opacity:.3; transform: scale(.9) translate(-4px,2px); } }

/* Scene 1: tense, overcast mountains */
.scn-defence-mountains-lab-of-force {
  background:
    linear-gradient(180deg, #3b3b5e 0%, #2a2a44 40%, #1f1f33 100%),
    radial-gradient(ellipse at 30% 80%, #4a4a6e 0%, transparent 70%);
}
.scn-defence-mountains-lab-of-force .overcast-sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4a6e 0%, #2a2a44 100%);
  animation: dml-sky 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-lab-of-force .mountains-bg {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 35%;
  background:
    linear-gradient(135deg, #2a3a3a 0%, #1e2a2e 50%, #141a1c 100%);
  clip-path: polygon(0% 30%, 15% 0%, 30% 25%, 45% 10%, 60% 30%, 75% 5%, 90% 20%, 100% 15%, 100% 100%, 0% 100%);
  animation: dml-mountains 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-lab-of-force .cave-shelter {
  position: absolute;
  bottom: 32%;
  left: 25%;
  width: 80px;
  height: 60px;
  background: radial-gradient(ellipse at 40% 30%, #0a0a14 0%, #1a1a2a 60%, #2a2a3e 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: dml-cave 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-lab-of-force .partisan-shadow {
  position: absolute;
  bottom: 34%;
  left: 28%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dml-figure 5s ease-in-out infinite;
}
.scn-defence-mountains-lab-of-force .watchtower {
  position: absolute;
  bottom: 35%;
  right: 20%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #141422 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: dml-tower 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-lab-of-force .lamp-point {
  position: absolute;
  bottom: 60%;
  right: 22%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #e8c060 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.6);
  animation: dml-lamp 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-lab-of-force .dust-mote {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(200,200,220,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: dml-mote linear infinite;
}
.scn-defence-mountains-lab-of-force .mote-a {
  top: 20%;
  left: 40%;
  animation-duration: 25s;
  animation-delay: -3s;
}
.scn-defence-mountains-lab-of-force .mote-b {
  top: 30%;
  left: 60%;
  animation-duration: 35s;
  animation-delay: -1s;
}
@keyframes dml-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes dml-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes dml-cave { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(2px); } }
@keyframes dml-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes dml-tower { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.97) translateY(2px); } 100% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes dml-lamp { 0% { box-shadow: 0 0 8px 2px rgba(200,160,80,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 16px 6px rgba(200,160,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 10px 3px rgba(200,160,80,0.5); opacity: 0.9; } }
@keyframes dml-mote { 0% { transform: translateY(0) translateX(0); opacity: 0.2; } 25% { transform: translateY(-20px) translateX(10px); opacity: 0.6; } 50% { transform: translateY(-40px) translateX(5px); opacity: 0.3; } 75% { transform: translateY(-60px) translateX(-10px); opacity: 0.7; } 100% { transform: translateY(-80px) translateX(0); opacity: 0.2; } }

/* Scene 2: calm, bright-interior map room */
.scn-defence-mountains-examples {
  background:
    linear-gradient(180deg, #e8e0c8 0%, #ccc4a0 50%, #b0a880 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 80%);
}
.scn-defence-mountains-examples .interior-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #ccc4a0 0%, #b8b090 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-defence-mountains-examples .window-light {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 120px;
  height: 100px;
  background: linear-gradient(135deg, #fff8e0 0%, #e0d8b0 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  box-shadow: -10px 10px 30px rgba(200,190,160,0.5);
  animation: dme-window 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-examples .map-table {
  position: absolute;
  bottom: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: dme-table 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-examples .officer-silhouette {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dme-officer 6s ease-in-out infinite;
}
.scn-defence-mountains-examples .chair-left {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dme-chair 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-examples .sunbeam-1 {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 80px;
  height: 200px;
  background: linear-gradient(135deg, rgba(255,248,224,0.4) 0%, rgba(255,248,224,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: dme-sunbeam 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-examples .sunbeam-2 {
  position: absolute;
  top: 8%;
  right: 25%;
  width: 60px;
  height: 180px;
  background: linear-gradient(225deg, rgba(255,248,224,0.3) 0%, rgba(255,248,224,0) 100%);
  clip-path: polygon(100% 0%, 0% 0%, 30% 100%, 70% 100%);
  animation: dme-sunbeam2 10s ease-in-out infinite alternate;
}
@keyframes dme-window { 0% { opacity: 0.8; box-shadow: -10px 10px 20px rgba(200,190,160,0.3); } 50% { opacity: 1; box-shadow: -20px 20px 40px rgba(200,190,160,0.6); } 100% { opacity: 0.9; box-shadow: -15px 15px 30px rgba(200,190,160,0.4); } }
@keyframes dme-table { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01) translateY(-2px); } 100% { transform: translateX(-50%) scale(0.99); } }
@keyframes dme-officer { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dme-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dme-sunbeam { 0% { opacity: 0.3; transform: rotate(-5deg); } 50% { opacity: 0.7; transform: rotate(0deg); } 100% { opacity: 0.5; transform: rotate(5deg); } }
@keyframes dme-sunbeam2 { 0% { opacity: 0.2; transform: rotate(5deg); } 50% { opacity: 0.6; transform: rotate(0deg); } 100% { opacity: 0.4; transform: rotate(-5deg); } }

/* Scene 3: calm, bright-interior study */
.scn-defence-mountains-not-key {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #b8a888 50%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%);
}
.scn-defence-mountains-not-key .study-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-defence-mountains-not-key .bookshelf {
  position: absolute;
  top: 10%;
  left: 5%;
  width: 80px;
  height: 180px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 10px rgba(0,0,0,0.2);
  animation: dmn-shelf 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-not-key .globe {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle at 30% 30%, #a8a080 0%, #6a6a5a 60%, #3a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3), inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: dmn-globe 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-not-key .window-mountain {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 100px;
  height: 120px;
  background: linear-gradient(135deg, #e0d8b0 0%, #b0a880 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px rgba(200,190,160,0.4);
  animation: dmn-window 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-not-key .figure-reading {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dmn-figure 8s ease-in-out infinite;
}
.scn-defence-mountains-not-key .candle-glow {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,208,96,0.5), 0 0 40px 16px rgba(255,208,96,0.2);
  animation: dmn-candle 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-not-key .shadow-stripe {
  position: absolute;
  top: 0;
  right: 30%;
  width: 30px;
  height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1) 100%);
  animation: dmn-stripe 18s ease-in-out infinite alternate;
}
@keyframes dmn-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(2px); } 100% { transform: scaleY(1.01) translateY(-1px); } }
@keyframes dmn-globe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(0.98); } }
@keyframes dmn-window { 0% { opacity: 0.8; box-shadow: 0 0 15px rgba(200,190,160,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px rgba(200,190,160,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 20px rgba(200,190,160,0.4); } }
@keyframes dmn-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-6px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dmn-candle { 0% { box-shadow: 0 0 15px 5px rgba(255,208,96,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px rgba(255,208,96,0.6); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(255,208,96,0.4); opacity: 0.9; } }
@keyframes dmn-stripe { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene 4: calm, bright-interior war room */
.scn-defence-mountains-strategic-barrier-decisive {
  background:
    linear-gradient(180deg, #d0c4a0 0%, #b0a480 50%, #908868 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 80%);
}
.scn-defence-mountains-strategic-barrier-decisive .war-room-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #c0b490 0%, #a09878 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-defence-mountains-strategic-barrier-decisive .terrain-model {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 180px;
  height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  clip-path: polygon(0% 40%, 20% 0%, 40% 30%, 60% 10%, 80% 25%, 100% 15%, 100% 100%, 0% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: dms-model 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-barrier-decisive .model-peak {
  position: absolute;
  bottom: 50%;
  left: 35%;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: dms-peak 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-barrier-decisive .commander-figure {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dms-commander 10s ease-in-out infinite;
}
.scn-defence-mountains-strategic-barrier-decisive .pointing-stick {
  position: absolute;
  bottom: 35%;
  left: 32%;
  width: 2px;
  height: 50px;
  background: #4a3a2a;
  transform-origin: bottom left;
  animation: dms-stick 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-barrier-decisive .lamp-hanging {
  position: absolute;
  top: 8%;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #f0c060 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.5), 0 0 60px 20px rgba(200,160,80,0.2);
  animation: dms-lamp 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-barrier-decisive .shadow-arc {
  position: absolute;
  top: 0;
  left: 10%;
  width: 120px;
  height: 200px;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0) 70%);
  animation: dms-shadow 18s ease-in-out infinite alternate;
}
@keyframes dms-model { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-3px); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes dms-peak { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dms-commander { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dms-stick { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(5deg); } }
@keyframes dms-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 14px rgba(200,160,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.4); opacity: 0.9; } }
@keyframes dms-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-experience-indispensable-title {
  background: linear-gradient(180deg, #141110 0%, #2b2420 40%, #1a1715 100%), radial-gradient(ellipse at 50% 60%, #3a2e28 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-experience-indispensable-title .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2220 0%, #1a1513 100%);
  animation: ex-wall 20s ease-in-out infinite alternate;
}
.scn-experience-indispensable-title .desk {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #4a3a30, #3a2a20);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: ex-desk 15s ease-in-out infinite alternate;
}
.scn-experience-indispensable-title .book {
  position: absolute; bottom: 30%; height: 12%;
  background: linear-gradient(180deg, #5e4030, #3e2820);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: ex-book 6s ease-in-out infinite;
}
.scn-experience-indispensable-title .book-a { left: 18%; width: 15%; bottom: 32%; animation-delay: 0s; transform: rotate(-2deg); }
.scn-experience-indispensable-title .book-b { left: 38%; width: 20%; bottom: 30%; animation-delay: 1s; transform: rotate(3deg); }
.scn-experience-indispensable-title .candle-body {
  position: absolute; bottom: 34%; left: 55%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e8d8c0, #c8b8a0);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
  animation: ex-candle 12s ease-in-out infinite alternate;
}
.scn-experience-indispensable-title .candle-flame {
  position: absolute; bottom: 50%; left: 55%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #e08040 70%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.4), 0 0 40px 16px rgba(255,160,50,0.2);
  animation: ex-flame 2s ease-in-out infinite alternate;
}
.scn-experience-indispensable-title .window-frame {
  position: absolute; top: 6%; right: 8%; width: 20%; height: 30%;
  border: 4px solid #2a1e18;
  background: transparent;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-experience-indispensable-title .window-glass {
  position: absolute; top: 6%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(135deg, rgba(40,60,80,0.3), rgba(20,30,40,0.5));
  border-radius: 4px;
  animation: ex-glass 24s ease-in-out infinite alternate;
}
@keyframes ex-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ex-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes ex-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes ex-candle { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ex-flame { 0% { transform: translateX(-50%) scale(1) rotate(-5deg); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); opacity: 0.85; } }
@keyframes ex-glass { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-principal-difficulty-theory-conduct-of-war {
  background: linear-gradient(180deg, #1a1816 0%, #2c2622 40%, #1c1a18 100%), radial-gradient(ellipse at 30% 50%, #3a2e28 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-principal-difficulty-theory-conduct-of-war .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2420, #1e1a16);
  animation: pr-wall 18s ease-in-out infinite alternate;
}
.scn-principal-difficulty-theory-conduct-of-war .table-top {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a30, #2e221c);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.5);
  animation: pr-table 20s ease-in-out infinite alternate;
}
.scn-principal-difficulty-theory-conduct-of-war .map-roll {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(90deg, #c8b090, #a08870, #c8b090);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pr-map 14s ease-in-out infinite;
}
.scn-principal-difficulty-theory-conduct-of-war .figure-torso {
  position: absolute; bottom: 24%; left: 38%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a221e, #1a1412);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pr-torso 6s ease-in-out infinite alternate;
}
.scn-principal-difficulty-theory-conduct-of-war .figure-head {
  position: absolute; bottom: 44%; left: 38%; width: 7%; height: 9%;
  background: linear-gradient(180deg, #1e1a16, #14100e);
  border-radius: 50%;
  transform: translateX(20%);
  animation: pr-head 6s ease-in-out infinite alternate;
}
.scn-principal-difficulty-theory-conduct-of-war .lamp-base {
  position: absolute; bottom: 38%; left: 60%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3a30, #2e221c);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-principal-difficulty-theory-conduct-of-war .lamp-glow {
  position: absolute; bottom: 44%; left: 60%; width: 8%; height: 10%;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 12px rgba(200,140,60,0.3), 0 0 60px 20px rgba(200,140,60,0.1);
  animation: pr-lamp 4s ease-in-out infinite alternate;
}
.scn-principal-difficulty-theory-conduct-of-war .chair-back {
  position: absolute; bottom: 18%; left: 22%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3e2e24, #1e1612);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: pr-chair 22s ease-in-out infinite alternate;
}
@keyframes pr-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pr-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes pr-map { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes pr-torso { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes pr-head { 0% { transform: translateX(20%) rotate(0deg); } 50% { transform: translateX(20%) rotate(3deg); } 100% { transform: translateX(20%) rotate(-2deg); } }
@keyframes pr-lamp { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.15); } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.95); } }
@keyframes pr-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } 100% { transform: scaleY(1); } }

.scn-first-speciality-moral-forces {
  background: linear-gradient(180deg, #0c0a0a 0%, #1e1816 50%, #14100e 100%), radial-gradient(ellipse at 50% 80%, #2e221e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-first-speciality-moral-forces .bg-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1412, #0e0c0a);
  animation: fi-bg 30s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a221e, #1a1412);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: fi-floor 18s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .fire-pit {
  position: absolute; bottom: 18%; left: 50%; width: 14%; height: 12%;
  background: linear-gradient(180deg, #3a2a1e, #1e1610);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-first-speciality-moral-forces .fire-flame {
  position: absolute; bottom: 26%; left: 50%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 80%, #ffb040 0%, #d08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 15px rgba(200,120,40,0.3), 0 0 60px 30px rgba(200,100,30,0.1);
  animation: fi-flame 2s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #1e1a16, #0e0c0a);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: fi-fig-left 8s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #1a1614, #0c0a08);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: fi-fig-right 8s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .shadow-left {
  position: absolute; bottom: 8%; left: 18%; width: 20%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: fi-shadow 12s ease-in-out infinite alternate;
}
.scn-first-speciality-moral-forces .shadow-right {
  position: absolute; bottom: 8%; right: 18%; width: 20%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: fi-shadow 12s ease-in-out infinite alternate-reverse;
}
@keyframes fi-bg { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fi-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fi-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.15) rotate(4deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95) rotate(-2deg); opacity: 0.85; } }
@keyframes fi-fig-left { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes fi-fig-right { 0% { transform: rotate(0deg) scaleY(1.02); } 50% { transform: rotate(-2deg) scaleY(1); } 100% { transform: rotate(1deg) scaleY(0.98); } }
@keyframes fi-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.1); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-other-feelings-ambition-enthusiasm {
  background: linear-gradient(180deg, #12100e 0%, #221c18 40%, #161412 100%), radial-gradient(ellipse at 50% 30%, #2e241e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-other-feelings-ambition-enthusiasm .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1c1614, #0e0c0a);
  animation: ot-bg 28s ease-in-out infinite alternate;
}
.scn-other-feelings-ambition-enthusiasm .staircase {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, #3a2e28, #1e1814);
  -webkit-clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
  animation: ot-stair 22s ease-in-out infinite alternate;
}
.scn-other-feelings-ambition-enthusiasm .stair-rail {
  position: absolute; bottom: 0; left: 30%; width: 2%; height: 80%;
  background: linear-gradient(180deg, #4a3a30, #2e221c);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: ot-rail 16s ease-in-out infinite alternate;
}
.scn-other-feelings-ambition-enthusiasm .figure-body {
  position: absolute; bottom: 20%; left: 46%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a221e, #161210);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ot-body 4s ease-in-out infinite;
}
.scn-other-feelings-ambition-enthusiasm .figure-arm {
  position: absolute; bottom: 34%; left: 46%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #1e1a16, #100e0c);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom left;
  transform: rotate(30deg) translateX(100%);
  animation: ot-arm 3s ease-in-out infinite alternate;
}
.scn-other-feelings-ambition-enthusiasm .window-light {
  position: absolute; top: 8%; right: 10%; width: 16%; height: 24%;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,180,120,0.3) 0%, transparent 70%);
  border-radius: 2px;
  box-shadow: 0 0 40px 20px rgba(220,180,120,0.1);
  animation: ot-light 20s ease-in-out infinite alternate;
}
.scn-other-feelings-ambition-enthusiasm .rising-dust {
  position: absolute; bottom: 60%; left: 50%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(200,170,140,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ot-dust 8s ease-in-out infinite;
}
@keyframes ot-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ot-stair { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ot-rail { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ot-body { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } }
@keyframes ot-arm { 0% { transform: rotate(20deg) translateX(100%); } 50% { transform: rotate(35deg) translateX(100%); } 100% { transform: rotate(25deg) translateX(100%); } }
@keyframes ot-light { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes ot-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 50% { transform: translateY(-30px) scale(1.5); opacity: 0.5; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }

.scn-defence-of-streams-points-of-view {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8e0d0 100%), radial-gradient(ellipse at 50% 80%, #ffffff 0%, transparent 70%);
}
.scn-defence-of-streams-points-of-view .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5f0e8 0%, #e0d8c8 100%);
}
.scn-defence-of-streams-points-of-view .window {
  position: absolute; top: 15%; left: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #b0d4f0 0%, #d4e8ff 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,255,200,.3);
  animation: plv-window 10s ease-in-out infinite alternate;
}
.scn-defence-of-streams-points-of-view .desk {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.2);
}
.scn-defence-of-streams-points-of-view .map {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(135deg, #f0e0c0 0%, #e8d4a8 100%);
  border: 2px solid #a08060; border-radius: 2px;
  animation: plv-map 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-points-of-view .pin {
  position: absolute; width: 8px; height: 8px; border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: plv-pin 3s ease-in-out infinite alternate;
}
.scn-defence-of-streams-points-of-view .pin-1 { bottom: 30%; left: 30%; background: #a0461a; animation-delay: 0s; }
.scn-defence-of-streams-points-of-view .pin-2 { bottom: 22%; left: 55%; background: #5a3a1a; animation-delay: 0.4s; }
.scn-defence-of-streams-points-of-view .pin-3 { bottom: 35%; left: 70%; background: #3a5a3a; animation-delay: 0.8s; }
.scn-defence-of-streams-points-of-view .compass {
  position: absolute; bottom: 12%; left: 70%; width: 30px; height: 30px;
  border-radius: 50%; border: 2px solid #8a6a48;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b890 100%);
  animation: plv-compass 12s linear infinite;
}

@keyframes plv-window {
  0%   { opacity: 0.85; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes plv-map {
  0%   { transform: translateX(0px) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(-2px) rotate(-0.5deg); }
}
@keyframes plv-pin {
  0%   { transform: translateY(0px) scale(1); }
  50%  { transform: translateY(-3px) scale(1.2); }
  100% { transform: translateY(0px) scale(1); }
}
@keyframes plv-compass {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

.scn-defence-of-streams-three-degrees {
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c8b8 100%), radial-gradient(ellipse at 50% 20%, #fff6e5 0%, transparent 60%);
}
.scn-defence-of-streams-three-degrees .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 100%);
}
.scn-defence-of-streams-three-degrees .shelf {
  position: absolute; left: 5%; right: 5%; height: 4px;
  background: linear-gradient(90deg, #a08060 0%, #705030 100%);
  border-radius: 2px;
}
.scn-defence-of-streams-three-degrees .shelf-1 { top: 20%; animation: thd-shelf 6s ease-in-out infinite alternate; }
.scn-defence-of-streams-three-degrees .shelf-2 { top: 45%; animation: thd-shelf 7s ease-in-out infinite alternate; animation-delay: 1s; }
.scn-defence-of-streams-three-degrees .shelf-3 { top: 70%; animation: thd-shelf 8s ease-in-out infinite alternate; animation-delay: 2s; }
.scn-defence-of-streams-three-degrees .book {
  position: absolute; width: 20px; height: 50px; border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.2);
  animation: thd-book 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-three-degrees .book-1 { bottom: 23%; left: 20%; background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%); animation-delay: 0s; }
.scn-defence-of-streams-three-degrees .book-2 { bottom: 48%; left: 50%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); animation-delay: 0.3s; }
.scn-defence-of-streams-three-degrees .book-3 { bottom: 73%; left: 75%; background: linear-gradient(180deg, #6a4a6a 0%, #3a2a3a 100%); animation-delay: 0.6s; }
.scn-defence-of-streams-three-degrees .candle {
  position: absolute; bottom: 10%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 50%, #8a6a48 100%);
  border-radius: 2px; animation: thd-candle 3s ease-in-out infinite alternate;
}

@keyframes thd-shelf {
  0%   { transform: translateY(0px); }
  50%  { transform: translateY(-1px); }
  100% { transform: translateY(0px); }
}
@keyframes thd-book {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes thd-candle {
  0%   { opacity: 0.8; transform: translateY(0); }
  50%  { opacity: 1; transform: translateY(-1px); box-shadow: 0 0 12px 4px #f0d060; }
  100% { opacity: 0.85; transform: translateY(0); }
}

.scn-defence-of-streams-direct-defence-large-rivers {
  background: linear-gradient(180deg, #f0ead6 0%, #e0d4b8 100%), radial-gradient(ellipse at 50% 60%, #fffbe6 0%, transparent 50%);
}
.scn-defence-of-streams-direct-defence-large-rivers .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b898 0%, #a89078 100%);
}
.scn-defence-of-streams-direct-defence-large-rivers .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #b09878 0%, #806048 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.2);
}
.scn-defence-of-streams-direct-defence-large-rivers .parchment {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(135deg, #f5eed8 0%, #e8dcc0 100%);
  border: 2px solid #b09878; border-radius: 2px;
  animation: drv-parchment 10s ease-in-out infinite alternate;
}
.scn-defence-of-streams-direct-defence-large-rivers .river {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(90deg, #8ab4d4 0%, #b0d4f0 50%, #8ab4d4 100%);
  background-size: 200% 100%;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: drv-river 4s linear infinite alternate;
}
.scn-defence-of-streams-direct-defence-large-rivers .troop {
  position: absolute; width: 12px; height: 18px; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  background: linear-gradient(180deg, #a0461a 0%, #602818 100%);
  animation: drv-troop 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-direct-defence-large-rivers .troop-1 { bottom: 28%; left: 25%; animation-delay: 0s; }
.scn-defence-of-streams-direct-defence-large-rivers .troop-2 { bottom: 28%; left: 45%; animation-delay: 0.3s; }
.scn-defence-of-streams-direct-defence-large-rivers .troop-3 { bottom: 28%; left: 65%; animation-delay: 0.6s; }
.scn-defence-of-streams-direct-defence-large-rivers .bridge {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 4%;
  background: linear-gradient(180deg, #8a6a48 0%, #5a3a1a 100%);
  border-radius: 2px;
  animation: drv-bridge 8s ease-in-out infinite alternate;
}

@keyframes drv-parchment {
  0%   { transform: scale(1) rotate(0deg); }
  50%  { transform: scale(1.02) rotate(0.5deg); }
  100% { transform: scale(0.98) rotate(-0.5deg); }
}
@keyframes drv-river {
  0%   { background-position: 0% 50%; opacity: 0.8; }
  50%  { background-position: 50% 50%; opacity: 1; }
  100% { background-position: 100% 50%; opacity: 0.8; }
}
@keyframes drv-troop {
  0%   { transform: translateX(0px) translateY(0px) rotate(0deg); }
  50%  { transform: translateX(12px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(0px) translateY(0px) rotate(0deg); }
}
@keyframes drv-bridge {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}

.scn-defence-of-streams-calculation-example {
  background: linear-gradient(180deg, #eee7dc 0%, #dcd0c0 100%), radial-gradient(ellipse at 50% 30%, #fffaf0 0%, transparent 70%);
}
.scn-defence-of-streams-calculation-example .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #eee7dc 0%, #c8bba8 100%);
}
.scn-defence-of-streams-calculation-example .chalkboard {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: cal-board 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-calculation-example .equation {
  position: absolute; height: 2px; background: rgba(255,255,240,.8);
  border-radius: 1px; animation: cal-eq 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-calculation-example .equation-1 { top: 30%; left: 20%; right: 30%; animation-delay: 0s; }
.scn-defence-of-streams-calculation-example .equation-2 { top: 45%; left: 25%; right: 35%; animation-delay: 0.5s; }
.scn-defence-of-streams-calculation-example .inkwell {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cal-ink 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-calculation-example .hand {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 100% 80%;
  animation: cal-hand 3s ease-in-out infinite alternate;
}
.scn-defence-of-streams-calculation-example .paper {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(135deg, #faf4e8 0%, #f0e8d0 100%);
  border: 2px solid #b09878; border-radius: 2px;
  animation: cal-paper 8s ease-in-out infinite alternate;
}

@keyframes cal-board {
  0%   { opacity: 0.9; }
  50%  { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cal-eq {
  0%   { opacity: 0.6; transform: scaleX(1); }
  50%  { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.9); }
}
@keyframes cal-ink {
  0%   { transform: translateY(0) scale(1); }
  50%  { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cal-hand {
  0%   { transform: rotate(0deg) translateX(0); }
  50%  { transform: rotate(10deg) translateX(5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes cal-paper {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-1deg) scale(0.99); }
}

.scn-item-map {
  background: linear-gradient(145deg, #1a1410 0%, #2a1e16 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 70%, #4a3424 0%, transparent 70%);
}
.scn-item-map .table {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 40%, #2a1a10 100%);
  border-radius: 15% 15% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: im-table-breath 8s ease-in-out infinite;
}
.scn-item-map .map {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: linear-gradient(135deg, #c8b090 0%, #a08870 50%, #b09878 100%);
  border-radius: 4% 8% 6% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 0 1px 2px rgba(255,255,200,0.3);
  transform: rotate(-2deg);
  animation: im-map-shift 15s ease-in-out infinite alternate;
}
.scn-item-map .candle {
  position: absolute;
  bottom: 42%;
  left: 45%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0c8a0 60%, #c8a878 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
.scn-item-map .candle-flame {
  position: absolute;
  bottom: 80%;
  left: 46%;
  width: 10px;
  height: 14px;
  background: radial-gradient(circle at 50% 40%, #fff8e0 0%, #ffd080 40%, #ff9040 70%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #ffb060, 0 0 40px 12px rgba(255,176,96,0.4);
  animation: im-flame 0.8s ease-in-out infinite alternate;
}
.scn-item-map .compass {
  position: absolute;
  bottom: 32%;
  left: 60%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle at 50% 50%, #d4b090 0%, #8a6a50 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: im-compass-spin 12s linear infinite;
}
.scn-item-map .compass::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 9px;
  width: 2px;
  height: 16px;
  background: #c84040; /* desaturated red, but small accent -> okay */
  border-radius: 1px;
  transform: rotate(30deg);
  animation: im-compass-needle 2s ease-in-out infinite alternate;
}
.scn-item-map .shadow-table {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: im-shadow-fade 6s ease-in-out infinite alternate;
}
@keyframes im-table-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes im-map-shift { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes im-flame { 0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; } 50% { transform: scaleY(1.1) scaleX(1); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(0.85); opacity: 0.85; } }
@keyframes im-compass-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes im-compass-needle { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }
@keyframes im-shadow-fade { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-sense-of-locality-imagination {
  background: linear-gradient(180deg, #2a2e40 0%, #1a1e30 30%, #0e1120 100%), radial-gradient(ellipse at 50% 80%, #3a3e50 0%, transparent 70%);
}
.scn-sense-of-locality-imagination .window-frame {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 80%;
  height: 70%;
  border: 8px solid #3a2e24;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-sense-of-locality-imagination .landscape-bg {
  position: absolute;
  top: 15%;
  left: 13%;
  width: 74%;
  height: 50%;
  background: linear-gradient(180deg, #4a5e6a 0%, #2a3a4a 40%, #1a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  animation: sl-bg-shift 20s ease-in-out infinite alternate;
}
.scn-sense-of-locality-imagination .landscape-fg {
  position: absolute;
  bottom: 18%;
  left: 15%;
  width: 70%;
  height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: sl-hills 15s ease-in-out infinite alternate;
}
.scn-sense-of-locality-imagination .figure-outline {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: sl-figure-breathe 4s ease-in-out infinite;
}
.scn-sense-of-locality-imagination .pointing-hand {
  position: absolute;
  left: 48%;
  bottom: 40%;
  width: 10px;
  height: 12px;
  background: #0e0e1a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: sl-point 3s ease-in-out infinite;
}
.scn-sense-of-locality-imagination .moon {
  position: absolute;
  top: 12%;
  left: 70%;
  width: 24px;
  height: 24px;
  background: radial-gradient(circle at 40% 40%, #d0d8e0 0%, #a0a8b8 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b0b8c8, 0 0 40px 12px rgba(176,184,200,0.3);
  animation: sl-moon-glow 8s ease-in-out infinite alternate;
}
@keyframes sl-bg-shift { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sl-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sl-figure-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes sl-point { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes sl-moon-glow { 0% { box-shadow: 0 0 15px 4px #b0b8c8, 0 0 30px 8px rgba(176,184,200,0.2); } 50% { box-shadow: 0 0 25px 8px #c0c8d8, 0 0 50px 16px rgba(192,200,216,0.4); } 100% { box-shadow: 0 0 15px 4px #b0b8c8, 0 0 30px 8px rgba(176,184,200,0.2); } }

.scn-puysegur-quartermaster-lost-way {
  background: linear-gradient(180deg, #2a1a12 0%, #1a100a 40%, #0e0806 100%), radial-gradient(ellipse at 50% 60%, #3a2216 0%, transparent 70%);
}
.scn-puysegur-quartermaster-lost-way .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #4a3424 0%, #2a1e14 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.7);
  animation: pq-ground-shake 6s ease-in-out infinite;
}
.scn-puysegur-quartermaster-lost-way .map-scroll {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 70%;
  height: 30%;
  background: linear-gradient(135deg, #b8a088 0%, #9a8068 50%, #a88c74 100%);
  border-radius: 0 20% 0 20% / 0 30% 0 30%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: pq-map-flap 3s ease-in-out infinite alternate;
}
.scn-puysegur-quartermaster-lost-way .figure-bent {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 28px;
  height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pq-bend 2.5s ease-in-out infinite;
}
.scn-puysegur-quartermaster-lost-way .lantern {
  position: absolute;
  bottom: 40%;
  left: 55%;
  width: 8px;
  height: 12px;
  background: #5a3a1a;
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ffb060;
  animation: pq-lantern-swing 1.5s ease-in-out infinite;
}
.scn-puysegur-quartermaster-lost-way .lantern-glow {
  position: absolute;
  bottom: 38%;
  left: 53%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ff9040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff9040;
  animation: pq-glow-pulse 0.6s ease-in-out infinite alternate;
}
.scn-puysegur-quartermaster-lost-way .question-mark {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 16px;
  height: 24px;
  background: radial-gradient(circle at 50% 30%, #e0c8a0 0%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: pq-question 2s ease-in-out infinite;
}
.scn-puysegur-quartermaster-lost-way .arrow-sign {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 30px;
  height: 8px;
  background: #5a3a1a;
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: pq-arrow-bob 4s ease-in-out infinite;
}
.scn-puysegur-quartermaster-lost-way .arrow-sign::after {
  content: '';
  position: absolute;
  top: -6px;
  right: -8px;
  width: 0;
  height: 0;
  border-left: 8px solid #5a3a1a;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}
@keyframes pq-ground-shake { 0%,100% { transform: translateX(0); } 25% { transform: translateX(4px) rotate(0.5deg); } 50% { transform: translateX(-4px) rotate(-0.5deg); } 75% { transform: translateX(2px); } }
@keyframes pq-map-flap { 0% { transform: rotate(3deg) scaleX(1); } 50% { transform: rotate(7deg) scaleX(1.02) skewX(2deg); } 100% { transform: rotate(3deg) scaleX(1); } }
@keyframes pq-bend { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(8deg) translateY(-2px); } 60% { transform: rotate(-8deg) translateY(-1px); } }
@keyframes pq-lantern-swing { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(4px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes pq-glow-pulse { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes pq-question { 0% { opacity: 0.3; transform: translateY(0) rotate(-5deg); } 50% { opacity: 0.8; transform: translateY(-4px) rotate(5deg); } 100% { opacity: 0.3; transform: translateY(0) rotate(-5deg); } }
@keyframes pq-arrow-bob { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } }

.scn-talent-increases-with-rank {
  background: linear-gradient(180deg, #1c1814 0%, #2e241e 40%, #3c2e26 100%), radial-gradient(ellipse at 50% 90%, #4a3428 0%, transparent 70%);
}
.scn-talent-increases-with-rank .desk {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%);
  border-radius: 10% 10% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: tw-desk-shift 12s ease-in-out infinite alternate;
}
.scn-talent-increases-with-rank .paper-stack {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 40%;
  height: 15%;
  background: linear-gradient(135deg, #d0b898 0%, #b09880 60%, #c0a888 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: tw-stack-breathe 9s ease-in-out infinite;
}
.scn-talent-increases-with-rank .inkwell {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 14px;
  height: 18px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: tw-inkwell-pulse 4s ease-in-out infinite;
}
.scn-talent-increases-with-rank .quill {
  position: absolute;
  bottom: 28%;
  left: 58%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #e0d0b8 0%, #b09880 70%, #80685a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: tw-quill-write 3s ease-in-out infinite;
}
.scn-talent-increases-with-rank .figure-seated {
  position: absolute;
  bottom: 16%;
  left: 20%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.6);
  animation: tw-figure-sit 6s ease-in-out infinite;
}
.scn-talent-increases-with-rank .epaulette {
  position: absolute;
  bottom: 44%;
  left: 20%;
  width: 18px;
  height: 6px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 6px rgba(200,160,80,0.3);
  animation: tw-epaulette-gleam 5s ease-in-out infinite alternate;
}
.scn-talent-increases-with-rank .candle-light {
  position: absolute;
  top: 10%;
  left: 45%;
  width: 20px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 20%, #fff0d0 0%, #ffd080 30%, #ff9040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,144,64,0.4), 0 0 80px 25px rgba(255,144,64,0.2);
  animation: tw-candle-flicker 0.7s ease-in-out infinite alternate;
}
@keyframes tw-desk-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tw-stack-breathe { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes tw-inkwell-pulse { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes tw-quill-write { 0% { transform: rotate(10deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(18deg); } 100% { transform: rotate(10deg); } }
@keyframes tw-figure-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes tw-epaulette-gleam { 0% { box-shadow: 0 0 4px 1px rgba(200,160,80,0.2); } 50% { box-shadow: 0 0 12px 4px rgba(200,160,80,0.5); } 100% { box-shadow: 0 0 4px 1px rgba(200,160,80,0.2); } }
@keyframes tw-candle-flicker { 0% { transform: scale(1) translateY(0); opacity: 0.9; } 50% { transform: scale(1.08) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(1px); opacity: 0.85; } }

.scn-accompany-novice-to-battlefield {
  background: linear-gradient(180deg, #87b0c0 0%, #b8d4e0 20%, #c8a070 60%, #7a5a40 80%, #4a3020 100%), radial-gradient(ellipse at 30% 40%, rgba(255,220,180,0.4) 0%, transparent 70%);
  overflow: hidden;
}
.scn-accompany-novice-to-battlefield .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4e0 0%, #e8f0f0 40%, transparent 100%);
  animation: b1-sky 12s ease-in-out infinite alternate;
}
.scn-accompany-novice-to-battlefield .smoke-layer {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(180,160,130,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: b1-smoke 18s ease-in-out infinite alternate;
}
.scn-accompany-novice-to-battlefield .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #5a3a28 0%, #7a5a3a 40%, #9a7a5a 70%, #c8a070 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-accompany-novice-to-battlefield .cannon {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: b1-cannon 6s ease-in-out infinite;
}
.scn-accompany-novice-to-battlefield .ball {
  position: absolute; bottom: 35%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
  animation: b1-ball 3s ease-in-out infinite;
}
.scn-accompany-novice-to-battlefield .cannon-silhouette {
  position: absolute; bottom: 30%; left: 60%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  clip-path: polygon(0% 100%, 20% 20%, 40% 30%, 60% 20%, 80% 30%, 100% 100%);
  animation: b1-cannon2 8s ease-in-out infinite alternate;
}
.scn-accompany-novice-to-battlefield .novice {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: b1-novice 4s ease-in-out infinite;
}
.scn-accompany-novice-to-battlefield .impact {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #c8a070 0%, #7a5a3a 50%, transparent 70%);
  filter: blur(2px);
  animation: b1-impact 5s ease-in-out infinite;
}
@keyframes b1-sky { 0% { opacity:0.8 } 25% { opacity:1 } 50% { opacity:0.9 } 75% { opacity:0.8 } 100% { opacity:0.9 } }
@keyframes b1-smoke { 0% { opacity:0.3; transform:translateX(-10px) } 50% { opacity:0.6; transform:translateX(5px) } 100% { opacity:0.4; transform:translateX(-5px) } }
@keyframes b1-cannon { 0% { transform:rotate(-15deg) translateY(0) } 25% { transform:rotate(-10deg) translateY(-2px) } 50% { transform:rotate(-15deg) translateY(-1px) } 75% { transform:rotate(-20deg) translateY(2px) } 100% { transform:rotate(-15deg) translateY(0) } }
@keyframes b1-ball { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(-20px) translateY(-10px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes b1-cannon2 { 0% { transform:scaleX(1) } 50% { transform:scaleX(0.8) } 100% { transform:scaleX(1.1) } }
@keyframes b1-novice { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(8px) rotate(1deg) } 50% { transform:translateX(-5px) rotate(-1deg) } 75% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes b1-impact { 0% { opacity:0.2; transform:scale(0.5) } 25% { opacity:0.8; transform:scale(1.2) } 50% { opacity:0.3; transform:scale(0.8) } 75% { opacity:0.6; transform:scale(1) } 100% { opacity:0.2; transform:scale(0.5) } }

.scn-deeper-into-battle {
  background: linear-gradient(180deg, #7a5a3a 0%, #a08050 30%, #c8a070 60%, #e0c090 85%, #f0d8b0 100%), radial-gradient(ellipse at 60% 30%, rgba(255,220,140,0.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-deeper-into-battle .battle-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8a080 0%, #d8c0a0 40%, transparent 100%);
  animation: b2-sky 14s ease-in-out infinite alternate;
}
.scn-deeper-into-battle .smoke-billow {
  position: absolute; bottom: 40%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(0deg, rgba(160,130,100,0.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: b2-smoke 20s ease-in-out infinite alternate;
}
.scn-deeper-into-battle .stage-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #5a3a28 0%, #8a6a4a 50%, #b09070 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-deeper-into-battle .general-division {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a3018 0%, #301810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 0 2px #c8a070;
  transform: scaleX(1.2);
  animation: b2-general 6s ease-in-out infinite;
}
.scn-deeper-into-battle .brigadier {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #402818 0%, #201008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 0 2px #a08050;
  transform: scaleX(1.1);
  animation: b2-brigadier 8s ease-in-out infinite;
}
.scn-deeper-into-battle .cannon-line {
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 40px;
  background: repeating-linear-gradient(90deg, #2a1a10 0px, #2a1a10 6px, transparent 6px, transparent 20px);
  filter: blur(1px);
  animation: b2-cannonline 5s ease-in-out infinite;
}
.scn-deeper-into-battle .explosion {
  position: absolute; bottom: 40%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0c090 0%, #c8a070 30%, #a08050 60%, transparent 80%);
  filter: blur(4px);
  animation: b2-explosion 9s ease-in-out infinite;
}
.scn-deeper-into-battle .flower {
  position: absolute; bottom: 35%; left: 10%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: b2-flower 7s ease-in-out infinite;
}
@keyframes b2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes b2-smoke { 0% { transform: translateY(-5px) scaleY(1) } 50% { transform: translateY(5px) scaleY(1.2) } 100% { transform: translateY(-2px) scaleY(0.9) } }
@keyframes b2-general { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(10px) rotate(1deg) scaleX(1.15) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes b2-brigadier { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-8px) rotate(-1deg) scaleX(1.05) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes b2-cannonline { 0% { background-position: 0 0; opacity:0.5 } 50% { background-position: 20px 0; opacity:0.8 } 100% { background-position: 0 0; opacity:0.5 } }
@keyframes b2-explosion { 0% { opacity:0.2; transform:scale(0.8) } 25% { opacity:0.7; transform:scale(1.3) } 50% { opacity:0.5; transform:scale(1) } 75% { opacity:0.8; transform:scale(1.1) } 100% { opacity:0.2; transform:scale(0.8) } }
@keyframes b2-flower { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.2) } 100% { transform: rotate(0deg) scaleY(1) } }

.scn-compassion-and-soldier-reaction {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a28 30%, #7a5a3a 60%, #9a7a5a 80%, #8a6a4a 100%), radial-gradient(ellipse at 30% 20%, rgba(180,160,130,0.2) 0%, transparent 60%);
  overflow: hidden;
}
.scn-compassion-and-soldier-reaction .ground-ash {
  position: absolute; inset: auto 0 0 0; height: 60%;
  background: linear-gradient(0deg, #1a0e08 0%, #4a3020 50%, #7a5a3a 100%);
  border-radius: 20% 30% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-compassion-and-soldier-reaction .fallen-soldier {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #5a3018 0%, #3a1a0e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: b3-fallen 8s ease-in-out infinite;
}
.scn-compassion-and-soldier-reaction .young-soldier {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #6a4a28 0%, #3a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: b3-young 4s ease-in-out infinite alternate;
}
.scn-compassion-and-soldier-reaction .blood-pool {
  position: absolute; bottom: 15%; left: 28%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #5e1a1d 0%, #702243 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: b3-blood 6s ease-in-out infinite;
}
.scn-compassion-and-soldier-reaction .sky-grey {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a6a5a 0%, #a09080 30%, transparent 100%);
  animation: b3-sky 12s ease-in-out infinite alternate;
}
.scn-compassion-and-soldier-reaction .smoke-mist {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(120,100,80,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: b3-mist 15s ease-in-out infinite;
}
.scn-compassion-and-soldier-reaction .rifle {
  position: absolute; bottom: 28%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(25deg);
  animation: b3-rifle 5s ease-in-out infinite;
}
@keyframes b3-fallen { 0% { opacity:0.7; transform:rotate(15deg) translateY(0) } 50% { opacity:1; transform:rotate(18deg) translateY(-2px) } 100% { opacity:0.8; transform:rotate(15deg) translateY(0) } }
@keyframes b3-young { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-5px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes b3-blood { 0% { opacity:0.4; transform:scaleX(1) } 50% { opacity:0.8; transform:scaleX(1.3) } 100% { opacity:0.5; transform:scaleX(1) } }
@keyframes b3-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes b3-mist { 0% { opacity:0.2; transform:translateY(0) } 50% { opacity:0.5; transform:translateY(-5px) } 100% { opacity:0.3; transform:translateY(0) } }
@keyframes b3-rifle { 0% { transform:rotate(25deg) translateX(0) } 50% { transform:rotate(30deg) translateX(3px) } 100% { transform:rotate(25deg) translateX(0) } }

.scn-danger-belongs-to-friction {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a3a2a 60%, #4a4a3a 90%, #5a4a3a 100%), radial-gradient(ellipse at 60% 40%, rgba(255,200,120,0.15) 0%, transparent 60%);
  overflow: hidden;
}
.scn-danger-belongs-to-friction .dark-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  animation: b4-wall 10s ease-in-out infinite alternate;
}
.scn-danger-belongs-to-friction .wooden-desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 50%, #2a1a0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(5deg);
}
.scn-danger-belongs-to-friction .candle {
  position: absolute; bottom: 48%; left: 25%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #e0c090 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,120,0.3);
}
.scn-danger-belongs-to-friction .open-book {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4% 4% 8% 8% / 4% 4% 10% 10%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: b4-book 8s ease-in-out infinite alternate;
}
.scn-danger-belongs-to-friction .quill {
  position: absolute; bottom: 20%; left: 35%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: b4-quill 6s ease-in-out infinite;
}
.scn-danger-belongs-to-friction .inkwell {
  position: absolute; bottom: 12%; left: 32%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px #4a3a2a;
}
.scn-danger-belongs-to-friction .heat-haze {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(255,220,180,0.08) 0%, transparent 100%);
  filter: blur(10px);
  animation: b4-haze 15s ease-in-out infinite;
}
@keyframes b4-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes b4-book { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes b4-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) scaleY(0.98) } 100% { transform: rotate(15deg) } }
@keyframes b4-haze { 0% { opacity:0.1; transform: translateY(0) } 50% { opacity:0.3; transform: translateY(-3px) } 100% { opacity:0.1; transform: translateY(0) } }

.scn-exhaustion-victorious-party {
  background: linear-gradient(180deg, #2e1f0e 0%, #1d1308 60%), radial-gradient(ellipse at 50% 100%, #3a2514 0%, transparent 70%);
}
.scn-exhaustion-victorious-party .back-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3b2a1a 0%, #2a1e10 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: exh-wall 8s ease-in-out infinite alternate;
}
.scn-exhaustion-victorious-party .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1f1610 0%, #120c08 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.7);
  transform: perspective(500px) rotateX(10deg);
  transform-origin: bottom center;
}
.scn-exhaustion-victorious-party .table {
  position: absolute; bottom: 20%; left: 50%; width: 130px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4d3822 0%, #2e2114 100%);
  border-radius: 2px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  animation: exh-table 4s ease-in-out infinite alternate;
}
.scn-exhaustion-victorious-party .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d6b185 0%, #a87a4f 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,150,80,0.4);
  animation: exh-candle 1.5s ease-in-out infinite alternate;
}
.scn-exhaustion-victorious-party .flame-glow {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffcc66 0%, rgba(255,180,60,0.6) 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,180,60,0.3), 0 0 80px 40px rgba(255,180,60,0.1);
  animation: exh-glow 2s ease-in-out infinite alternate;
}
.scn-exhaustion-victorious-party .figure-silhouette {
  position: absolute; bottom: 18%; left: 42%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: exh-figure 5s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-exhaustion-victorious-party .map-scroll {
  position: absolute; bottom: 22%; left: 48%; width: 50px; height: 8px;
  background: linear-gradient(90deg, #d4c2a1 0%, #bca98a 50%, #d4c2a1 100%);
  border-radius: 20% / 50%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: exh-map 6s ease-in-out infinite alternate;
}
.scn-exhaustion-victorious-party .shadow-drape {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, transparent 40%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}

@keyframes exh-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes exh-table {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes exh-candle {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(0.95); }
}
@keyframes exh-glow {
  0% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.85; transform: translate(-50%, -50%) scale(0.95); }
}
@keyframes exh-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes exh-map {
  0% { transform: translateX(-50%) rotate(-5deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-4deg) scaleX(1.02); }
  100% { transform: translateX(-50%) rotate(-6deg) scaleX(0.98); }
}

.scn-first-pursuit-degrees-cavalry {
  background: linear-gradient(180deg, #1c232b 0%, #0f151a 50%), radial-gradient(ellipse at 50% 100%, #1a2530 0%, transparent 70%);
}
.scn-first-pursuit-degrees-cavalry .stable-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a323c 0%, #1d232b 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: fir-wall 12s ease-in-out infinite alternate;
}
.scn-first-pursuit-degrees-cavalry .stable-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1f24 0%, #0e1115 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-first-pursuit-degrees-cavalry .horse-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #0d0f12 0%, #181b20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fir-horse 6s ease-in-out infinite alternate;
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 85% 100%, 15% 100%, 0% 50%);
}
.scn-first-pursuit-degrees-cavalry .lantern {
  position: absolute; bottom: 50%; left: 60%; width: 14px; height: 18px;
  background: radial-gradient(circle, #e8c271 0%, #b58a3e 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(232,194,113,0.5), 0 0 60px 18px rgba(232,194,113,0.2);
  animation: fir-lantern 2s ease-in-out infinite alternate;
}
.scn-first-pursuit-degrees-cavalry .hay-bale {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #85704c 0%, #635438 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: fir-hay 8s ease-in-out infinite alternate;
}
.scn-first-pursuit-degrees-cavalry .fence-rail {
  position: absolute; bottom: 32%; left: 10%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #5c4e3a 0%, #403528 100%);
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fir-rail 5s ease-in-out infinite alternate;
}
.scn-first-pursuit-degrees-cavalry .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.1) 0%, transparent 60%),
              radial-gradient(circle at 70% 60%, rgba(200,180,140,0.15) 0%, transparent 50%);
  filter: blur(3px);
  animation: fir-dust 20s linear infinite;
}

@keyframes fir-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fir-horse {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fir-lantern {
  0% { transform: rotate(-5deg); box-shadow: 0 0 20px 5px rgba(232,194,113,0.4); }
  50% { transform: rotate(3deg); box-shadow: 0 0 40px 12px rgba(232,194,113,0.6); }
  100% { transform: rotate(-2deg); box-shadow: 0 0 25px 8px rgba(232,194,113,0.5); }
}
@keyframes fir-hay {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes fir-rail {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}
@keyframes fir-dust {
  0% { background-position: 0% 0%, 100% 100%; }
  100% { background-position: 50% 50%, 150% 150%; }
}

.scn-strong-advance-guard-pursuit {
  background: linear-gradient(180deg, #1f1a1e 0%, #140f12 50%), radial-gradient(ellipse at 50% 100%, #2a2126 0%, transparent 70%);
}
.scn-strong-advance-guard-pursuit .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #322a2e 0%, #1e191c 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: str-wall 10s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .desk {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3c34 0%, #332822 100%);
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.6);
  animation: str-desk 7s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .map-paper {
  position: absolute; bottom: 27%; left: 48%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #c4b19b 0%, #aa9b87 50%, #b8a792 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: str-map 6s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .candlestick {
  position: absolute; bottom: 34%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #7a6b5c 0%, #53483d 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(180,140,80,0.3);
  animation: str-candle 2.5s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .chair-back {
  position: absolute; bottom: 15%; right: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #332822 0%, #1f1814 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: str-chair 5s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .window-outside {
  position: absolute; top: 15%; right: 15%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, #0e1a26 100%);
  border: 4px solid #4a3c34;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: str-window 15s ease-in-out infinite alternate;
}
.scn-strong-advance-guard-pursuit .curtain {
  position: absolute; top: 12%; right: 12%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3c34 0%, #332822 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: top right;
  animation: str-curtain 9s ease-in-out infinite alternate;
  opacity: 0.8;
}

@keyframes str-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes str-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes str-map {
  0% { transform: translateX(-50%) rotate(-2deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-1deg) scaleX(1.02); }
  100% { transform: translateX(-50%) rotate(-3deg) scaleX(0.98); }
}
@keyframes str-candle {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
  50% { transform: translateX(-50%) scaleY(1.05) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); }
}
@keyframes str-chair {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes str-window {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes str-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(0.95); }
  100% { transform: rotate(0deg) scaleX(1); }
}

.scn-flank-positions-definition {
  background: linear-gradient(180deg, #e8dcc6 0%, #d4c6af 50%), radial-gradient(ellipse at 50% 100%, #c4b59e 0%, transparent 70%);
}
.scn-flank-positions-definition .bright-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6d6 0%, #dfd3c0 100%);
  border-radius: 0 0 40% 40% / 0 0 15% 15%;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.1);
  animation: fla-wall 10s ease-in-out infinite alternate;
}
.scn-flank-positions-definition .wooden-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a68c 0%, #9e8b72 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
  transform: perspective(500px) rotateX(5deg);
  transform-origin: bottom center;
}
.scn-flank-positions-definition .bookshelf-left {
  position: absolute; top: 10%; left: 5%; width: 40px; height: 150px;
  background: linear-gradient(180deg, #7b6b58 0%, #5e5143 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: fla-shelf 8s ease-in-out infinite alternate;
}
.scn-flank-positions-definition .desk {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a3917a 0%, #8a7b67 100%);
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: fla-desk 6s ease-in-out infinite alternate;
}
.scn-flank-positions-definition .globe {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 28px;
  background: radial-gradient(circle at 40% 40%, #6b8e6b 0%, #3a5a3a 60%, #2a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: fla-globe 15s linear infinite;
}
.scn-flank-positions-definition .open-book {
  position: absolute; bottom: 30%; left: 42%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #f0ecd8 0%, #d8d0b8 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: fla-book 5s ease-in-out infinite alternate;
}
.scn-flank-positions-definition .inkwell {
  position: absolute; bottom: 28%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: fla-ink 4s ease-in-out infinite alternate;
}
.scn-flank-positions-definition .sunbeam {
  position: absolute; top: 0; left: 30%; width: 80px; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, rgba(255,255,200,0.02) 100%);
  filter: blur(8px);
  animation: fla-beam 20s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes fla-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fla-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fla-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes fla-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes fla-book {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(12deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateX(8deg) translateY(0); }
}
@keyframes fla-ink {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes fla-beam {
  0% { opacity: 0.3; transform: translateX(-10px); }
  50% { opacity: 0.6; transform: translateX(10px); }
  100% { opacity: 0.4; transform: translateX(-5px); }
}

/* awaiting-not-absolute-endurance */
.scn-awaiting-not-absolute-endurance {
  background:
    linear-gradient(180deg, #1e1612 0%, #2a1e17 40%, #1a1410 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a1e 0%, transparent 60%);
}
.scn-awaiting-not-absolute-endurance .bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a1e17 0%, transparent 100%); animation: aw-sky 12s ease-in-out infinite alternate; }
.scn-awaiting-not-absolute-endurance .window-frame { position:absolute; top:10%; left:25%; width:50%; height:50%; border:6px solid #4a3020; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.6); }
.scn-awaiting-not-absolute-endurance .window-glass { position:absolute; top:11%; left:26%; width:48%; height:48%; background:radial-gradient(circle at 60% 40%, #c8a070 0%, #5a3a20 90%); opacity:.5; animation: aw-glow 4s ease-in-out infinite alternate; }
.scn-awaiting-not-absolute-endurance .curtain-left { position:absolute; top:10%; left:25%; width:20%; height:50%; background:linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%); border-radius:0 40% 40% 0; transform-origin:left center; animation: aw-sway 6s ease-in-out infinite; }
.scn-awaiting-not-absolute-endurance .curtain-right { position:absolute; top:10%; left:55%; width:20%; height:50%; background:linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%); border-radius:40% 0 0 40%; transform-origin:right center; animation: aw-sway 6s ease-in-out infinite reverse; }
.scn-awaiting-not-absolute-endurance .figure-silhouette { position:absolute; bottom:20%; left:48%; width:30px; height:50px; background:linear-gradient(180deg, #1a1210 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aw-breathe 5s ease-in-out infinite; }
.scn-awaiting-not-absolute-endurance .lamp { position:absolute; top:58%; left:55%; width:12px; height:18px; background:radial-gradient(circle at 50% 60%, #d09050 0%, #805030 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 20px 6px #b08040, 0 0 40px 12px rgba(160,100,40,.4); animation: aw-lampflicker 2s ease-in-out infinite alternate; }
.scn-awaiting-not-absolute-endurance .chair { position:absolute; bottom:15%; left:45%; width:24px; height:30px; background:linear-gradient(180deg, #3a2218 0%, #2a1a10 100%); border-radius:4px 4px 2px 2px; box-shadow:inset 0 -4px 6px rgba(0,0,0,.6); animation: aw-chair 8s ease-in-out infinite; }
@keyframes aw-sky        { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes aw-glow       { 0% { opacity:.35; box-shadow:0 0 10px 2px #5a3a20 } 50% { opacity:.65; box-shadow:0 0 18px 6px #c8a070 } 100% { opacity:.4; box-shadow:0 0 12px 3px #5a3a20 } }
@keyframes aw-sway       { 0%,100% { transform:rotate(0deg) } 25% { transform:rotate(-4deg) } 75% { transform:rotate(2deg) } }
@keyframes aw-breathe    { 0%,100% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.02) } }
@keyframes aw-lampflicker{ 0% { opacity:.7; transform:scale(1) } 25% { opacity:.9; transform:scale(1.02) } 50% { opacity:.75; transform:scale(.98) } 75% { opacity:.88; transform:scale(1.01) } 100% { opacity:.7; transform:scale(1) } }
@keyframes aw-chair      { 0%,100% { transform:translateY(0) } 30% { transform:translateY(-1px) } 60% { transform:translateY(0) } 80% { transform:translateY(-2px) } }

/* many-ways-to-aim-supreme-law */
.scn-many-ways-to-aim-supreme-law {
  background:
    linear-gradient(180deg, #1c1511 0%, #2a1e17 50%, #18110e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1e 0%, transparent 60%);
}
.scn-many-ways-to-aim-supreme-law .desk { position:absolute; bottom:10%; left:10%; width:80%; height:25%; background:linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius:4px; box-shadow:0 -6px 12px rgba(0,0,0,.5); }
.scn-many-ways-to-aim-supreme-law .map-scroll { position:absolute; bottom:24%; left:30%; width:40%; height:8%; background:linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:0 0 40% 40%; transform-origin:center bottom; animation: ma-scroll 15s ease-in-out infinite; }
.scn-many-ways-to-aim-supreme-law .compass { position:absolute; bottom:32%; left:25%; width:18px; height:18px; background:radial-gradient(circle, #6a5030 0%, #3a2a1a 100%); border-radius:50%; box-shadow:0 0 8px 2px #3a2a1a; animation: ma-compass 12s linear infinite; }
.scn-many-ways-to-aim-supreme-law .lantern { position:absolute; bottom:35%; right:25%; width:10px; height:16px; background:radial-gradient(circle at 50% 60%, #d09050 0%, #805030 100%); border-radius:2px; box-shadow:0 0 16px 6px #b08040; animation: ma-lantern 3s ease-in-out infinite alternate; }
.scn-many-ways-to-aim-supreme-law .quill { position:absolute; bottom:28%; left:55%; width:8px; height:20px; background:linear-gradient(180deg, #d0b090 0%, #8a6a50 100%); border-radius:4px 4px 0 0; transform-origin:bottom center; animation: ma-quill 4s ease-in-out infinite; }
.scn-many-ways-to-aim-supreme-law .inkwell { position:absolute; bottom:26%; left:60%; width:10px; height:12px; background:linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:50% 50% 10% 10%; }
.scn-many-ways-to-aim-supreme-law .book-stack { position:absolute; bottom:22%; left:48%; width:20px; height:16px; background:linear-gradient(180deg, #6a4a30 0%, #4a3020 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); }
.scn-many-ways-to-aim-supreme-law .hand-pointing { position:absolute; bottom:30%; left:40%; width:12px; height:18px; background:linear-gradient(180deg, #2a1e17 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-20deg); transform-origin:bottom center; animation: ma-hand 6s ease-in-out infinite; }
@keyframes ma-scroll     { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.05) translateY(-2px) } }
@keyframes ma-compass    { 0% { transform:rotate(0deg) } 50% { transform:rotate(180deg) } 100% { transform:rotate(360deg) } }
@keyframes ma-lantern    { 0% { opacity:.6; box-shadow:0 0 12px 4px #805030 } 50% { opacity:.9; box-shadow:0 0 24px 8px #d09050 } 100% { opacity:.7; box-shadow:0 0 16px 5px #805030 } }
@keyframes ma-quill      { 0%,100% { transform:rotate(-2deg) translateX(0) } 25% { transform:rotate(0deg) translateX(1px) } 75% { transform:rotate(3deg) translateX(-1px) } }
@keyframes ma-hand       { 0%,100% { transform:rotate(-20deg) translateY(0) } 30% { transform:rotate(-18deg) translateY(-1px) } 60% { transform:rotate(-22deg) translateY(0) } 80% { transform:rotate(-19deg) translateY(-1px) } }

/* combinations-of-another-kind */
.scn-combinations-of-another-kind {
  background:
    linear-gradient(180deg, #1e1713 0%, #2a1f19 50%, #18120e 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1e 0%, transparent 50%);
}
.scn-combinations-of-another-kind .table { position:absolute; bottom:10%; left:5%; width:90%; height:20%; background:linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-combinations-of-another-kind .sphere { position:absolute; bottom:28%; left:20%; width:22px; height:22px; background:radial-gradient(circle at 35% 35%, #c8a070 0%, #6a4a30 100%); border-radius:50%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation: co-sphere 10s ease-in-out infinite; }
.scn-combinations-of-another-kind .cube { position:absolute; bottom:30%; left:50%; width:18px; height:18px; background:linear-gradient(135deg, #8a6a50 0%, #4a3020 100%); transform:rotate(45deg); box-shadow:0 4px 6px rgba(0,0,0,.4); animation: co-cube 8s ease-in-out infinite; }
.scn-combinations-of-another-kind .cylinder { position:absolute; bottom:30%; left:70%; width:12px; height:20px; background:linear-gradient(90deg, #6a4a30 0%, #a08050 20%, #6a4a30 100%); border-radius:0 0 50% 50%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation: co-cylinder 6s ease-in-out infinite; }
.scn-combinations-of-another-kind .candle { position:absolute; bottom:32%; left:38%; width:6px; height:16px; background:linear-gradient(180deg, #d0b090 0%, #a08050 100%); border-radius:2px; box-shadow:0 0 8px 2px #b08040; animation: co-candle 3s ease-in-out infinite alternate; }
.scn-combinations-of-another-kind .shadow-box { position:absolute; bottom:25%; left:15%; width:70%; height:4%; background:linear-gradient(90deg, transparent, rgba(0,0,0,.4), transparent); border-radius:50%; filter:blur(6px); animation: co-shadow 12s ease-in-out infinite; }
@keyframes co-sphere     { 0%,100% { transform:translateY(0) scale(1) } 25% { transform:translateY(-2px) scale(1.02) } 50% { transform:translateY(0) scale(.98) } 75% { transform:translateY(-1px) scale(1.01) } }
@keyframes co-cube       { 0%,100% { transform:rotate(45deg) translateY(0) } 33% { transform:rotate(35deg) translateY(-2px) } 66% { transform:rotate(55deg) translateY(-1px) } }
@keyframes co-cylinder   { 0%,100% { transform:translateY(0) skewX(0) } 30% { transform:translateY(-1px) skewX(1deg) } 60% { transform:translateY(0) skewX(-1deg) } 80% { transform:translateY(-2px) skewX(0) } }
@keyframes co-candle     { 0% { opacity:.6; box-shadow:0 0 6px 2px #805030 } 50% { opacity:.9; box-shadow:0 0 14px 5px #d0b090 } 100% { opacity:.7; box-shadow:0 0 8px 3px #805030 } }
@keyframes co-shadow     { 0%,100% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(3px) scaleX(1.1) } }

/* consequences-retain-before-us */
.scn-consequences-retain-before-us {
  background:
    linear-gradient(180deg, #1c1511 0%, #2a1e17 50%, #18110e 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1e 0%, transparent 70%);
}
.scn-consequences-retain-before-us .mirror-frame { position:absolute; top:10%; left:25%; width:50%; height:50%; border:8px solid #4a3020; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.6); }
.scn-consequences-retain-before-us .mirror-glass { position:absolute; top:12%; left:27%; width:46%; height:46%; background:radial-gradient(ellipse at center, #3a2a1e 0%, #1a1210 100%); opacity:.35; animation: con-shimmer 8s ease-in-out infinite; }
.scn-consequences-retain-before-us .reflection-figure { position:absolute; top:25%; left:35%; width:20px; height:35px; background:linear-gradient(180deg, #2a1e17 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.3; animation: con-fig 6s ease-in-out infinite; }
.scn-consequences-retain-before-us .vase { position:absolute; bottom:28%; left:45%; width:14px; height:22px; background:linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius:4px 4px 2px 2px; box-shadow:0 4px 6px rgba(0,0,0,.4); animation: con-vase 10s ease-in-out infinite; }
.scn-consequences-retain-before-us .flower { position:absolute; bottom:50%; left:47%; width:6px; height:12px; background:linear-gradient(180deg, #d0b090 0%, #a08050 100%); border-radius:4px; transform-origin:bottom center; animation: con-flower 5s ease-in-out infinite; }
.scn-consequences-retain-before-us .table { position:absolute; bottom:10%; left:10%; width:80%; height:18%; background:linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-consequences-retain-before-us .window-light { position:absolute; top:10%; left:25%; width:50%; height:50%; background:radial-gradient(ellipse at 60% 30%, #d0a060 0%, transparent 60%); opacity:.08; animation: con-light 15s ease-in-out infinite alternate; }
@keyframes con-shimmer  { 0%,100% { opacity:.3; box-shadow:0 0 10px rgba(0,0,0,.2) } 50% { opacity:.4; box-shadow:0 0 20px rgba(0,0,0,.4) } }
@keyframes con-fig      { 0%,100% { transform:translateY(0) } 25% { transform:translateY(-2px) scale(1.02) } 75% { transform:translateY(1px) scale(.98) } }
@keyframes con-vase     { 0%,100% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-1px) rotate(1deg) } 60% { transform:translateY(0) rotate(-1deg) } 80% { transform:translateY(-2px) rotate(0deg) } }
@keyframes con-flower   { 0%,100% { transform:rotate(-5deg) scaleY(1) } 25% { transform:rotate(2deg) scaleY(1.05) } 50% { transform:rotate(-3deg) scaleY(.95) } 75% { transform:rotate(4deg) scaleY(1.02) } }
@keyframes con-light    { 0% { opacity:.06; transform:translateX(0) } 50% { opacity:.12; transform:translateX(2px) } 100% { opacity:.08; transform:translateX(-2px) } }

/* Scene: equality-conditions-required (ecr) */
.scn-equality-conditions-required {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 30%, #141426 100%),
    radial-gradient(ellipse at 50% 80%, rgba(180, 140, 80, 0.15) 0%, transparent 60%);
}
.scn-equality-conditions-required .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #1e1e30 0%, #12121e 100%);
  animation: ecr-wall-breath 12s ease-in-out infinite alternate;
}
.scn-equality-conditions-required .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background:linear-gradient(0deg, #2a2a3a 0%, #1a1a26 100%);
  border-top:2px solid rgba(255,220,180,0.05);
}
.scn-equality-conditions-required .desk {
  position:absolute; bottom:18%; left:25%; width:45%; height:12%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.6);
}
.scn-equality-conditions-required .lamp {
  position:absolute; bottom:26%; left:40%; width:8px; height:20%;
  background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:4px 4px 0 0;
}
.scn-equality-conditions-required .lamp::before {
  content:''; position:absolute; top:-8px; left:-8px; width:24px; height:16px;
  background:radial-gradient(ellipse, #d4a050 0%, #a07030 60%, transparent 100%);
  border-radius:50%;
}
.scn-equality-conditions-required .book {
  position:absolute; bottom:15%; left:30%; width:50px; height:8px;
  background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius:2px; transform:rotate(-10deg);
  animation: ecr-book-wiggle 6s ease-in-out infinite;
}
.scn-equality-conditions-required .window {
  position:absolute; top:8%; right:8%; width:25%; height:40%;
  background:linear-gradient(180deg, #0e1a2a 0%, #1a2a3e 100%);
  border:3px solid #3a2a1a; border-radius:4px;
  box-shadow:inset 0 0 20px rgba(80,120,180,0.1);
}
.scn-equality-conditions-required .curtain {
  position:absolute; top:8%; right:10%; width:12%; height:42%;
  background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius:0 0 30% 30%;
  animation: ecr-curtain-sway 8s ease-in-out infinite;
}
.scn-equality-conditions-required .chair {
  position:absolute; bottom:16%; left:55%; width:40px; height:40px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow:0 4px 8px rgba(0,0,0,0.4);
}
.scn-equality-conditions-required .clock {
  position:absolute; top:12%; left:10%; width:40px; height:40px;
  background:radial-gradient(circle, #3a2a1a 0%, #1a1212 100%);
  border-radius:50%; border:2px solid #5a4a3a;
  box-shadow:inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-equality-conditions-required .clock::after {
  content:''; position:absolute; top:50%; left:50%; width:2px; height:14px;
  background:#b09070; transform-origin:50% 100%;
  animation: ecr-clock-tick 12s linear infinite;
}
@keyframes ecr-wall-breath { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ecr-book-wiggle { 0%,100% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-1px) } }
@keyframes ecr-curtain-sway { 0% { transform:translateX(0) } 50% { transform:translateX(-4px) } 100% { transform:translateX(0) } }
@keyframes ecr-clock-tick { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }

/* Scene: moral-element-implied (mei) */
.scn-moral-element-implied {
  background:
    linear-gradient(180deg, #1e1e3a 0%, #142030 40%, #0c1828 100%),
    radial-gradient(ellipse at 60% 70%, rgba(100, 130, 200, 0.1) 0%, transparent 50%);
}
.scn-moral-element-implied .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #182030 0%, #0c1420 100%);
  animation: mei-wall-soft 15s ease-in-out infinite alternate;
}
.scn-moral-element-implied .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background:linear-gradient(0deg, #22283a 0%, #161c28 100%);
  border-top:2px solid rgba(180,200,220,0.03);
}
.scn-moral-element-implied .bookshelf {
  position:absolute; bottom:20%; right:5%; width:20%; height:50%;
  background:linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.5);
}
.scn-moral-element-implied .bookshelf::before {
  content:''; position:absolute; top:20%; left:10%; width:80%; height:10%;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:2px;
}
.scn-moral-element-implied .lamp {
  position:absolute; bottom:25%; left:30%; width:10px; height:22%;
  background:linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%);
  border-radius:2px 2px 0 0;
}
.scn-moral-element-implied .lamp::before {
  content:''; position:absolute; top:-6px; left:-6px; width:22px; height:14px;
  background:radial-gradient(ellipse, #a0b0c0 0%, #607080 60%, transparent 100%);
  border-radius:50%;
}
.scn-moral-element-implied .book {
  position:absolute; bottom:15%; left:40%; width:45px; height:7px;
  background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:2px; transform:rotate(5deg);
  animation: mei-book-flip 7s ease-in-out infinite;
}
.scn-moral-element-implied .painting {
  position:absolute; top:10%; left:10%; width:30%; height:35%;
  background:linear-gradient(135deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%);
  border:3px solid #3a2a1a; border-radius:4px;
  box-shadow:inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-moral-element-implied .chair {
  position:absolute; bottom:14%; left:20%; width:35px; height:35px;
  background:linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
}
.scn-moral-element-implied .rug {
  position:absolute; bottom:0; left:15%; width:70%; height:8%;
  background:linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius:30% 30% 0 0; opacity:0.6;
  animation: mei-rug-pulse 10s ease-in-out infinite;
}
@keyframes mei-wall-soft { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes mei-book-flip { 0%,100% { transform:rotate(5deg) translateX(0) } 50% { transform:rotate(3deg) translateX(2px) } }
@keyframes mei-rug-pulse { 0%,100% { opacity:0.5 } 50% { opacity:0.7 } }

/* Scene: expense-risk-of-destruction (erd) */
.scn-expense-risk-of-destruction {
  background:
    linear-gradient(180deg, #2a2a2a 0%, #1e1e1e 30%, #141414 100%),
    radial-gradient(ellipse at 40% 70%, rgba(160,100,60,0.15) 0%, transparent 50%);
}
.scn-expense-risk-of-destruction .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  animation: erd-wall-dim 14s ease-in-out infinite alternate;
}
.scn-expense-risk-of-destruction .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background:linear-gradient(0deg, #2a2a2a 0%, #1a1a1a 100%);
  border-top:2px solid rgba(200,150,100,0.05);
}
.scn-expense-risk-of-destruction .scale {
  position:absolute; bottom:30%; left:50%; width:80px; height:10px;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:2px; transform:translateX(-50%);
  box-shadow:0 2px 6px rgba(0,0,0,0.5);
}
.scn-expense-risk-of-destruction .left-tray {
  position:absolute; bottom:34%; left:50%; width:40px; height:8px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius:0 0 30% 30%; transform:translateX(-130px);
  animation: erd-tray-sway 5s ease-in-out infinite alternate;
}
.scn-expense-risk-of-destruction .right-tray {
  position:absolute; bottom:34%; left:50%; width:40px; height:8px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius:0 0 30% 30%; transform:translateX(90px);
  animation: erd-tray-sway 5s ease-in-out infinite alternate-reverse;
}
.scn-expense-risk-of-destruction .lamp {
  position:absolute; bottom:28%; left:20%; width:8px; height:18%;
  background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:2px 2px 0 0;
}
.scn-expense-risk-of-destruction .lamp::before {
  content:''; position:absolute; top:-6px; left:-8px; width:24px; height:14px;
  background:radial-gradient(ellipse, #c08040 0%, #805020 60%, transparent 100%);
  border-radius:50%;
}
.scn-expense-risk-of-destruction .shadow {
  position:absolute; bottom:0; left:30%; width:40%; height:20%;
  background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  border-radius:50%;
  animation: erd-shadow-breathe 8s ease-in-out infinite;
}
@keyframes erd-wall-dim { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes erd-tray-sway { 0% { transform:translateX(-130px) rotate(-3deg) } 100% { transform:translateX(-120px) rotate(3deg) } }
@keyframes erd-shadow-breathe { 0%,100% { opacity:0.3 } 50% { opacity:0.5 } }

/* Scene: danger-recoils (dre) */
.scn-danger-recoils {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #141424 30%, #0e0e1c 100%),
    radial-gradient(ellipse at 50% 60%, rgba(80, 120, 160, 0.08) 0%, transparent 50%);
}
.scn-danger-recoils .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #181828 0%, #0e0e18 100%);
  animation: dre-wall-vibrate 16s ease-in-out infinite alternate;
}
.scn-danger-recoils .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background:linear-gradient(0deg, #1e2030 0%, #12141e 100%);
  border-top:2px solid rgba(180,180,200,0.02);
}
.scn-danger-recoils .coil {
  position:absolute; bottom:22%; left:35%; width:30%; height:15%;
  background:linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius:50% / 30%;
  box-shadow:0 4px 12px rgba(0,0,0,0.3);
  animation: dre-coil-bounce 6s ease-in-out infinite;
}
.scn-danger-recoils .lamp {
  position:absolute; bottom:30%; left:60%; width:8px; height:20%;
  background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius:2px 2px 0 0;
}
.scn-danger-recoils .lamp::before {
  content:''; position:absolute; top:-8px; left:-8px; width:24px; height:16px;
  background:radial-gradient(ellipse, #a0b0c0 0%, #607080 60%, transparent 100%);
  border-radius:50%;
}
.scn-danger-recoils .desk {
  position:absolute; bottom:18%; left:10%; width:30%; height:10%;
  background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5);
}
.scn-danger-recoils .paper {
  position:absolute; bottom:20%; left:15%; width:40px; height:6px;
  background:linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius:2px; transform:rotate(-15deg);
  animation: dre-paper-slide 9s ease-in-out infinite;
}
.scn-danger-recoils .chair {
  position:absolute; bottom:14%; left:45%; width:35px; height:35px;
  background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 20% 20%;
}
@keyframes dre-wall-vibrate { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.93 } }
@keyframes dre-coil-bounce { 0%,100% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.05) translateY(-3px) } }
@keyframes dre-paper-slide { 0%,100% { transform:rotate(-15deg) translateX(0) } 50% { transform:rotate(-12deg) translateX(5px) } }

.scn-introduction-equilibrium-argument {
  background:
    linear-gradient(180deg, #2a1f16 0%, #1f1510 40%, #14100c 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-introduction-equilibrium-argument .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #4a3524 0%, transparent 70%);
  animation: eq-bg 12s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-argument .wall {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f16 100%);
  border-bottom: 4px solid #1a1410;
  animation: eq-wall 20s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-argument .desk {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a3f2a 0%, #3a2818 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
  animation: eq-desk 8s ease-in-out infinite;
}
.scn-introduction-equilibrium-argument .lamp {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  animation: eq-lamp 5s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-argument .lamp-glow {
  position: absolute; bottom: 42%; left: 34%; width: 10%; height: 8%;
  background: radial-gradient(circle, #d4a76a 0%, #b88444 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #b88444, 0 0 60px 16px rgba(184,132,68,0.4);
  animation: eq-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-argument .books {
  position: absolute; bottom: 28%; left: 55%; width: 25%; height: 6%;
  background: linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 25%, #4a2a0a 50%, #6a4a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: eq-books 10s ease-in-out infinite;
}
.scn-introduction-equilibrium-argument .scales {
  position: absolute; bottom: 28%; left: 45%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: eq-scales 7s ease-in-out infinite alternate;
}
.scn-introduction-equilibrium-argument .figure {
  position: absolute; bottom: 18%; left: 32%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eq-figure 6s ease-in-out infinite;
}
@keyframes eq-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes eq-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eq-desk { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(5deg) translateY(-1px) } }
@keyframes eq-lamp { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes eq-lamp-glow { 0% { box-shadow: 0 0 20px 4px #b88444; opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #d4a76a; opacity:1 } 100% { box-shadow: 0 0 25px 6px #b88444; opacity:0.9 } }
@keyframes eq-books { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes eq-scales { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes eq-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-introduction-hague-conference {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #12121e 40%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%);
}
.scn-introduction-hague-conference .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 70%);
  animation: hg-bg 15s ease-in-out infinite alternate;
}
.scn-introduction-hague-conference .table {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20px; box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  transform: perspective(800px) rotateX(10deg);
  animation: hg-table 9s ease-in-out infinite;
}
.scn-introduction-hague-conference .chair-left {
  position: absolute; bottom: 26%; left: 20%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform-origin: bottom center;
  animation: hg-chair 7s ease-in-out infinite alternate;
}
.scn-introduction-hague-conference .chair-right {
  position: absolute; bottom: 26%; right: 20%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform-origin: bottom center;
  animation: hg-chair 7s ease-in-out infinite alternate-reverse;
}
.scn-introduction-hague-conference .documents {
  position: absolute; bottom: 32%; left: 40%; width: 20%; height: 4%;
  background: linear-gradient(90deg, #c8b89a 0%, #a89878 50%, #c8b89a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: hg-docs 11s ease-in-out infinite;
}
.scn-introduction-hague-conference .clock {
  position: absolute; top: 20%; left: 50%; width: 8%; height: 12%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0c0 0%, #c0b090 70%);
  border-radius: 50%; box-shadow: 0 0 20px 4px rgba(192,176,144,0.3);
  animation: hg-clock 60s linear infinite;
}
.scn-introduction-hague-conference .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a4a6e 0%, #2a2a4e 100%);
  border: 4px solid #1a1a2e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,180,0.3);
  animation: hg-window 8s ease-in-out infinite alternate;
}
@keyframes hg-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hg-table { 0%,100% { transform: perspective(800px) rotateX(10deg) translateY(0) } 50% { transform: perspective(800px) rotateX(10deg) translateY(-1px) } }
@keyframes hg-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes hg-docs { 0%,100% { transform: translateX(0) } 50% { transform: translateX(1px) } }
@keyframes hg-clock { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(90deg) } 50% { transform: translateX(-50%) rotate(180deg) } 75% { transform: translateX(-50%) rotate(270deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes hg-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(100,100,180,0.2) } 50% { opacity:0.9; box-shadow: inset 0 0 30px rgba(120,120,200,0.4) } 100% { opacity:0.8; box-shadow: inset 0 0 20px rgba(100,100,180,0.3) } }

.scn-introduction-no-thanks-for-defences {
  background:
    linear-gradient(180deg, #1a1210 0%, #14100c 40%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a12 0%, transparent 70%);
}
.scn-introduction-no-thanks-for-defences .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2a1a12 0%, transparent 70%);
  animation: nd-bg 14s ease-in-out infinite alternate;
}
.scn-introduction-no-thanks-for-defences .wall {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100a 100%);
  border-bottom: 3px solid #0e0a06;
  animation: nd-wall 18s ease-in-out infinite alternate;
}
.scn-introduction-no-thanks-for-defences .map {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(600px) rotateX(5deg);
  animation: nd-map 10s ease-in-out infinite;
}
.scn-introduction-no-thanks-for-defences .shield {
  position: absolute; bottom: 38%; left: 55%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: nd-shield 5s ease-in-out infinite alternate;
}
.scn-introduction-no-thanks-for-defences .candle {
  position: absolute; bottom: 30%; left: 15%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 60%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(240,224,192,0.3);
  animation: nd-candle 4s ease-in-out infinite alternate;
}
.scn-introduction-no-thanks-for-defences .candle-glow {
  position: absolute; bottom: 40%; left: 13%; width: 7%; height: 6%;
  background: radial-gradient(circle, #f0d8a0 0%, #d8b878 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #d8b878, 0 0 50px 12px rgba(216,184,120,0.4);
  animation: nd-candle-glow 3s ease-in-out infinite alternate;
}
.scn-introduction-no-thanks-for-defences .figure {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nd-figure 8s ease-in-out infinite;
}
@keyframes nd-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nd-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nd-map { 0% { transform: perspective(600px) rotateX(5deg) translateY(0) } 50% { transform: perspective(600px) rotateX(5deg) translateY(-1px) } 100% { transform: perspective(600px) rotateX(5deg) translateY(0) } }
@keyframes nd-shield { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes nd-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes nd-candle-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 4px #d8b878 } 50% { opacity:1; box-shadow: 0 0 40px 10px #f0d8a0 } 100% { opacity:0.8; box-shadow: 0 0 25px 6px #d8b878 } }
@keyframes nd-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-introduction-steam-boiler-analogy {
  background:
    linear-gradient(180deg, #1a1410 0%, #14100c 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%);
}
.scn-introduction-steam-boiler-analogy .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
  animation: sb-bg 16s ease-in-out infinite alternate;
}
.scn-introduction-steam-boiler-analogy .pipe-left {
  position: absolute; bottom: 40%; left: 5%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
  transform: skewY(5deg);
  animation: sb-pipe 12s ease-in-out infinite;
}
.scn-introduction-steam-boiler-analogy .pipe-right {
  position: absolute; bottom: 40%; right: 5%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
  transform: skewY(-5deg);
  animation: sb-pipe 12s ease-in-out infinite alternate;
}
.scn-introduction-steam-boiler-analogy .boiler {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 28%;
  background:
    radial-gradient(circle at 50% 60%, #6a5a4a 0%, #4a3a2a 60%),
    linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.6), 0 8px 20px rgba(0,0,0,0.5);
  animation: sb-boiler 8s ease-in-out infinite;
}
.scn-introduction-steam-boiler-analogy .gauge {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #f0e0c0 0%, #c8b090 70%);
  border-radius: 50%; border: 3px solid #3a2a1a;
  box-shadow: 0 0 10px 2px rgba(200,176,144,0.3);
  animation: sb-gauge 15s linear infinite;
}
.scn-introduction-steam-boiler-analogy .steam {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: sb-steam 6s ease-in-out infinite alternate;
}
.scn-introduction-steam-boiler-analogy .firebox {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a180a 100%);
  border-radius: 10px; box-shadow: inset 0 0 20px #2a180a;
  animation: sb-firebox 9s ease-in-out infinite;
}
.scn-introduction-steam-boiler-analogy .fire-glow {
  position: absolute; bottom: 18%; left: 37%; width: 26%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #d89a5a 0%, #b87030 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #b87030, 0 0 80px 20px rgba(184,112,48,0.4);
  animation: sb-fire-glow 4s ease-in-out infinite alternate;
}
@keyframes sb-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sb-pipe { 0% { transform: skewY(5deg) translateX(0) } 50% { transform: skewY(5deg) translateX(-2px) } 100% { transform: skewY(5deg) translateX(0) } }
@keyframes sb-boiler { 0%,100% { transform: scale(1) } 50% { transform: scale(1.005) translateY(-1px) } }
@keyframes sb-gauge { 0% { transform: rotate(0deg) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes sb-steam { 0% { opacity:0.1; transform: translateY(0) scale(1) } 50% { opacity:0.25; transform: translateY(-10px) scale(1.1) } 100% { opacity:0.15; transform: translateY(-5px) scale(1.05) } }
@keyframes sb-firebox { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes sb-fire-glow { 0% { box-shadow: 0 0 30px 6px #b87030; opacity:0.7 } 50% { box-shadow: 0 0 50px 14px #d89a5a; opacity:1 } 100% { box-shadow: 0 0 35px 8px #b87030; opacity:0.8 } }

/* Scene 1: defence-of-streams-continued-intro */
.scn-defence-of-streams-continued-intro {
  background:
    linear-gradient(180deg, #f7edd6 0%, #e8d8b8 50%, #d6c49a 100%),
    radial-gradient(ellipse at 80% 20%, #fff5e6 0%, transparent 60%);
}
.scn-defence-of-streams-continued-intro .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dccc 0%, #d4c8a8 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
  animation: ds1-wall 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-continued-intro .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #9c7c54 0%, #6b4e2e 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.15);
  transform-origin: bottom center;
  animation: ds1-desk 9s ease-in-out infinite;
}
.scn-defence-of-streams-continued-intro .book-open {
  position: absolute; bottom: 30%; left: 20%; width: 28%; height: 20%;
  background: linear-gradient(135deg, #f0e6c0 0%, #d4c090 50%, #b8a070 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: ds1-book 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-continued-intro .book-open::before {
  content: ''; position: absolute; left: 48%; top: 0; bottom: 0; width: 4%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px;
}
.scn-defence-of-streams-continued-intro .map-scroll {
  position: absolute; bottom: 32%; right: 15%; width: 18%; height: 14%;
  background: linear-gradient(135deg, #ede0b0 0%, #d8c88a 50%, #c4b07a 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.1);
  transform: rotate(4deg);
  animation: ds1-scroll 8s ease-in-out infinite;
}
.scn-defence-of-streams-continued-intro .inkwell {
  position: absolute; bottom: 26%; left: 52%; width: 6%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ds1-ink 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-continued-intro .hand-writing {
  position: absolute; bottom: 38%; left: 28%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #d6b886 0%, #b89868 100%);
  border-radius: 50% 10% 30% 10%;
  transform: rotate(-10deg);
  opacity: 0.7;
  animation: ds1-hand 4s ease-in-out infinite;
}
.scn-defence-of-streams-continued-intro .window-light {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(135deg, rgba(255,255,220,0.25) 0%, rgba(255,245,200,0.1) 100%);
  border-radius: 8px;
  filter: blur(12px);
  animation: ds1-window 8s ease-in-out infinite alternate;
}
@keyframes ds1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ds1-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes ds1-book { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ds1-scroll { 0% { transform: rotate(4deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(4deg) scale(1) } }
@keyframes ds1-ink { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ds1-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(4px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes ds1-window { 0% { opacity: 0.2 } 50% { opacity: 0.35 } 100% { opacity: 0.2 } }

/* Scene 2: defence-of-streams-parallel-front-defender */
.scn-defence-of-streams-parallel-front-defender {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e8 0%, transparent 60%);
}
.scn-defence-of-streams-parallel-front-defender .table {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 0 0 12px 12px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: ds2-table 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .map-grid {
  position: absolute; top: 12%; left: 10%; right: 10%; bottom: 35%;
  background:
    repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(0,0,0,0.03) 8%, rgba(0,0,0,0.03) 8.5%),
    repeating-linear-gradient(90deg, transparent, transparent 8%, rgba(0,0,0,0.03) 8%, rgba(0,0,0,0.03) 8.5%),
    linear-gradient(135deg, #e8dcb0 0%, #d4c89a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: ds2-grid 10s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .river-blue {
  position: absolute; top: 30%; left: 0; right: 0; height: 4%;
  background: linear-gradient(90deg, #6a9ec0 0%, #8ab8d8 50%, #6a9ec0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: ds2-river 8s ease-in-out infinite;
}
.scn-defence-of-streams-parallel-front-defender .army-red {
  position: absolute; top: 22%; left: 25%; width: 8%; height: 5%;
  background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ds2-army-red 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .army-blue {
  position: absolute; top: 42%; left: 60%; width: 8%; height: 5%;
  background: radial-gradient(circle at 50% 50%, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ds2-army-blue 7s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .bridge-wood {
  position: absolute; top: 28%; left: 45%; width: 12%; height: 4%;
  background: linear-gradient(180deg, #8a6a44 0%, #6a4e2e 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ds2-bridge 9s ease-in-out infinite;
}
.scn-defence-of-streams-parallel-front-defender .compass {
  position: absolute; bottom: 25%; right: 12%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b88a 50%, #b09870 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: ds2-compass 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .compass::after {
  content: ''; position: absolute; top: 20%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 70%);
  border-radius: 50%;
  animation: ds2-needle 3s ease-in-out infinite alternate;
}
.scn-defence-of-streams-parallel-front-defender .scale-bar {
  position: absolute; bottom: 28%; left: 15%; width: 20%; height: 2%;
  background: repeating-linear-gradient(90deg, #6a4e2e, #6a4e2e 3%, transparent 3%, transparent 6%);
  border-left: 2px solid #6a4e2e;
  border-right: 2px solid #6a4e2e;
  animation: ds2-scale 20s linear infinite;
}
@keyframes ds2-table { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ds2-grid { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes ds2-river { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes ds2-army-red { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(2px, -1px) scale(1.05) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes ds2-army-blue { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(-2px, 1px) scale(1.05) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes ds2-bridge { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes ds2-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ds2-needle { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes ds2-scale { 0% { background-position: 0% 0% } 100% { background-position: 50% 0% } }

/* Scene 3: defence-of-streams-distance-matters */
.scn-defence-of-streams-distance-matters {
  background:
    linear-gradient(90deg, #e0d4b8 0%, #d0c0a0 50%, #e0d4b8 100%),
    radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 60%);
}
.scn-defence-of-streams-distance-matters .bg-shelf {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b89870 0%, #9a7c54 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
  animation: ds3-shelf 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-matters .telescope {
  position: absolute; bottom: 36%; left: 20%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7050 50%, #6a5a3a 100%);
  border-radius: 20% 60% 60% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: ds3-telescope 7s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-matters .telescope::after {
  content: ''; position: absolute; top: -40%; left: 70%; width: 20%; height: 180%;
  background: radial-gradient(circle at 50% 50%, #8ab8d8 0%, #4a6a8a 100%);
  border-radius: 50%;
  animation: ds3-lens 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-matters .hourglass {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #c0a880 0%, #a08060 50%, #c0a880 100%);
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: ds3-hourglass 9s ease-in-out infinite;
}
.scn-defence-of-streams-distance-matters .hourglass::before {
  content: ''; position: absolute; top: 15%; left: 25%; width: 50%; height: 35%;
  background: radial-gradient(circle at 50% 100%, #f0e0b0 0%, transparent 70%);
  border-radius: 50%;
  animation: ds3-sand 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-matters .ruler-horiz {
  position: absolute; bottom: 30%; left: 10%; width: 40%; height: 2%;
  background: linear-gradient(90deg, #8a7050, #8a7050 2%, transparent 2%, transparent 4%, #8a7050 4%, #8a7050 6%, transparent 6%, transparent 8%);
  border-left: 2px solid #6a4e2e;
  border-right: 2px solid #6a4e2e;
  animation: ds3-ruler-h 20s linear infinite;
}
.scn-defence-of-streams-distance-matters .ruler-vert {
  position: absolute; bottom: 20%; left: 65%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #8a7050, #8a7050 4%, transparent 4%, transparent 8%, #8a7050 8%, #8a7050 12%, transparent 12%, transparent 16%);
  border-top: 2px solid #6a4e2e;
  border-bottom: 2px solid #6a4e2e;
  animation: ds3-ruler-v 20s linear infinite;
}
.scn-defence-of-streams-distance-matters .fading-dots {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(circle at 10% 50%, rgba(0,0,0,0.1) 0%, transparent 2%), radial-gradient(circle at 30% 50%, rgba(0,0,0,0.07) 0%, transparent 2%), radial-gradient(circle at 50% 50%, rgba(0,0,0,0.05) 0%, transparent 2%), radial-gradient(circle at 70% 50%, rgba(0,0,0,0.03) 0%, transparent 2%), radial-gradient(circle at 90% 50%, rgba(0,0,0,0.01) 0%, transparent 2%);
  animation: ds3-dots 12s ease-in-out infinite alternate;
}
@keyframes ds3-shelf { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ds3-telescope { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes ds3-lens { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ds3-hourglass { 0% { transform: scale(1) } 50% { transform: scale(1.01) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes ds3-sand { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(0.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes ds3-ruler-h { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes ds3-ruler-v { 0% { background-position: 0% 0% } 100% { background-position: 0% 100% } }
@keyframes ds3-dots { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* Scene 4: defence-of-streams-right-angle-advantage */
.scn-defence-of-streams-right-angle-advantage {
  background:
    linear-gradient(135deg, #e8dcbc 0%, #d4c49a 100%),
    radial-gradient(ellipse at 30% 70%, #fff8e0 0%, transparent 50%);
}
.scn-defence-of-streams-right-angle-advantage .parchment {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%;
  background: radial-gradient(ellipse at 50% 50%, #f0e6c8 0%, #d8c8a0 70%, #c4b08a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  animation: ds4-parch 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .protractor {
  position: absolute; top: 30%; left: 50%; width: 30%; height: 30%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 50% 100%, #e8dcc0 0%, transparent 80%);
  border: 4px solid #8a7050;
  border-radius: 50% 50% 0 0;
  border-bottom: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: ds4-prot 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .ruler-45 {
  position: absolute; top: 45%; left: 35%; width: 30%; height: 3%;
  background: #6a5a3a;
  transform: rotate(45deg);
  transform-origin: left center;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ds4-ruler45 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .square-corner {
  position: absolute; top: 35%; left: 38%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  border-radius: 0; /* square */
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ds4-square 9s ease-in-out infinite;
}
.scn-defence-of-streams-right-angle-advantage .arrow-right {
  position: absolute; top: 60%; left: 60%; width: 8%; height: 4%;
  background: #8a6a44;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 75%, 80% 75%, 80% 25%, 0 25%);
  animation: ds4-arrow-r 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .arrow-down {
  position: absolute; top: 60%; left: 60%; width: 4%; height: 8%;
  background: #8a6a44;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 25% 0, 25% 80%, 75% 80%, 75% 0);
  animation: ds4-arrow-d 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .shadow-cross {
  position: absolute; top: 50%; left: 50%; width: 40%; height: 4%;
  transform: translate(-50%, -50%);
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.05) 30%, rgba(0,0,0,0.05) 70%, transparent 100%);
  animation: ds4-cross 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-right-angle-advantage .shadow-cross::after {
  content: ''; position: absolute; top: -50%; left: 50%; width: 4%; height: 200%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.05) 30%, rgba(0,0,0,0.05) 70%, transparent 100%);
  transform: translate(-50%, 0);
}
@keyframes ds4-parch { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ds4-prot { 0% { transform: translate(-50%, -50%) rotate(0deg) } 50% { transform: translate(-50%, -50%) rotate(2deg) } 100% { transform: translate(-50%, -50%) rotate(0deg) } }
@keyframes ds4-ruler45 { 0% { transform: rotate(45deg) scaleY(1) } 50% { transform: rotate(43deg) scaleY(1.02) } 100% { transform: rotate(45deg) scaleY(1) } }
@keyframes ds4-square { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ds4-arrow-r { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(4px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes ds4-arrow-d { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ds4-cross { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

.scn-defence-of-streams-moderate-negative {
  background:
    linear-gradient(135deg, #f5e6d0 0%, #e8d5b0 50%, #d9c49a 100%),
    radial-gradient(ellipse at 30% 40%, #fff5e6 0%, transparent 70%);
}
.scn-defence-of-streams-moderate-negative .tent-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #f0e3c8 0%, #dacbaa 100%); 
  animation: mdn-wall 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-moderate-negative .desk {
  position:absolute; bottom:10%; left:20%; width:55%; height:8%; 
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%); border-radius: 4px; 
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-defence-of-streams-moderate-negative .map {
  position:absolute; bottom:12%; left:25%; width:45%; height:11%; 
  background: linear-gradient(90deg, #c4b998 0%, #e0d2b0 40%, #c4b998 100%); 
  border-radius: 2px; transform: perspective(400px) rotateX(15deg); 
  animation: mdn-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-streams-moderate-negative .candle {
  position:absolute; bottom:20%; left:50%; width:8px; height:20px; 
  background: linear-gradient(180deg, #fff3d0 0%, #b8885a 100%); 
  border-radius: 40% 40% 10% 10%; 
  transform: translateX(-50%); 
  box-shadow: 0 0 6px 2px rgba(255,220,100,0.5);
  animation: mdn-candle-sway 4s ease-in-out infinite;
}
.scn-defence-of-streams-moderate-negative .candle-light {
  position:absolute; bottom:18%; left:50%; width:30px; height:30px; 
  transform: translateX(-50%); 
  background: radial-gradient(circle, rgba(255,200,80,0.9) 0%, rgba(255,180,60,0.4) 40%, transparent 70%);
  border-radius:50%; 
  animation: mdn-candle-glow 3s ease-in-out infinite alternate;
}
.scn-defence-of-streams-moderate-negative .soldier {
  position:absolute; bottom:18%; left:15%; width:20px; height:50px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: mdn-soldier 8s ease-in-out infinite;
}
.scn-defence-of-streams-moderate-negative .window-frame {
  position:absolute; top:15%; right:12%; width:30%; height:55%; 
  border: 8px solid #5a4a3a; border-radius: 6px; 
  background: radial-gradient(ellipse at 50% 30%, #a8c8e8 0%, #7a9cc6 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-moderate-negative .river-outside {
  position:absolute; top:15%; right:12%; width:30%; height:55%; 
  background: linear-gradient(180deg, #7a9cc6 0%, #4a7a9a 100%);
  border-radius: 6px; opacity: 0.5; 
  animation: mdn-river 12s linear infinite alternate;
}
@keyframes mdn-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes mdn-map { 0% { transform: perspective(400px) rotateX(15deg) translateY(0) } 50% { transform: perspective(400px) rotateX(16deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(15deg) translateY(0) } }
@keyframes mdn-candle-sway { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes mdn-candle-glow { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95) } 100% { opacity:1; transform: translateX(-50%) scale(1.05) } }
@keyframes mdn-soldier { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mdn-river { 0% { opacity:0.45; background-position:0 0 } 100% { opacity:0.6; background-position:0 20% } }

.scn-defence-of-streams-feints-less-important {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #d9cfb0 40%, #c4b898 100%),
    radial-gradient(ellipse at 70% 50%, #f5f0e0 0%, transparent 60%);
}
.scn-defence-of-streams-feints-less-important .room-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #efe4d0 0%, #d8ccb0 100%); 
  animation: fin-wall 25s ease-in-out infinite alternate;
}
.scn-defence-of-streams-feints-less-important .table {
  position:absolute; bottom:8%; left:10%; width:80%; height:12%; 
  background: linear-gradient(180deg, #6b5b3e 0%, #4d3f2a 100%); border-radius: 8px; 
  box-shadow: 0 6px 16px rgba(0,0,0,0.25);
}
.scn-defence-of-streams-feints-less-important .big-map {
  position:absolute; bottom:10%; left:15%; width:70%; height:15%; 
  background: linear-gradient(135deg, #d4c4a4 0%, #c2b092 40%, #d4c4a4 100%); 
  border-radius: 4px; transform: perspective(600px) rotateX(12deg); 
  animation: fin-map-breathe 18s ease-in-out infinite alternate;
}
.scn-defence-of-streams-feints-less-important .soldier-left {
  position:absolute; bottom:20%; left:20%; width:22px; height:55px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #181818 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: fin-soldier-l 6s ease-in-out infinite;
}
.scn-defence-of-streams-feints-less-important .soldier-right {
  position:absolute; bottom:20%; left:65%; width:22px; height:55px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #181818 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: fin-soldier-r 7s ease-in-out infinite;
}
.scn-defence-of-streams-feints-less-important .lantern {
  position:absolute; top:18%; left:50%; width:16px; height:24px; 
  background: linear-gradient(180deg, #d4a76a 0%, #a0764a 100%); 
  border-radius: 30% 30% 10% 10%; 
  transform: translateX(-50%); 
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.6); 
  animation: fin-lantern-sway 5s ease-in-out infinite;
}
.scn-defence-of-streams-feints-less-important .lantern-light {
  position:absolute; top:16%; left:50%; width:40px; height:40px; 
  transform: translateX(-50%); 
  background: radial-gradient(circle, rgba(255,210,80,0.7) 0%, rgba(255,180,60,0.2) 50%, transparent 70%);
  border-radius:50%; 
  animation: fin-lantern-glow 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-feints-less-important .window-f {
  position:absolute; top:12%; left:8%; width:25%; height:60%; 
  background: linear-gradient(180deg, #8cb6d6 0%, #5280a8 100%); 
  border: 6px solid #4a3a2a; border-radius: 6px; 
  box-shadow: inset 0 0 16px rgba(0,0,0,0.2);
}
.scn-defence-of-streams-feints-less-important .river-view {
  position:absolute; top:12%; left:8%; width:25%; height:60%; 
  background: linear-gradient(180deg, #6a9ab8 0%, #3a6a8a 100%); 
  border-radius: 6px; opacity: 0.6; 
  animation: fin-river 14s linear infinite alternate;
}
@keyframes fin-wall { 0% { opacity:0.92 } 50% { opacity:1 } 100% { opacity:0.96 } }
@keyframes fin-map-breathe { 0% { transform: perspective(600px) rotateX(12deg) scale(1) } 50% { transform: perspective(600px) rotateX(13deg) scale(1.01) } 100% { transform: perspective(600px) rotateX(12deg) scale(1) } }
@keyframes fin-soldier-l { 0%,100% { transform: translateX(0) rotation(-2deg) } 30% { transform: translateX(8px) rotation(0) } 70% { transform: translateX(4px) rotation(2deg) } }
@keyframes fin-soldier-r { 0%,100% { transform: translateX(0) rotation(2deg) } 30% { transform: translateX(-5px) rotation(0) } 70% { transform: translateX(-8px) rotation(-2deg) } }
@keyframes fin-lantern-sway { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes fin-lantern-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(0.95) } 100% { opacity:1; transform: translateX(-50%) scale(1.1) } }
@keyframes fin-river { 0% { opacity:0.5; background-position:0 0 } 100% { opacity:0.7; background-position:0 15% } }

.scn-defence-of-streams-suitable-for-large-rivers {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d5c0 50%, #c8b89a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-defence-of-streams-suitable-for-large-rivers .tall-window {
  position:absolute; top:5%; left:15%; width:70%; height:90%; 
  border: 10px solid #4a3a2a; border-radius: 8px; 
  background: linear-gradient(180deg, #a4c4e0 0%, #7a9ac0 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-suitable-for-large-rivers .river-vista {
  position:absolute; top:5%; left:15%; width:70%; height:90%; 
  background: linear-gradient(180deg, #7a9ac0 0%, #3a6a8a 100%);
  border-radius: 8px; opacity: 0.5; 
  animation: slr-river 16s linear infinite alternate;
}
.scn-defence-of-streams-suitable-for-large-rivers .telescope {
  position:absolute; bottom:20%; left:35%; width:12px; height:70px; 
  background: linear-gradient(180deg, #8b7340 0%, #6b5930 100%); 
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; 
  transform-origin: bottom center; 
  animation: slr-telescope 12s ease-in-out infinite;
}
.scn-defence-of-streams-suitable-for-large-rivers .chair {
  position:absolute; bottom:10%; left:30%; width:40px; height:30px; 
  background: linear-gradient(180deg, #6b5b3e 0%, #4d3f2a 100%); 
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-defence-of-streams-suitable-for-large-rivers .observer {
  position:absolute; bottom:12%; left:36%; width:20px; height:50px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: slr-observer 9s ease-in-out infinite;
}
.scn-defence-of-streams-suitable-for-large-rivers .cloud-far {
  position:absolute; top:15%; left:10%; width:70px; height:16px; 
  background: rgba(255,255,255,0.4); border-radius: 50%; 
  filter: blur(8px); 
  animation: slr-cloud-far 35s linear infinite;
}
.scn-defence-of-streams-suitable-for-large-rivers .cloud-near {
  position:absolute; top:12%; left:60%; width:50px; height:12px; 
  background: rgba(255,255,255,0.3); border-radius: 50%; 
  filter: blur(6px); 
  animation: slr-cloud-near 45s linear infinite reverse;
}
@keyframes slr-river { 0% { opacity:0.4; background-position:0 0 } 100% { opacity:0.6; background-position:0 30% } }
@keyframes slr-telescope { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-4px) } }
@keyframes slr-observer { 0% { transform: translateX(0) rotate(0) } 40% { transform: translateX(5px) rotate(1deg) } 70% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes slr-cloud-far { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }
@keyframes slr-cloud-near { 0% { transform: translateX(0) } 100% { transform: translateX(-80vw) } }

.scn-defence-of-streams-second-form-disposition {
  background:
    linear-gradient(180deg, #efe8d8 0%, #d8cfb8 50%, #c0b49e 100%),
    radial-gradient(ellipse at 50% 50%, #f8f2e8 0%, transparent 70%);
}
.scn-defence-of-streams-second-form-disposition .map-surface {
  position:absolute; inset:5%; background: linear-gradient(135deg, #dcd0b8 0%, #c8bca0 50%, #b4a88c 100%); 
  border-radius: 12px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: sfd-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-streams-second-form-disposition .river-path {
  position:absolute; top:20%; left:20%; width:60%; height:40%; 
  background: linear-gradient(90deg, #5a8aaa 0%, #2a5a7a 50%, #5a8aaa 100%); 
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%; 
  opacity: 0.7; 
  animation: sfd-river 20s linear infinite alternate;
}
.scn-defence-of-streams-second-form-disposition .corps-a {
  position:absolute; top:15%; left:25%; width:30px; height:18px; 
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 4px; 
  animation: sfd-corps 15s ease-in-out infinite;
}
.scn-defence-of-streams-second-form-disposition .corps-b {
  position:absolute; top:45%; left:55%; width:40px; height:20px; 
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 4px; 
  animation: sfd-corps 17s ease-in-out infinite 2s;
}
.scn-defence-of-streams-second-form-disposition .corps-c {
  position:absolute; top:70%; left:35%; width:28px; height:16px; 
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); 
  border-radius: 4px; 
  animation: sfd-corps 19s ease-in-out infinite 4s;
}
.scn-defence-of-streams-second-form-disposition .compass {
  position:absolute; bottom:10%; right:10%; width:30px; height:30px; 
  background: radial-gradient(circle, #c0b49e 0%, #a09074 100%); 
  border-radius: 50%; border: 2px solid #5a4a3a; 
  animation: sfd-compass 12s linear infinite;
}
.scn-defence-of-streams-second-form-disposition .token {
  position:absolute; top:35%; left:45%; width:10px; height:10px; 
  background: radial-gradient(circle, #ffd080 0%, #c89850 100%); 
  border-radius: 50%; 
  animation: sfd-token 8s ease-in-out infinite alternate;
}
@keyframes sfd-map { 0% { opacity:0.95; transform: scale(1) } 50% { opacity:1; transform: scale(1.005) } 100% { opacity:0.97; transform: scale(1) } }
@keyframes sfd-river { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(-8px) } }
@keyframes sfd-corps { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes sfd-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes sfd-token { 0% { opacity:0.6; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.2) } }

/* Scene 1: moral-surprise-flank-rear */
.scn-moral-surprise-flank-rear {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2c4a 40%, #3a2a3e 100%), radial-gradient(ellipse at 30% 60%, #4a3a4e 0%, transparent 70%);
}
.scn-moral-surprise-flank-rear .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ms-wall 14s ease-in-out infinite alternate;
}
.scn-moral-surprise-flank-rear .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2e2a2a 0%, #1a1818 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-moral-surprise-flank-rear .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ms-table 10s ease-in-out infinite alternate;
}
.scn-moral-surprise-flank-rear .figure-front {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-fig-front 6s ease-in-out infinite;
}
.scn-moral-surprise-flank-rear .figure-flank {
  position: absolute; bottom: 28%; left: 54%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1e1e32 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-fig-flank 8s ease-in-out infinite;
}
.scn-moral-surprise-flank-rear .candle {
  position: absolute; bottom: 22%; left: 45%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #d4a060 0%, #a07040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,160,80,.5);
  animation: ms-candle 3s ease-in-out infinite alternate;
}
.scn-moral-surprise-flank-rear .shadow {
  position: absolute; bottom: 26%; left: 56%; width: 14px; height: 30px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ms-shadow 8s ease-in-out infinite alternate;
}
@keyframes ms-wall {
  0% { opacity: .9; }
  50% { opacity: 1; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
  100% { opacity: .8; }
}
@keyframes ms-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms-fig-front {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(2px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ms-fig-flank {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(.85); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes ms-candle {
  0% { opacity: .7; box-shadow: 0 0 16px 4px rgba(200,160,80,.4); }
  50% { opacity: 1; box-shadow: 0 0 24px 8px rgba(200,160,80,.6); }
  100% { opacity: .8; box-shadow: 0 0 18px 5px rgba(200,160,80,.45); }
}
@keyframes ms-shadow {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(6px) scaleY(1.2); }
  100% { transform: translateX(0) scaleY(1); }
}

/* Scene 2: item-longer-lever-reinforcement */
.scn-item-longer-lever-reinforcement {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 60% 40%, #6a4a2a 0%, transparent 70%);
}
.scn-item-longer-lever-reinforcement .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,.5);
}
.scn-item-longer-lever-reinforcement .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a120a 100%);
}
.scn-item-longer-lever-reinforcement .fireplace {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 30px rgba(200,120,40,.6), 0 0 40px 10px rgba(200,100,40,.4);
  animation: itl-fire 4s ease-in-out infinite alternate;
}
.scn-item-longer-lever-reinforcement .lever {
  position: absolute; bottom: 30%; left: 35%; width: 50%; height: 6px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 3px;
  transform-origin: left center;
  animation: itl-lever 6s ease-in-out infinite alternate;
}
.scn-item-longer-lever-reinforcement .weight {
  position: absolute; bottom: 30%; right: 22%; width: 20px; height: 20px;
  background: #4a3a2a;
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: itl-weight 6s ease-in-out infinite alternate;
}
.scn-item-longer-lever-reinforcement .figure-lever {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: itl-fig 5s ease-in-out infinite;
}
.scn-item-longer-lever-reinforcement .glow {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,.2) 0%, transparent 70%);
  animation: itl-glow 4s ease-in-out infinite alternate;
}
.scn-item-longer-lever-reinforcement .ember {
  position: absolute; bottom: 40%; left: 15%; width: 4px; height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,160,64,.7);
  animation: itl-ember 3s ease-in-out infinite;
}
@keyframes itl-fire {
  0% { box-shadow: inset 0 -8px 20px rgba(200,120,40,.5), 0 0 30px 8px rgba(200,100,40,.3); }
  50% { box-shadow: inset 0 -12px 30px rgba(200,120,40,.7), 0 0 50px 15px rgba(200,100,40,.5); }
  100% { box-shadow: inset 0 -10px 25px rgba(200,120,40,.6), 0 0 40px 10px rgba(200,100,40,.4); }
}
@keyframes itl-lever {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes itl-weight {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
@keyframes itl-fig {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(6px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(12px) translateY(0) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes itl-glow {
  0% { opacity: .6; }
  100% { opacity: .9; }
}
@keyframes itl-ember {
  0% { transform: translate(0,0) scale(1); opacity: .8; }
  50% { transform: translate(4px,-6px) scale(1.5); opacity: 1; }
  100% { transform: translate(0,0) scale(1); opacity: .7; }
}

/* Scene 3: doubtful-cases-consideration */
.scn-doubtful-cases-consideration {
  background: linear-gradient(180deg, #12121a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 60%);
}
.scn-doubtful-cases-consideration .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
  animation: dc-wall 20s ease-in-out infinite alternate;
}
.scn-doubtful-cases-consideration .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
}
.scn-doubtful-cases-consideration .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.7);
}
.scn-doubtful-cases-consideration .inquirer {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-inq 7s ease-in-out infinite;
}
.scn-doubtful-cases-consideration .pendulum {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  transform-origin: top center;
  border-radius: 2px;
  animation: dc-pend 2s ease-in-out infinite alternate;
}
.scn-doubtful-cases-consideration .hourglass {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, rgba(200,180,120,.2) 0%, rgba(200,180,120,.6) 50%, rgba(200,180,120,.2) 100%);
  border-radius: 30% 30% 30% 30% / 20% 20% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(200,180,120,.3);
  animation: dc-hour 12s linear infinite;
}
.scn-doubtful-cases-consideration .candle-flicker {
  position: absolute; bottom: 14%; left: 25%; width: 3px; height: 14px;
  background: linear-gradient(180deg, #e0b060 0%, #a07030 100%);
  border-radius: 1px;
  box-shadow: 0 0 16px 4px rgba(200,160,80,.4);
  animation: dc-candle 3s ease-in-out infinite alternate;
}
.scn-doubtful-cases-consideration .doubt-shade {
  position: absolute; bottom: 24%; left: 48%; width: 30px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: dc-shade 7s ease-in-out infinite alternate;
}
@keyframes dc-wall {
  0% { opacity: .8; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); }
  50% { opacity: 1; box-shadow: inset 0 12px 30px rgba(0,0,0,.9); }
  100% { opacity: .85; }
}
@keyframes dc-inq {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(4deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-4px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dc-pend {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(30deg); }
}
@keyframes dc-hour {
  0% { transform: rotate(0deg); opacity: .6; }
  50% { transform: rotate(180deg); opacity: .9; }
  100% { transform: rotate(360deg); opacity: .6; }
}
@keyframes dc-candle {
  0% { opacity: .6; box-shadow: 0 0 12px 2px rgba(200,160,80,.3); }
  50% { opacity: 1; box-shadow: 0 0 24px 6px rgba(200,160,80,.6); }
  100% { opacity: .7; box-shadow: 0 0 16px 3px rgba(200,160,80,.35); }
}
@keyframes dc-shade {
  0% { transform: scaleX(1); opacity: .3; }
  100% { transform: scaleX(1.2); opacity: .5; }
}

/* Scene 4: kunersdorf-wiped-out */
.scn-kunersdorf-wiped-out {
  background: linear-gradient(180deg, #8ab4c8 0%, #d4e4e8 40%, #e8d8b8 100%), radial-gradient(ellipse at 60% 30%, #f0e8d0 0%, transparent 70%);
}
.scn-kunersdorf-wiped-out .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8ab4c8 0%, #b8d4e0 50%, #e0e8d0 100%);
  animation: kw-sky 30s ease-in-out infinite alternate;
}
.scn-kunersdorf-wiped-out .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-kunersdorf-wiped-out .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.2);
  animation: kw-hills 18s ease-in-out infinite alternate;
}
.scn-kunersdorf-wiped-out .cannon {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 14px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: kw-cannon 8s ease-in-out infinite alternate;
}
.scn-kunersdorf-wiped-out .flag {
  position: absolute; bottom: 50%; left: 45%; width: 2px; height: 24px;
  background: #4a3a2a;
  transform-origin: bottom center;
  animation: kw-flag 12s ease-in-out infinite;
}
.scn-kunersdorf-wiped-out .flag::before {
  content: '';
  position: absolute; top: 2px; left: 2px; width: 12px; height: 8px;
  background: linear-gradient(180deg, #a0461a 0%, #702e12 100%);
  border-radius: 0 40% 10% 0;
  animation: kw-flag-cloth 12s ease-in-out infinite;
}
.scn-kunersdorf-wiped-out .sunlight {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.3) 0%, transparent 70%);
  animation: kw-sun 20s ease-in-out infinite alternate;
}
.scn-kunersdorf-wiped-out .dust {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 20px;
  background: rgba(200,180,140,.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: kw-dust 15s linear infinite;
}
.scn-kunersdorf-wiped-out .cloud {
  position: absolute; top: 8%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: kw-cloud 45s linear infinite;
}
@keyframes kw-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes kw-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kw-cannon {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes kw-flag {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes kw-flag-cloth {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
  100% { transform: scaleX(1); }
}
@keyframes kw-sun {
  0% { opacity: .7; }
  100% { opacity: 1; }
}
@keyframes kw-dust {
  0% { transform: translateX(0) scale(1); opacity: .3; }
  50% { transform: translateX(30px) scale(1.2); opacity: .5; }
  100% { transform: translateX(0) scale(1); opacity: .3; }
}
@keyframes kw-cloud {
  0% { transform: translateX(-40px) scale(1); }
  50% { transform: translateX(calc(100vw + 40px)) scale(1.1); }
  100% { transform: translateX(-40px) scale(1); }
}

.scn-decisive-skilful-march-substitution {
  background: linear-gradient(180deg, #2a1e14 0%, #1f150e 50%, #140f0a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3020 0%, transparent 70%);
}
.scn-decisive-skilful-march-substitution .desk {
  position: absolute;
  bottom: 10%;
  left: 5%;
  width: 90%;
  height: 30%;
  background: linear-gradient(180deg, #5c3f2b 0%, #3d2819 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
  animation: dsm-desksway 8s ease-in-out infinite alternate;
}
.scn-decisive-skilful-march-substitution .candle {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 14px;
  height: 50px;
  background: linear-gradient(180deg, #e8d5b8 0%, #c9aa7a 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: dsm-candle 4s ease-in-out infinite alternate;
}
.scn-decisive-skilful-march-substitution .flame {
  position: absolute;
  bottom: calc(30% + 50px);
  left: calc(35% + 7px);
  width: 8px;
  height: 20px;
  background: radial-gradient(ellipse 50% 80%, #ffc080 0%, #ff8030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: dsm-flame 1.5s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 15px rgba(255,128,48,0.4);
}
.scn-decisive-skilful-march-substitution .map {
  position: absolute;
  bottom: 12%;
  left: 20%;
  width: 60%;
  height: 18%;
  background: linear-gradient(135deg, #c9b392 0%, #a68b6e 50%, #7d6648 100%);
  border-radius: 4px;
  transform: rotate(-2deg) scale(0.98);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: dsm-map 12s ease-in-out infinite;
}
.scn-decisive-skilful-march-substitution .inkwell {
  position: absolute;
  bottom: 18%;
  right: 22%;
  width: 20px;
  height: 22px;
  background: radial-gradient(circle at 30% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-decisive-skilful-march-substitution .quill {
  position: absolute;
  bottom: 24%;
  right: 28%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #d4c4a8 0%, #a08c70 50%, #6a5a44 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: dsm-quill 6s ease-in-out infinite alternate;
}
.scn-decisive-skilful-march-substitution .shadow {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 12%;
  background: rgba(0,0,0,0.3);
  filter: blur(8px);
  animation: dsm-shadow 8s ease-in-out infinite alternate;
}
@keyframes dsm-desksway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes dsm-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes dsm-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); opacity: 0.7; }
}
@keyframes dsm-map {
  0% { transform: rotate(-2deg) scale(0.98); filter: brightness(0.9); }
  50% { transform: rotate(-1.5deg) scale(0.99); filter: brightness(1); }
  100% { transform: rotate(-2.5deg) scale(0.97); filter: brightness(0.85); }
}
@keyframes dsm-quill {
  0% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(14deg) translateY(1px); }
}
@keyframes dsm-shadow {
  0% { opacity: 0.3; filter: blur(8px); }
  50% { opacity: 0.5; filter: blur(12px); }
  100% { opacity: 0.2; filter: blur(6px); }
}

.scn-error-attributing-power-to-strategic-manoeuvres {
  background: linear-gradient(180deg, #1f1a2a 0%, #161221 50%, #0d0a17 100%),
              radial-gradient(ellipse at 30% 50%, #2a2038 0%, transparent 80%);
}
.scn-error-attributing-power-to-strategic-manoeuvres .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #1a1525 0%, #231d34 50%, #1a1525 100%);
  animation: eas-wall 20s ease-in-out infinite;
}
.scn-error-attributing-power-to-strategic-manoeuvres .window {
  position: absolute;
  top: 18%;
  left: 55%;
  width: 100px;
  height: 120px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1c1c2a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: eas-window 15s ease-in-out infinite;
}
.scn-error-attributing-power-to-strategic-manoeuvres .sill {
  position: absolute;
  top: calc(18% + 120px);
  left: 53%;
  width: 110px;
  height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-error-attributing-power-to-strategic-manoeuvres .figure {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scale(0.95);
  animation: eas-figure 10s ease-in-out infinite alternate;
}
.scn-error-attributing-power-to-strategic-manoeuvres .arm {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 40px;
  height: 8px;
  background: #1a1420;
  border-radius: 50%;
  transform-origin: right center;
  animation: eas-arm 5s ease-in-out infinite alternate;
}
.scn-error-attributing-power-to-strategic-manoeuvres .map-hanging {
  position: absolute;
  top: 15%;
  left: 12%;
  width: 80px;
  height: 100px;
  background: linear-gradient(135deg, #b8a080 0%, #9a8266 50%, #7a6248 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: eas-map 22s ease-in-out infinite;
}
.scn-error-attributing-power-to-strategic-manoeuvres .lamp {
  position: absolute;
  top: 10%;
  right: 18%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(192,160,128,0.3);
  animation: eas-lamp 4s ease-in-out infinite alternate;
}
@keyframes eas-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes eas-window {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes eas-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(2px) rotate(-0.2deg); }
}
@keyframes eas-arm {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(-8deg) translateX(0); }
}
@keyframes eas-map {
  0% { transform: rotate(-3deg) scale(1); filter: brightness(0.9); }
  50% { transform: rotate(0deg) scale(1.02); filter: brightness(1); }
  100% { transform: rotate(-4deg) scale(0.98); filter: brightness(0.85); }
}
@keyframes eas-lamp {
  0% { box-shadow: 0 0 15px 5px rgba(192,160,128,0.2); }
  50% { box-shadow: 0 0 30px 12px rgba(192,160,128,0.5); }
  100% { box-shadow: 0 0 20px 8px rgba(192,160,128,0.3); }
}

.scn-march-relations-not-combat {
  background: linear-gradient(180deg, #1c1814 0%, #14110e 50%, #0c0a08 100%),
              radial-gradient(ellipse at 70% 90%, #3a2a1a 0%, transparent 70%);
}
.scn-march-relations-not-combat .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20,17,14,0.5) 0%, rgba(30,25,20,0.3) 50%, rgba(20,17,14,0.5) 100%);
  animation: mrc-bg 30s ease-in-out infinite;
}
.scn-march-relations-not-combat .bed {
  position: absolute;
  bottom: 12%;
  left: 10%;
  width: 80%;
  height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-march-relations-not-combat .blanket {
  position: absolute;
  bottom: 15%;
  left: 12%;
  width: 76%;
  height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2818 50%, #2a1a0e 100%);
  border-radius: 6px;
  transform: scale(0.96);
  animation: mrc-blanket 8s ease-in-out infinite alternate;
}
.scn-march-relations-not-combat .pillow {
  position: absolute;
  bottom: 30%;
  left: 16%;
  width: 40px;
  height: 20px;
  background: linear-gradient(180deg, #6a5240 0%, #4a3628 100%);
  border-radius: 40%;
  transform: rotate(-5deg);
  animation: mrc-pillow 6s ease-in-out infinite alternate;
}
.scn-march-relations-not-combat .lantern {
  position: absolute;
  top: 22%;
  right: 18%;
  width: 16px;
  height: 38px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 24px 8px rgba(192,160,128,0.4);
  animation: mrc-lantern 5s ease-in-out infinite alternate;
}
.scn-march-relations-not-combat .boots {
  position: absolute;
  bottom: 8%;
  left: 25%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: scaleX(1.2);
  animation: mrc-boots 10s ease-in-out infinite alternate;
}
@keyframes mrc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mrc-blanket {
  0% { transform: scale(0.96) translateY(0); }
  50% { transform: scale(0.98) translateY(-2px); }
  100% { transform: scale(0.95) translateY(1px); }
}
@keyframes mrc-pillow {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(-6deg) translateX(-2px); }
}
@keyframes mrc-lantern {
  0% { transform: rotate(-2deg); box-shadow: 0 0 20px 6px rgba(192,160,128,0.3); }
  50% { transform: rotate(2deg); box-shadow: 0 0 30px 12px rgba(192,160,128,0.6); }
  100% { transform: rotate(-1deg); box-shadow: 0 0 24px 8px rgba(192,160,128,0.4); }
}
@keyframes mrc-boots {
  0% { transform: scaleX(1.2) translateX(0); opacity: 0.8; }
  50% { transform: scaleX(1.15) translateX(-3px); opacity: 1; }
  100% { transform: scaleX(1.25) translateX(2px); opacity: 0.9; }
}

.scn-camps-battle-order-rest {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121f 50%, #080810 100%),
              radial-gradient(ellipse at 30% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-camps-battle-order-rest .tent-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a241e 0%, #1e1814 50%, #14100c 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: cbr-wall 12s ease-in-out infinite alternate;
}
.scn-camps-battle-order-rest .tent-pole {
  position: absolute;
  top: 0;
  left: 50%;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  transform: translateX(-50%);
}
.scn-camps-battle-order-rest .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20%;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-camps-battle-order-rest .bedroll {
  position: absolute;
  bottom: 8%;
  left: 20%;
  width: 60%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2818 100%);
  border-radius: 20px;
  transform: rotate(-2deg);
  animation: cbr-bedroll 10s ease-in-out infinite alternate;
}
.scn-camps-battle-order-rest .candle-stub {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b09878 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 6px rgba(192,160,128,0.3);
  animation: cbr-candle 3s ease-in-out infinite alternate;
}
.scn-camps-battle-order-rest .helmet {
  position: absolute;
  bottom: 14%;
  right: 18%;
  width: 32px;
  height: 24px;
  background: linear-gradient(180deg, #6a5240 0%, #4a3628 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cbr-helmet 8s ease-in-out infinite alternate;
}
.scn-camps-battle-order-rest .sword {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 4px;
  height: 70px;
  background: linear-gradient(180deg, #a09080 0%, #7a6a5a 50%, #504030 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: cbr-sword 7s ease-in-out infinite alternate;
}
@keyframes cbr-wall {
  0% { clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%); brightness: 0.8; }
  50% { clip-path: polygon(8% 0%, 92% 0%, 82% 100%, 18% 100%); brightness: 1; }
  100% { clip-path: polygon(12% 0%, 88% 0%, 78% 100%, 22% 100%); brightness: 0.9; }
}
@keyframes cbr-bedroll {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes cbr-candle {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 10px 4px rgba(192,160,128,0.2); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 20px 8px rgba(192,160,128,0.5); }
  100% { transform: scaleY(0.95); opacity: 0.7; box-shadow: 0 0 12px 5px rgba(192,160,128,0.25); }
}
@keyframes cbr-helmet {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(-2px); }
  100% { transform: rotate(3deg) translateX(1px); }
}
@keyframes cbr-sword {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-12deg) scaleY(1.02); }
  100% { transform: rotate(-17deg) scaleY(0.98); }
}

/* friction-chance-weather */
.scn-friction-chance-weather {
  background: 
    linear-gradient(180deg, #1e1512 0%, #2a1e1a 30%, #3a2a1a 70%, #1e1512 100%),
    radial-gradient(ellipse at 40% 50%, #2a1e1a 0%, transparent 80%);
}
.scn-friction-chance-weather .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-friction-chance-weather .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1e1512 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-friction-chance-weather .desk {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fcw-desk 8s ease-in-out infinite alternate;
}
.scn-friction-chance-weather .candle {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fcw-candle 5s ease-in-out infinite alternate;
}
.scn-friction-chance-weather .flame {
  position: absolute; bottom: 38%; left: 31%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 20%, #ffd680 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #e8a040, 0 0 40px 12px rgba(232,160,64,0.3);
  animation: fcw-flame 3s ease-in-out infinite alternate;
}
.scn-friction-chance-weather .map {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(135deg, #c8b088 0%, #a89068 50%, #c8b088 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fcw-map 12s ease-in-out infinite alternate;
}
.scn-friction-chance-weather .chair {
  position: absolute; bottom: 10%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 30% 30%;
  animation: fcw-chair 6s ease-in-out infinite alternate;
}
.scn-friction-chance-weather .figure {
  position: absolute; bottom: 12%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e1512 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcw-figure 4s ease-in-out infinite alternate;
}
@keyframes fcw-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes fcw-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.85; }
}
@keyframes fcw-flame {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  30% { transform: translate(1px,-2px) scale(1.1); opacity: 1; }
  60% { transform: translate(-1px,-1px) scale(0.95); opacity: 0.9; }
  100% { transform: translate(0,0) scale(1); opacity: 0.85; }
}
@keyframes fcw-map {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-1deg) scale(0.99); }
}
@keyframes fcw-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes fcw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* swimming-master-analogy */
.scn-swimming-master-analogy {
  background: 
    linear-gradient(180deg, #1e1815 0%, #2a201c 40%, #3a2e28 80%, #1e1815 100%),
    radial-gradient(ellipse at 60% 40%, #2a201c 0%, transparent 70%);
}
.scn-swimming-master-analogy .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2e28 0%, #2a201c 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-swimming-master-analogy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a201c 0%, #1e1815 100%);
  border-radius: 30% 70% 0 0 / 15% 25% 0 0;
}
.scn-swimming-master-analogy .bookshelf {
  position: absolute; top: 15%; left: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sma-shelf 10s ease-in-out infinite alternate;
}
.scn-swimming-master-analogy .desk {
  position: absolute; bottom: 15%; left: 30%; right: 10%; height: 15%;
  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);
  animation: sma-desk 7s ease-in-out infinite alternate;
}
.scn-swimming-master-analogy .lamp {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #d4b890 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20%;
  animation: sma-lamp 5s ease-in-out infinite alternate;
}
.scn-swimming-master-analogy .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sma-glow 4s ease-in-out infinite alternate;
}
.scn-swimming-master-analogy .chair {
  position: absolute; bottom: 5%; left: 40%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  animation: sma-chair 8s ease-in-out infinite alternate;
}
.scn-swimming-master-analogy .figure {
  position: absolute; bottom: 8%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1e1815 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sma-figure 6s ease-in-out infinite alternate;
}
@keyframes sma-shelf {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(1px); opacity: 0.95; }
}
@keyframes sma-desk {
  0% { transform: translateY(0) skewX(0deg); }
  50% { transform: translateY(-1px) skewX(0.5deg); }
  100% { transform: translateY(0) skewX(-0.5deg); }
}
@keyframes sma-lamp {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes sma-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes sma-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes sma-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* war-unexplored-sea */
.scn-war-unexplored-sea {
  background: 
    linear-gradient(180deg, #1a1815 0%, #2a221c 40%, #3a2e28 80%, #1a1815 100%),
    radial-gradient(ellipse at 30% 60%, #2a221c 0%, transparent 80%);
}
.scn-war-unexplored-sea .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2e28 0%, #2a221c 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-war-unexplored-sea .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1815 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
}
.scn-war-unexplored-sea .map-table {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: wus-table 10s ease-in-out infinite alternate;
}
.scn-war-unexplored-sea .map {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(135deg, #b8a080 0%, #a08868 50%, #b8a080 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: wus-map 15s ease-in-out infinite alternate;
}
.scn-war-unexplored-sea .lantern {
  position: absolute; bottom: 35%; left: 40%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #d4b890 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20%;
  animation: wus-lantern 6s ease-in-out infinite alternate;
}
.scn-war-unexplored-sea .lantern-swing {
  position: absolute; bottom: 38%; left: 40%; width: 2px; height: 20px;
  background: #2a1e1a;
  transform-origin: top center;
  animation: wus-swing 5s ease-in-out infinite alternate;
}
.scn-war-unexplored-sea .compass {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e8d4b0 0%, #c8a870 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: wus-compass 20s linear infinite;
}
.scn-war-unexplored-sea .figure {
  position: absolute; bottom: 8%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1815 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wus-figure 7s ease-in-out infinite alternate;
}
@keyframes wus-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes wus-map {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes wus-lantern {
  0% { transform: rotate(-4deg); opacity: 0.8; }
  50% { transform: rotate(4deg); opacity: 1; }
  100% { transform: rotate(-2deg); opacity: 0.9; }
}
@keyframes wus-swing {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes wus-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes wus-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* tact-of-judgment-habit */
.scn-tact-of-judgment-habit {
  background: 
    linear-gradient(180deg, #1e1a15 0%, #2a221c 35%, #3a2e28 70%, #1e1a15 100%),
    radial-gradient(ellipse at 70% 50%, #2a221c 0%, transparent 75%);
}
.scn-tact-of-judgment-habit .wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #3a2e28 0%, #2a221c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-tact-of-judgment-habit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a221c 0%, #1e1a15 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-tact-of-judgment-habit .desk {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: tjh-desk 9s ease-in-out infinite alternate;
}
.scn-tact-of-judgment-habit .chessboard {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(45deg, #6a5a4a 25%, #4a3a2a 25%, #4a3a2a 50%, #6a5a4a 50%, #6a5a4a 75%, #4a3a2a 75%);
  background-size: 10% 10%;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tjh-board 14s ease-in-out infinite alternate;
}
.scn-tact-of-judgment-habit .piece-white {
  position: absolute; bottom: 23%; left: 40%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  animation: tjh-piece-w 12s ease-in-out infinite alternate;
}
.scn-tact-of-judgment-habit .piece-black {
  position: absolute; bottom: 23%; left: 48%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1510 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  animation: tjh-piece-b 12s ease-in-out infinite alternate-reverse;
}
.scn-tact-of-judgment-habit .lamp {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #d4b890 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20%;
  animation: tjh-lamp 5s ease-in-out infinite alternate;
}
.scn-tact-of-judgment-habit .lamp-glow {
  position: absolute; bottom: 32%; left: 56%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,160,80,0.35) 0%, transparent 70%);
  border-radius: 50%;
  animation: tjh-glow 4s ease-in-out infinite alternate;
}
.scn-tact-of-judgment-habit .figure {
  position: absolute; bottom: 5%; left: 20%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #1e1a15 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tjh-figure 6s ease-in-out infinite alternate;
}
@keyframes tjh-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes tjh-board {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-1deg) scale(0.99); }
}
@keyframes tjh-piece-w {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tjh-piece-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tjh-lamp {
  0% { transform: rotate(-3deg); opacity: 0.8; }
  50% { transform: rotate(3deg); opacity: 1; }
  100% { transform: rotate(-1deg); opacity: 0.9; }
}
@keyframes tjh-glow {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes tjh-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: theory-separate-activities */
.scn-theory-separate-activities {
  background: 
    linear-gradient(180deg, #2c211a 0%, #1f1813 50%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 40%, #4a3528 0%, transparent 70%);
}
.scn-theory-separate-activities .desktop { 
  position: absolute; bottom: 8%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2f241c 100%);
  border-radius: 4px;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: tsa-desk-pulse 8s ease-in-out infinite alternate;
}
.scn-theory-separate-activities .stack-left {
  position: absolute; bottom: 28%; left: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a488 30%, #9c8a70 100%);
  border-radius: 2px;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: tsa-stack 12s ease-in-out infinite;
}
.scn-theory-separate-activities .stack-right {
  position: absolute; bottom: 30%; right: 15%; width: 55px; height: 70px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 30%, #8a7a64 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: tsa-stack 12s ease-in-out infinite -4s;
}
.scn-theory-separate-activities .candle-body {
  position: absolute; bottom: 18%; left: 48%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-theory-separate-activities .candle-flame {
  position: absolute; bottom: 44%; left: 50%; width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd060 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: tsa-flame 2s ease-in-out infinite alternate;
}
.scn-theory-separate-activities .glow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #ffc080 0%, #4a3528 60%, transparent 100%);
  opacity: 0.25;
  mix-blend-mode: screen;
  pointer-events: none;
  animation: tsa-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-theory-separate-activities .dust {
  position: absolute; bottom: 20%; left: 20%; width: 8px; height: 8px;
  background: rgba(220,200,170,0.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: tsa-dust 15s linear infinite;
}
@keyframes tsa-desk-pulse { 0% { box-shadow: 0 -8px 20px rgba(0,0,0,0.6); } 50% { box-shadow: 0 -10px 30px rgba(0,0,0,0.5); } 100% { box-shadow: 0 -6px 15px rgba(0,0,0,0.7); } }
@keyframes tsa-stack { 0%,100% { transform: rotate(-3deg) translateY(0); } 33% { transform: rotate(-2deg) translateY(-2px); } 66% { transform: rotate(-4deg) translateY(1px); } }
@keyframes tsa-flame { 0% { transform: translateX(-50%) scale(1) translateY(0); } 25% { transform: translateX(-48%) scale(1.1) translateY(-2px); } 50% { transform: translateX(-52%) scale(0.95) translateY(1px); } 75% { transform: translateX(-50%) scale(1.05) translateY(-1px); } 100% { transform: translateX(-50%) scale(1) translateY(0); } }
@keyframes tsa-glow-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.35; } 100% { opacity: 0.25; } }
@keyframes tsa-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.7; } 40% { transform: translate(30px, -20px) scale(1.5); opacity: 0.5; } 100% { transform: translate(80px, -60px) scale(2); opacity: 0; } }

/* Scene: conduct-of-war-formation-conduct-fighting */
.scn-conduct-of-war-formation-conduct-fighting {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #191210 50%, #0c0806 100%),
    radial-gradient(ellipse at 60% 30%, #4a3228 0%, transparent 70%);
}
.scn-conduct-of-war-formation-conduct-fighting .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2c24 0%, #1f1813 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
  animation: cwf-table 10s ease-in-out infinite alternate;
}
.scn-conduct-of-war-formation-conduct-fighting .map {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #b8a88c 0%, #9a8a70 50%, #7a6a54 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(10deg);
  animation: cwf-map 20s ease-in-out infinite alternate;
}
.scn-conduct-of-war-formation-conduct-fighting .soldier-1 {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 20px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwf-soldier 6s ease-in-out infinite;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.scn-conduct-of-war-formation-conduct-fighting .soldier-2 {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 20px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwf-soldier 6s ease-in-out infinite -2s;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.scn-conduct-of-war-formation-conduct-fighting .soldier-3 {
  position: absolute; bottom: 30%; left: 49%; width: 8px; height: 20px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwf-soldier 6s ease-in-out infinite -4s;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
}
.scn-conduct-of-war-formation-conduct-fighting .candle-body {
  position: absolute; bottom: 18%; left: 70%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-conduct-of-war-formation-conduct-fighting .candle-flame {
  position: absolute; bottom: 42%; left: 70%; width: 8px; height: 16px;
  background: radial-gradient(circle, #ffd060 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: cwf-flame 2.5s ease-in-out infinite alternate;
}
.scn-conduct-of-war-formation-conduct-fighting .ambient-glow {
  position: absolute; bottom: 10%; left: 50%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 70% 30%, #ffc080 0%, transparent 70%);
  opacity: 0.15;
  mix-blend-mode: screen;
  pointer-events: none;
  animation: cwf-ambient 6s ease-in-out infinite alternate;
}
@keyframes cwf-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cwf-map { 0% { transform: perspective(600px) rotateX(10deg) translateY(0); } 50% { transform: perspective(600px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(600px) rotateX(10deg) translateY(0); } }
@keyframes cwf-soldier { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-5px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cwf-flame { 0% { transform: translateX(-50%) scale(1) translateY(0); } 25% { transform: translateX(-48%) scale(1.15) translateY(-3px); } 50% { transform: translateX(-52%) scale(0.9) translateY(2px); } 75% { transform: translateX(-50%) scale(1.05) translateY(-1px); } 100% { transform: translateX(-50%) scale(1) translateY(0); } }
@keyframes cwf-ambient { 0% { opacity: 0.1; } 50% { opacity: 0.25; } 100% { opacity: 0.15; } }

/* Scene: tactics-strategy-division */
.scn-tactics-strategy-division {
  background: 
    linear-gradient(180deg, #2a221a 0%, #1b1510 50%, #0d0a07 100%),
    radial-gradient(ellipse at 50% 20%, #4a3528 0%, transparent 70%);
}
.scn-tactics-strategy-division .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 75%;
  background: linear-gradient(180deg, #3a2c22 0%, #241a14 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.5);
  animation: tsd-shelf 14s ease-in-out infinite alternate;
}
.scn-tactics-strategy-division .book-left {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-8deg);
  animation: tsd-book-left 12s ease-in-out infinite;
}
.scn-tactics-strategy-division .book-right {
  position: absolute; top: 22%; right: 12%; width: 28%; height: 55%;
  background: linear-gradient(180deg, #7a5a42 0%, #4a3222 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform: rotate(6deg);
  animation: tsd-book-right 12s ease-in-out infinite -4s;
}
.scn-tactics-strategy-division .divider-1 {
  position: absolute; top: 15%; left: 48%; width: 4px; height: 65%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: tsd-divider 10s ease-in-out infinite alternate;
}
.scn-tactics-strategy-division .divider-2 {
  position: absolute; top: 15%; right: 44%; width: 4px; height: 65%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: tsd-divider 10s ease-in-out infinite alternate -3s;
}
.scn-tactics-strategy-division .lamp-base {
  position: absolute; bottom: 8%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b8a088 0%, #8a7058 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-tactics-strategy-division .lamp-glow {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  opacity: 0.3;
  animation: tsd-lamp 3s ease-in-out infinite alternate;
}
.scn-tactics-strategy-division .shadow-line {
  position: absolute; top: 50%; left: 20%; width: 60%; height: 2px;
  background: rgba(0,0,0,0.4);
  filter: blur(2px);
  animation: tsd-shadow 20s linear infinite;
}
@keyframes tsd-shelf { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 6px 18px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.5); } }
@keyframes tsd-book-left { 0%,100% { transform: rotate(-8deg) translateY(0); } 33% { transform: rotate(-6deg) translateY(-3px); } 66% { transform: rotate(-10deg) translateY(2px); } }
@keyframes tsd-book-right { 0%,100% { transform: rotate(6deg) translateY(0); } 33% { transform: rotate(4deg) translateY(-2px); } 66% { transform: rotate(8deg) translateY(1px); } }
@keyframes tsd-divider { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes tsd-lamp { 0% { opacity: 0.25; transform: translateX(-50%) scale(1); } 50% { opacity: 0.4; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.3; transform: translateX(-50%) scale(1); } }
@keyframes tsd-shadow { 0% { transform: translateX(-10%); opacity: 0.3; } 50% { transform: translateX(10%); opacity: 0.5; } 100% { transform: translateX(-10%); opacity: 0.3; } }

/* Scene: combat-unit-defined */
.scn-combat-unit-defined {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 60%, #4a4a6e 0%, transparent 70%);
}
.scn-combat-unit-defined .bg-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 60%, transparent 100%);
  animation: cud-sky 20s ease-in-out infinite alternate;
}
.scn-combat-unit-defined .hill {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: cud-hill 18s ease-in-out infinite alternate;
}
.scn-combat-unit-defined .soldier {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 28px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  animation: cud-soldier 6s ease-in-out infinite;
}
.scn-combat-unit-defined .flag-pole {
  position: absolute; bottom: 40%; left: 48%; width: 2px; height: 50px;
  background: #3a2a1a;
  border-radius: 1px;
  transform: translateX(-50%);
  animation: cud-pole 4s ease-in-out infinite alternate;
}
.scn-combat-unit-defined .flag {
  position: absolute; bottom: 62%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px 0 0 2px;
  transform-origin: left center;
  animation: cud-flag 5s ease-in-out infinite alternate;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
}
.scn-combat-unit-defined .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 10% 60% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: cud-ground 14s ease-in-out infinite alternate;
}
.scn-combat-unit-defined .distant-light {
  position: absolute; top: 15%; right: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #a0a0b0 0%, transparent 80%);
  border-radius: 50%;
  animation: cud-star 4s ease-in-out infinite alternate;
}
@keyframes cud-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cud-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cud-soldier { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-5px) rotate(-4deg) scale(0.98); } 50% { transform: translateY(-2px) rotate(3deg) scale(1.02); } 75% { transform: translateY(-6px) rotate(-2deg) scale(0.99); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes cud-pole { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes cud-flag { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.1) rotate(5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes cud-ground { 0% { box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 6px 18px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); } }
@keyframes cud-star { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: retreat-into-interior-change-advantages */
.scn-retreat-into-interior-change-advantages {
  background: 
    linear-gradient(180deg, #d4c9b8 0%, #c2b4a0 50%, #b0a28c 100%),
    radial-gradient(ellipse at 50% 30%, #f5f0e8 0%, transparent 70%);
}
.scn-retreat-into-interior-change-advantages .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d9d0bf 0%, #c5b9a5 100%); animation: rtica-bg 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-advantages .window {
  position: absolute; top: 8%; left: 22%; width: 90px; height: 120px; background: linear-gradient(180deg, #f0eadb 0%, #e0d6c0 100%); border-radius: 10% 10% 8% 8%; box-shadow: inset 0 0 30px rgba(255,255,240,0.3); animation: rtica-window 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-advantages .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 130px; background: linear-gradient(180deg, #8b7a66 0%, #6b5b4a 100%); border-radius: 12% 12% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: rtica-table 10s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-advantages .compass {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #d4c9b8 0%, #a1927e 60%, #6b5b4a 100%); border-radius: 50%; box-shadow: 0 0 15px rgba(0,0,0,0.3); animation: rtica-compass 18s linear infinite;
}
.scn-retreat-into-interior-change-advantages .arrow {
  position: absolute; bottom: 35%; left: 50%; width: 0; height: 0; border-left: 12px solid transparent; border-right: 12px solid transparent; border-bottom: 40px solid #503a2a; transform: translateX(-50%) rotate(45deg); transform-origin: bottom center; animation: rtica-arrow 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-advantages .figure {
  position: absolute; bottom: 18%; left: 28%; width: 25px; height: 60px; background: linear-gradient(180deg, #3a2e22 0%, #1c140f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtica-figure 7s ease-in-out infinite;
}
.scn-retreat-into-interior-change-advantages .light-beam {
  position: absolute; top: 8%; left: 22%; width: 90px; height: 130px; background: linear-gradient(135deg, rgba(255,245,230,0.25) 0%, transparent 100%); filter: blur(8px); animation: rtica-beam 5s ease-in-out infinite alternate;
}
@keyframes rtica-bg { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.9 } }
@keyframes rtica-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rtica-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rtica-compass { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(180deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes rtica-arrow { 0% { transform: translateX(-50%) rotate(40deg) } 50% { transform: translateX(-50%) rotate(50deg) } 100% { transform: translateX(-50%) rotate(40deg) } }
@keyframes rtica-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rtica-beam { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

/* Scene: retreat-into-interior-undivided */
.scn-retreat-into-interior-undivided {
  background: 
    linear-gradient(180deg, #ddd4c5 0%, #c9beab 50%, #b8ab95 100%),
    radial-gradient(ellipse at 30% 40%, #f5eedd 0%, transparent 60%);
}
.scn-retreat-into-interior-undivided .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e3dacb 0%, #cec2ae 100%); animation: rtiu-bg 14s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-undivided .window {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 100px; background: linear-gradient(180deg, #efe8d8 0%, #ded4bf 100%); border-radius: 12% 12% 8% 8%; box-shadow: inset 0 0 20px rgba(255,250,240,0.3); animation: rtiu-window 9s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-undivided .table {
  position: absolute; bottom: 12%; left: 12%; right: 12%; height: 140px; background: linear-gradient(180deg, #7a6b59 0%, #5e4f3e 100%); border-radius: 10% 10% 3% 3%; box-shadow: 0 8px 16px rgba(0,0,0,0.15); animation: rtiu-table 11s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-undivided .map {
  position: absolute; bottom: 28%; left: 50%; width: 200px; height: 140px; transform: translateX(-50%); background: linear-gradient(180deg, #b8a48c 0%, #9a8872 100%); border-radius: 6%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: rtiu-map 13s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-undivided .figure {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 70px; background: linear-gradient(180deg, #2c2218 0%, #140f0a 100%); border-radius: 45% 55% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: rtiu-figure 8s ease-in-out infinite;
}
.scn-retreat-into-interior-undivided .lamp {
  position: absolute; bottom: 22%; left: 30%; width: 10px; height: 14px; background: radial-gradient(circle, #f5dca0 0%, #d4b870 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(220,190,120,0.5); animation: rtiu-lamp 5s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-undivided .shadow {
  position: absolute; bottom: 12%; left: 36%; width: 80px; height: 20px; background: rgba(0,0,0,0.12); border-radius: 50%; filter: blur(4px); animation: rtiu-shadow 8s ease-in-out infinite alternate;
}
@keyframes rtiu-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rtiu-window { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.015) } 100% { transform: scaleX(1) } }
@keyframes rtiu-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rtiu-map { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes rtiu-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rtiu-lamp { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes rtiu-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

/* Scene: retreat-into-interior-divergent-danger */
.scn-retreat-into-interior-divergent-danger {
  background: 
    linear-gradient(150deg, #b8a58b 0%, #9a856e 40%, #7a6651 100%),
    radial-gradient(ellipse at 70% 20%, #e8dac8 0%, transparent 65%);
}
.scn-retreat-into-interior-divergent-danger .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c9b9a5 0%, #a8947d 100%); animation: rtidd-bg 10s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .window {
  position: absolute; top: 6%; left: 65%; width: 70px; height: 90px; background: linear-gradient(180deg, #e5dccb 0%, #d0c4b0 100%); border-radius: 14% 14% 6% 6%; box-shadow: inset 0 0 25px rgba(255,245,230,0.2); animation: rtidd-window 7s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .table {
  position: absolute; bottom: 10%; left: 8%; right: 8%; height: 120px; background: linear-gradient(180deg, #6b5a48 0%, #4d3f2e 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 10px 20px rgba(0,0,0,0.35); animation: rtidd-table 9s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .arrow-a {
  position: absolute; bottom: 28%; left: 26%; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 34px solid #4a3322; transform: rotate(15deg); transform-origin: bottom center; animation: rtidd-arrow-a 4s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .arrow-b {
  position: absolute; bottom: 28%; left: 50%; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 34px solid #4a3322; transform: translateX(-50%) rotate(0deg); animation: rtidd-arrow-b 4s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .arrow-c {
  position: absolute; bottom: 28%; left: 74%; width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 34px solid #4a3322; transform: rotate(-15deg); transform-origin: bottom center; animation: rtidd-arrow-c 4s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .candle {
  position: absolute; bottom: 22%; left: 50%; width: 8px; height: 24px; margin-left: -4px; background: linear-gradient(180deg, #f0d08a 0%, #d4a85a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(255,200,100,0.6); animation: rtidd-candle 2s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-danger .figure {
  position: absolute; bottom: 18%; left: 44%; width: 28px; height: 65px; background: linear-gradient(180deg, #1f1710 0%, #0a0705 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: rtidd-figure 5s ease-in-out infinite;
}
@keyframes rtidd-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes rtidd-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes rtidd-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rtidd-arrow-a { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes rtidd-arrow-b { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes rtidd-arrow-c { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-10deg) } }
@keyframes rtidd-candle { 0% { opacity: 0.6; transform: scaleY(0.95) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.7; transform: scaleY(0.98) } }
@keyframes rtidd-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene: retreat-into-interior-divergent-not-favourable */
.scn-retreat-into-interior-divergent-not-favourable {
  background: 
    linear-gradient(170deg, #d6ccbb 0%, #c1b4a0 50%, #ac9d86 100%),
    radial-gradient(ellipse at 40% 50%, #f2eadb 0%, transparent 70%);
}
.scn-retreat-into-interior-divergent-not-favourable .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ddd3c2 0%, #c7baa5 100%); animation: rtidnf-bg 15s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .window {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #e8dfcd 0%, #d5c9b4 100%); border-radius: 10% 10% 6% 6%; box-shadow: inset 0 0 20px rgba(255,250,235,0.3); animation: rtidnf-window 10s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .table {
  position: absolute; bottom: 14%; left: 10%; right: 10%; height: 130px; background: linear-gradient(180deg, #7a6a58 0%, #5e4e3d 100%); border-radius: 12% 12% 2% 2%; box-shadow: 0 6px 14px rgba(0,0,0,0.18); animation: rtidnf-table 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .diagram {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #b09f88 0%, #92806a 100%); border-radius: 8%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: rtidnf-diagram 14s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .line-a {
  position: absolute; bottom: 40%; left: 38%; width: 40px; height: 3px; background: #4a3a2a; transform-origin: right center; border-radius: 2px; animation: rtidnf-line-a 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .line-b {
  position: absolute; bottom: 40%; left: 38%; width: 40px; height: 3px; background: #4a3a2a; transform-origin: right center; border-radius: 2px; animation: rtidnf-line-b 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-divergent-not-favourable .figure {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 58px; background: linear-gradient(180deg, #2c2218 0%, #140f0a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: rtidnf-figure 9s ease-in-out infinite;
}
.scn-retreat-into-interior-divergent-not-favourable .pendulum {
  position: absolute; bottom: 22%; left: 65%; width: 6px; height: 30px; background: #5e4e3d; border-radius: 10% 10% 50% 50%; transform-origin: top center; animation: rtidnf-pendulum 7s ease-in-out infinite alternate;
}
@keyframes rtidnf-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rtidnf-window { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes rtidnf-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rtidnf-diagram { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes rtidnf-line-a { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-30deg) } }
@keyframes rtidnf-line-b { 0% { transform: rotate(30deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(30deg) } }
@keyframes rtidnf-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rtidnf-pendulum { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }

.scn-key-to-country-high-ground-theory { background: linear-gradient(180deg, #e8d8c0 0%, #d4c0a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-key-to-country-high-ground-theory .bg-wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #d8c8b0 0%, #c0ac90 100%); box-shadow: inset 0 -4px 12px rgba(0,0,0,.1); }
.scn-key-to-country-high-ground-theory .desk      { position:absolute; bottom:8%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #a08870 0%, #806050 100%); border-radius: 4px 4px 12px 12px; box-shadow: 0 6px 10px rgba(0,0,0,.25); }
.scn-key-to-country-high-ground-theory .lamp      { position:absolute; bottom:26%; left:20%; width:30px; height:50px; background: radial-gradient(circle at 50% 0%, #ffe080 0%, #c09050 60%, #604030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -10px 30px 8px rgba(255,224,128,.4); animation: kcg-lamp 4s ease-in-out infinite; }
.scn-key-to-country-high-ground-theory .map       { position:absolute; bottom:20%; left:40%; width:120px; height:90px; background: linear-gradient(135deg, #f0e4c8 0%, #dcc8a0 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-3deg); animation: kcg-map 12s ease-in-out infinite; }
.scn-key-to-country-high-ground-theory .figure    { position:absolute; bottom:18%; left:55%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kcg-fig 3s ease-in-out infinite; }
.scn-key-to-country-high-ground-theory .window    { position:absolute; bottom:32%; right:12%; width:80px; height:100px; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%); border: 6px solid #806050; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: kcg-window 8s ease-in-out infinite alternate; }
.scn-key-to-country-high-ground-theory .curtains  { position:absolute; bottom:30%; right:12%; width:45px; height:105px; background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%); border-radius: 4px 0 0 8px; transform-origin: right top; animation: kcg-curtain 9s ease-in-out infinite; }
@keyframes kcg-lamp  { 0%,100% { box-shadow: 0 -10px 30px 8px rgba(255,224,128,.4); } 50% { box-shadow: 0 -10px 40px 18px rgba(255,224,128,.7); } }
@keyframes kcg-map   { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes kcg-fig   { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes kcg-window{ 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes kcg-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.85); } }

.scn-key-to-country-lloyd-theory { background: linear-gradient(180deg, #e2d6c0 0%, #c8b898 100%), radial-gradient(ellipse at 30% 0%, #fff5e0 0%, transparent 50%); }
.scn-key-to-country-lloyd-theory .bg-wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #d2c4b0 0%, #c0b09c 100%); box-shadow: inset 0 -2px 8px rgba(0,0,0,.08); }
.scn-key-to-country-lloyd-theory .bookshelf  { position:absolute; bottom:18%; left:5%; width:35%; height:55%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 4px; box-shadow: inset 0 4px 10px rgba(0,0,0,.2); animation: kcl-shelf 20s ease-in-out infinite; }
.scn-key-to-country-lloyd-theory .desk       { position:absolute; bottom:8%; left:30%; right:10%; height:18%; background: linear-gradient(180deg, #b0a090 0%, #907060 100%); border-radius: 4px 4px 10px 10px; }
.scn-key-to-country-lloyd-theory .figure-sit { position:absolute; bottom:12%; left:42%; width:28px; height:50px; background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kcl-sit 4s ease-in-out infinite; }
.scn-key-to-country-lloyd-theory .book-open  { position:absolute; bottom:18%; left:48%; width:40px; height:30px; background: linear-gradient(135deg, #f2e8d0 0%, #dcccb0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: kcl-book 8s ease-in-out infinite; }
.scn-key-to-country-lloyd-theory .lamp-lloyd { position:absolute; bottom:30%; left:36%; width:25px; height:40px; background: radial-gradient(circle at 50% 0%, #ffe070 0%, #c09040 50%, #503020 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 -8px 25px 6px rgba(255,224,112,.5); animation: kcl-lamp2 5s ease-in-out infinite; }
.scn-key-to-country-lloyd-theory .globe     { position:absolute; bottom:22%; left:52%; width:35px; height:35px; background: radial-gradient(circle at 40% 30%, #6090c0 0%, #306090 60%, #204060 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: kcl-globe 30s linear infinite; }
@keyframes kcl-shelf  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes kcl-sit    { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes kcl-book   { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes kcl-lamp2  { 0%,100% { box-shadow: 0 -8px 25px 6px rgba(255,224,112,.5); } 50% { box-shadow: 0 -8px 35px 14px rgba(255,224,112,.7); } }
@keyframes kcl-globe   { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-key-to-country-geological-science { background: linear-gradient(180deg, #d6c8b0 0%, #bca890 100%), radial-gradient(ellipse at 50% 0%, #ffeed8 0%, transparent 60%); }
.scn-key-to-country-geological-science .bg-wall          { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #c4b49c 0%, #a89878 100%); }
.scn-key-to-country-geological-science .cross-section    { position:absolute; bottom:20%; left:10%; width:60%; height:60%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 30%, #c0a080 60%, #a08060 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: kge-section 25s ease-in-out infinite; }
.scn-key-to-country-geological-science .fossil1          { position:absolute; bottom:50%; left:20%; width:15px; height:8px; background: radial-gradient(ellipse, #d0c0a0 0%, #a09070 100%); border-radius: 50%; transform: rotate(20deg); animation: kge-foss 9s ease-in-out infinite; }
.scn-key-to-country-geological-science .fossil2          { position:absolute; bottom:35%; left:30%; width:12px; height:6px; background: radial-gradient(ellipse, #d0c0a0 0%, #a09070 100%); border-radius: 50%; transform: rotate(-15deg); animation: kge-foss 11s ease-in-out infinite 2s; }
.scn-key-to-country-geological-science .fossil3          { position:absolute; bottom:60%; left:45%; width:18px; height:7px; background: radial-gradient(ellipse, #d0c0a0 0%, #a09070 100%); border-radius: 50%; transform: rotate(30deg); animation: kge-foss 13s ease-in-out infinite 4s; }
.scn-key-to-country-geological-science .magnifier        { position:absolute; bottom:30%; left:75%; width:30px; height:30px; border: 4px solid #806050; border-radius: 50%; background: radial-gradient(circle, #e8e0d0 0%, transparent 60%); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: kge-mag 7s ease-in-out infinite; }
.scn-key-to-country-geological-science .hand             { position:absolute; bottom:25%; left:72%; width:20px; height:35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kge-hand 3s ease-in-out infinite; }
@keyframes kge-section { 0%,100% { background-position: 0 0; } 50% { background-position: 0 -5px; } }
@keyframes kge-foss    { 0%,100% { opacity: .5; } 50% { opacity: .9; } }
@keyframes kge-mag     { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes kge-hand    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(2deg); } }

.scn-key-to-country-mountain-top-illusion { background: linear-gradient(180deg, #d8c8b0 0%, #c0ae94 100%), radial-gradient(ellipse at 50% 0%, #fef5e0 0%, transparent 50%); }
.scn-key-to-country-mountain-top-illusion .room-bg        { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #c8b8a0 0%, #b0a088 100%); }
.scn-key-to-country-mountain-top-illusion .window-frame   { position:absolute; bottom:20%; left:25%; width:50%; height:60%; border: 10px solid #886850; border-radius: 6px; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%); box-shadow: inset 0 0 30px rgba(255,255,255,.2); animation: kmt-window 10s ease-in-out infinite alternate; }
.scn-key-to-country-mountain-top-illusion .sky-outside     { position:absolute; bottom:20%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, #b0ccea 0%, #90aac8 100%); border-radius: 4px; clip-path: inset(10px round 4px); animation: kmt-sky 15s ease-in-out infinite; }
.scn-key-to-country-mountain-top-illusion .mountains       { position:absolute; bottom:20%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, transparent 50%, #687868 50%, #485848 100%); border-radius: 0 0 10px 10px; clip-path: polygon(0% 100%, 10% 55%, 20% 70%, 30% 40%, 45% 65%, 55% 35%, 70% 60%, 85% 45%, 100% 55%, 100% 100%); animation: kmt-mount 60s linear infinite; }
.scn-key-to-country-mountain-top-illusion .chair           { position:absolute; bottom:12%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #8a6a52 0%, #605040 100%); border-radius: 8px 8px 4px 4px; box-shadow: 2px 4px 8px rgba(0,0,0,.2); }
.scn-key-to-country-mountain-top-illusion .figure-gazing   { position:absolute; bottom:16%; left:40%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kmt-fig 4s ease-in-out infinite; }
.scn-key-to-country-mountain-top-illusion .carpet          { position:absolute; bottom:5%; left:15%; width:70%; height:10%; background: linear-gradient(90deg, #b87878 0%, #a06060 50%, #b87878 100%); border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.1); }
@keyframes kmt-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,.1); } 50% { box-shadow: inset 0 0 40px rgba(255,255,255,.4); } 100% { box-shadow: inset 0 0 20px rgba(255,255,255,.1); } }
@keyframes kmt-sky    { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes kmt-mount  { 0% { background-position: 0 0; } 100% { background-position: -200% 0; } }
@keyframes kmt-fig    { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }

/* Scene: strategy-gives-combat-special-signification */
.scn-strategy-gives-combat-special-signification {
  background: linear-gradient(180deg, #2b1e14 0%, #1f1510 40%, #120e0a 100%), radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 60%);
}
.scn-strategy-gives-combat-special-signification .bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #3a2b20 0%, #211812 100%);
  opacity: 0.4;
  animation: sg-bg 12s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #6b4f35 0%, #3e2d1c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: sg-desk 8s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .map {
  position: absolute; bottom: 32%; left: 28%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #b8956a 0%, #8a6e48 50%, #6d5538 100%);
  border-radius: 2% 2% 2% 2%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sg-map 14s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .chess-piece {
  position: absolute; bottom: 40%; left: 55%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #3e2a1c 0%, #1f140e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: sg-chess 6s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .candle {
  position: absolute; bottom: 40%; left: 22%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #f5e6c0 0%, #d9b380 50%, #a07a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3);
  animation: sg-candle 4s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .glow {
  position: absolute; bottom: 42%; left: 20%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ffd699 0%, #b87a3a 50%, transparent 80%);
  opacity: 0.6;
  animation: sg-glow 3s ease-in-out infinite alternate;
}
.scn-strategy-gives-combat-special-signification .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%);
  opacity: 0.3;
  animation: sg-shadow 8s ease-in-out infinite alternate;
}
@keyframes sg-bg { 0% { opacity: 0.35; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes sg-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sg-map { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes sg-chess { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sg-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sg-glow { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.75; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes sg-shadow { 0% { opacity: 0.25; } 50% { opacity: 0.35; } 100% { opacity: 0.3; } }

/* Scene: objects-leading-directly-to-peace */
.scn-objects-leading-directly-to-peace {
  background: linear-gradient(180deg, #2f2319 0%, #1c1410 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-objects-leading-directly-to-peace .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2d1f 0%, #1f1612 100%); opacity: 0.5; animation: ol-bg 15s ease-in-out infinite alternate;
}
.scn-objects-leading-directly-to-peace .shelf {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 4%; background: linear-gradient(180deg, #5e4732 0%, #3b2a1c 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-objects-leading-directly-to-peace .book-left {
  position: absolute; top: 20%; left: 18%; width: 8%; height: 16%; background: linear-gradient(180deg, #7a5b3a 0%, #4a3422 100%); border-radius: 3px; transform: rotate(-4deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: ol-book-l 10s ease-in-out infinite alternate;
}
.scn-objects-leading-directly-to-peace .book-right {
  position: absolute; top: 18%; right: 20%; width: 10%; height: 20%; background: linear-gradient(180deg, #6a4d30 0%, #3b2816 100%); border-radius: 3px; transform: rotate(3deg); box-shadow: -2px 2px 6px rgba(0,0,0,0.5); animation: ol-book-r 12s ease-in-out infinite alternate;
}
.scn-objects-leading-directly-to-peace .lamp {
  position: absolute; bottom: 25%; left: 50%; width: 6%; height: 30%; transform: translateX(-50%); background: linear-gradient(180deg, #b89a6a 0%, #7a5d3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(255, 210, 130, 0.3); animation: ol-lamp 5s ease-in-out infinite alternate;
}
.scn-objects-leading-directly-to-peace .lamp-light {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 25%; background: radial-gradient(ellipse at 50% 100%, #ffd699 0%, #b87a3a 50%, transparent 80%); opacity: 0.5; animation: ol-light 4s ease-in-out infinite alternate;
}
.scn-objects-leading-directly-to-peace .branch {
  position: absolute; bottom: 35%; right: 30%; width: 12%; height: 6%; background: linear-gradient(180deg, #4a3520 0%, #2d1d10 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ol-branch 20s linear infinite alternate;
}
@keyframes ol-bg { 0% { opacity: 0.45; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes ol-book-l { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes ol-book-r { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ol-lamp { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ol-light { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ol-branch { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }

/* Scene: strategy-deduces-from-experience */
.scn-strategy-deduces-from-experience {
  background: linear-gradient(180deg, #1f1a25 0%, #14121a 50%, #0c0a10 100%), radial-gradient(ellipse at 50% 30%, #2a2435 0%, transparent 60%);
}
.scn-strategy-deduces-from-experience .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2535 0%, #181520 100%); opacity: 0.5; animation: sd-bg 18s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .window {
  position: absolute; top: 15%; left: 30%; right: 30%; height: 40%; background: linear-gradient(180deg, #3a3245 0%, #1f1a30 100%); border-radius: 5% 5% 0 0; border: 4px solid #2a2435; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: sd-window 20s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .moonlight {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 50%; background: linear-gradient(180deg, rgba(180, 170, 220, 0.15) 0%, rgba(180, 170, 220, 0.05) 100%); border-radius: 50% 50% 0 0; filter: blur(8px); animation: sd-moon 12s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .globe {
  position: absolute; bottom: 30%; left: 25%; width: 15%; height: 25%; background: radial-gradient(circle at 40% 40%, #8a7a5a 0%, #5a4a32 50%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: sd-globe 10s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .globe-stand {
  position: absolute; bottom: 28%; left: 30%; width: 5%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 0 0 20% 20%; transform: rotate(20deg); animation: sd-stand 15s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .compass {
  position: absolute; bottom: 35%; right: 20%; width: 10%; height: 10%; transform: rotate(30deg); background: linear-gradient(180deg, #b0985a 0%, #6a5430 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: sd-compass 8s ease-in-out infinite alternate;
}
.scn-strategy-deduces-from-experience .figure {
  position: absolute; bottom: 10%; left: 50%; width: 12%; height: 35%; transform: translateX(-50%); background: linear-gradient(180deg, #1a1620 0%, #0c0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: sd-figure 6s ease-in-out infinite alternate;
}
@keyframes sd-bg { 0% { opacity: 0.45; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes sd-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sd-moon { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-4px); } 100% { opacity: 0.4; transform: translateY(0); } }
@keyframes sd-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes sd-stand { 0% { transform: rotate(20deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(20deg); } }
@keyframes sd-compass { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(1.02); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes sd-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }

/* Scene: theory-cannot-lose-itself-in-chimeras */
.scn-theory-cannot-lose-itself-in-chimeras {
  background: linear-gradient(180deg, #2a1e14 0%, #1c1410 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-theory-cannot-lose-itself-in-chimeras .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1f 0%, #1f1612 100%); opacity: 0.4; animation: tc-bg 14s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #6b4f35 0%, #3e2d1c 100%); border-radius: 3% 3% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); animation: tc-desk 9s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .paper {
  position: absolute; bottom: 25%; left: 25%; width: 30%; height: 16%; background: linear-gradient(180deg, #d9c8a8 0%, #b89a6a 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(1deg); animation: tc-paper 11s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .inkwell {
  position: absolute; bottom: 30%; right: 30%; width: 6%; height: 8%; background: linear-gradient(180deg, #2a1e14 0%, #120e08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: tc-ink 7s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .pen {
  position: absolute; bottom: 30%; right: 32%; width: 2%; height: 20%; background: linear-gradient(180deg, #d9b380 0%, #8a6a40 100%); border-radius: 10% 10% 5% 5%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tc-pen 6s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .candle {
  position: absolute; bottom: 35%; left: 18%; width: 3%; height: 20%; background: linear-gradient(180deg, #f5e6c0 0%, #d9b380 50%, #a07a4a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3); animation: tc-candle 4s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .flame {
  position: absolute; bottom: 52%; left: 17.5%; width: 5%; height: 10%; background: radial-gradient(ellipse at 50% 100%, #ffd699 0%, #e89a4a 50%, #b85a1a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; filter: blur(2px); animation: tc-flame 2s ease-in-out infinite alternate;
}
.scn-theory-cannot-lose-itself-in-chimeras .frame {
  position: absolute; top: 15%; right: 15%; width: 20%; height: 30%; background: linear-gradient(135deg, #4a3520 0%, #2a1c10 100%); border: 4px solid #5a4530; border-radius: 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: tc-frame 20s ease-in-out infinite alternate;
}
@keyframes tc-bg { 0% { opacity: 0.35; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes tc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tc-paper { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes tc-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tc-pen { 0% { transform: rotate(20deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(20deg); } }
@keyframes tc-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes tc-flame { 0% { opacity: 0.7; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1.15); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes tc-frame { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }

.scn-directions-and-method {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a22 50%, #4a3a32 100%),
    radial-gradient(ellipse at 70% 80%, #6a4a3a 0%, transparent 60%);
}
.scn-directions-and-method .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); animation: dm-wall 12s ease-in-out infinite alternate;
}
.scn-directions-and-method .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
}
.scn-directions-and-method .book {
  position: absolute; bottom: 20%; left: 25%; width: 25%; height: 18%; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 50%, #8a7a6a 100%); border-radius: 2px 8px 8px 2px; transform: skewY(-2deg); box-shadow: 2px 4px 8px rgba(0,0,0,.4); animation: dm-book 8s ease-in-out infinite;
}
.scn-directions-and-method .compass {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: auto; aspect-ratio: 1/1; background: radial-gradient(circle at 50% 50%, #d4c4a0 0%, #8a7a5a 70%, #5a4a3a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: dm-compass 10s ease-in-out infinite;
}
.scn-directions-and-method .compass::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 30%; height: 40%; background: linear-gradient(180deg, #800000 0%, #400000 100%); transform: translate(-50%, -50%) rotate(0deg); clip-path: polygon(50% 0%, 70% 100%, 30% 100%); animation: dm-needle 4s ease-in-out infinite;
}
.scn-directions-and-method .candle {
  position: absolute; bottom: 30%; left: 75%; width: 3%; height: 25%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b89a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 -4px 8px rgba(200,180,130,.3); animation: dm-candle 5s ease-in-out infinite alternate;
}
.scn-directions-and-method .glow {
  position: absolute; bottom: 30%; left: 75%; width: 12%; height: 30%; background: radial-gradient(ellipse at 50% 20%, rgba(255,210,120,0.4) 0%, transparent 70%); transform: translate(-38%, -20%); animation: dm-glow 3s ease-in-out infinite alternate;
}
.scn-directions-and-method .hand {
  position: absolute; bottom: 20%; left: 30%; width: 4%; height: 12%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dm-hand 6s ease-in-out infinite;
}
@keyframes dm-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dm-book {
  0% { transform: skewY(-2deg) translateY(0); }
  50% { transform: skewY(-1deg) translateY(-2px); }
  100% { transform: skewY(-2deg) translateY(0); }
}
@keyframes dm-compass {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dm-needle {
  0% { transform: translate(-50%, -50%) rotate(-5deg); }
  50% { transform: translate(-50%, -50%) rotate(10deg); }
  100% { transform: translate(-50%, -50%) rotate(-5deg); }
}
@keyframes dm-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.85; }
}
@keyframes dm-glow {
  0% { opacity: 0.6; transform: translate(-38%, -20%) scale(0.9); }
  50% { opacity: 1; transform: translate(-38%, -20%) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-38%, -20%) scale(0.95); }
}
@keyframes dm-hand {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

.scn-law-conception-not-necessary-for-conduct {
  background:
    linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 60% 70%, #3a3a4e 0%, transparent 70%);
}
.scn-law-conception-not-necessary-for-conduct .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); animation: lc-wall 10s ease-in-out infinite alternate;
}
.scn-law-conception-not-necessary-for-conduct .window-frame {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%); border: 4px solid #2a2a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: lc-window 15s ease-in-out infinite;
}
.scn-law-conception-not-necessary-for-conduct .moonlight {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 30%, rgba(200,220,255,0.15) 0%, transparent 70%); animation: lc-moon 8s ease-in-out infinite alternate;
}
.scn-law-conception-not-necessary-for-conduct .figure {
  position: absolute; bottom: 25%; left: 20%; width: 10%; 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: lc-figure 7s ease-in-out infinite;
}
.scn-law-conception-not-necessary-for-conduct .book {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 10%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px 8px 8px 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: lc-book 9s ease-in-out infinite;
}
.scn-law-conception-not-necessary-for-conduct .chair {
  position: absolute; bottom: 0; left: 15%; width: 20%; height: 25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: lc-chair 12s ease-in-out infinite alternate;
}
.scn-law-conception-not-necessary-for-conduct .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
@keyframes lc-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lc-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes lc-moon {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(2px); }
  100% { opacity: 0.7; transform: translateX(-2px); }
}
@keyframes lc-figure {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes lc-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes lc-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

.scn-principles-rules-prescriptions-indispensable {
  background:
    linear-gradient(180deg, #2a2218 0%, #3a2e22 50%, #4a3e32 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 60%);
}
.scn-principles-rules-prescriptions-indispensable .bg-shelf {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); animation: pr-shelf 14s ease-in-out infinite alternate;
}
.scn-principles-rules-prescriptions-indispensable .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-principles-rules-prescriptions-indispensable .scroll {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 12%; background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%); border-radius: 30px 30px 2px 2px; transform: skewX(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pr-scroll 12s ease-in-out infinite;
}
.scn-principles-rules-prescriptions-indispensable .globe {
  position: absolute; bottom: 30%; left: 65%; width: 12%; height: 28%; background: radial-gradient(circle at 40% 30%, #8a9a8a 0%, #4a5a4a 60%, #2a3a2a 100%); border-radius: 50%; box-shadow: -4px 4px 12px rgba(0,0,0,.5); animation: pr-globe 20s linear infinite;
}
.scn-principles-rules-prescriptions-indispensable .quill {
  position: absolute; bottom: 40%; left: 50%; width: 2%; height: 20%; background: linear-gradient(180deg, #e0d0c0 0%, #a09080 100%); transform-origin: bottom center; border-radius: 0 0 50% 50%; animation: pr-quill 5s ease-in-out infinite;
}
.scn-principles-rules-prescriptions-indispensable .inkwell {
  position: absolute; bottom: 30%; left: 45%; width: 5%; height: 6%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.6);
}
.scn-principles-rules-prescriptions-indispensable .lamp-glow {
  position: absolute; bottom: 30%; left: 45%; width: 20%; height: 40%; background: radial-gradient(ellipse at 50% 30%, rgba(255,200,120,0.25) 0%, transparent 70%); transform: translate(-38%, -10%); animation: pr-lamp 4s ease-in-out infinite alternate;
}
@keyframes pr-shelf {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes pr-scroll {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-3deg) translateY(-2px); }
  100% { transform: skewX(-5deg) translateY(0); }
}
@keyframes pr-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes pr-quill {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pr-lamp {
  0% { opacity: 0.5; transform: translate(-38%, -10%) scale(0.9); }
  50% { opacity: 0.9; transform: translate(-38%, -10%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-38%, -10%) scale(0.95); }
}

.scn-tactical-principles-examples {
  background:
    linear-gradient(180deg, #2a2a1a 0%, #3a3a2a 50%, #4a4a3a 100%),
    radial-gradient(ellipse at 50% 70%, #5a5a4a 0%, transparent 70%);
}
.scn-tactical-principles-examples .bg-map {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a3a 0%, #3a3a2a 50%, #5a5a4a 100%); animation: tp-map 18s ease-in-out infinite alternate;
}
.scn-tactical-principles-examples .map-lines {
  position: absolute; inset: 10%; background: repeating-linear-gradient(45deg, transparent 0px, transparent 5px, rgba(0,0,0,0.08) 5px, rgba(0,0,0,0.08) 10px); border: 2px solid #2a2a1a; border-radius: 8px; animation: tp-lines 12s linear infinite;
}
.scn-tactical-principles-examples .marker-a {
  position: absolute; bottom: 45%; left: 30%; width: 4%; height: 6%; background: linear-gradient(180deg, #a04a2a 0%, #6a2a1a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: tp-marker-a 6s ease-in-out infinite;
}
.scn-tactical-principles-examples .marker-b {
  position: absolute; bottom: 40%; left: 55%; width: 4%; height: 6%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: tp-marker-b 8s ease-in-out infinite;
}
.scn-tactical-principles-examples .hand-point {
  position: absolute; bottom: 20%; left: 20%; width: 5%; height: 15%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: tp-hand 9s ease-in-out infinite;
}
.scn-tactical-principles-examples .candle {
  position: absolute; bottom: 30%; left: 75%; width: 3%; height: 20%; background: linear-gradient(180deg, #e0d0b0 0%, #b8a88a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 -4px 8px rgba(200,180,130,.3); animation: tp-candle 5s ease-in-out infinite alternate;
}
.scn-tactical-principles-examples .candle-glow {
  position: absolute; bottom: 30%; left: 75%; width: 15%; height: 30%; background: radial-gradient(ellipse at 50% 20%, rgba(255,210,120,0.35) 0%, transparent 70%); transform: translate(-40%, -20%); animation: tp-glow 3s ease-in-out infinite alternate;
}
@keyframes tp-map {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes tp-lines {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}
@keyframes tp-marker-a {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-4px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes tp-marker-b {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes tp-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes tp-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.85; }
}
@keyframes tp-glow {
  0% { opacity: 0.5; transform: translate(-40%, -20%) scale(0.9); }
  50% { opacity: 0.9; transform: translate(-40%, -20%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-40%, -20%) scale(0.95); }
}

/* key-to-country-connection */
.scn-key-to-country-connection {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 60%, #d4b889 100%),
    radial-gradient(circle at 30% 40%, #fff6e0 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-key-to-country-connection .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3e28 50%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 8px 30px rgba(0,0,0,.3);
  animation: scc-table 12s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .map {
  position: absolute; bottom: 18%; left: 18%; width: 64%; height: 44%;
  background: 
    linear-gradient(135deg, #eeddc0 0%, #d5c4a0 50%, #bfa87e 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: scc-map 8s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .mountains {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 20%;
  background: 
    linear-gradient(135deg, transparent 0%, transparent 30%, #4a6a3a 30%, #3a5a2a 70%, transparent 70%, transparent 100%);
  clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 30% 30%, 40% 50%, 50% 20%, 60% 45%, 70% 35%, 80% 55%, 90% 40%, 100% 100%);
  background-size: 200% 100%;
  background-position: 0% 0%;
  animation: scc-mountains 20s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .river {
  position: absolute; bottom: 34%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #4a8a9a 0%, #6aaabc 50%, #5a9aaa 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: scc-river 15s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .lamp {
  position: absolute; bottom: 48%; left: 72%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
  animation: scc-lamp 4s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .lamp-glow {
  position: absolute; bottom: 46%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffdd90 0%, #ffcc70 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: scc-glow 3s ease-in-out infinite alternate;
}
.scn-key-to-country-connection .figure {
  position: absolute; bottom: 16%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scc-figure 5s ease-in-out infinite;
}
.scn-key-to-country-connection .compass {
  position: absolute; bottom: 24%; left: 68%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8a050 0%, #8a6a30 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: scc-compass 10s linear infinite;
}
@keyframes scc-table {
  0% { transform: scale(1); box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 8px 30px rgba(0,0,0,.3); }
  50% { transform: scale(1.005); box-shadow: inset 0 4px 25px rgba(0,0,0,.55), 0 8px 35px rgba(0,0,0,.35); }
  100% { transform: scale(1); box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 8px 30px rgba(0,0,0,.3); }
}
@keyframes scc-map {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes scc-mountains {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes scc-river {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(2px) scale(1.02); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes scc-lamp {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes scc-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes scc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes scc-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* key-to-country-example-russia */
.scn-key-to-country-example-russia {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 40%, #b8a890 100%),
    radial-gradient(circle at 20% 30%, #fff5e0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-key-to-country-example-russia .table {
  position: absolute; bottom: 8%; left: 8%; width: 84%; height: 65%;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a22 50%, #2a1a0a 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 15px rgba(0,0,0,.4), 0 6px 20px rgba(0,0,0,.25);
  animation: scr-table 14s ease-in-out infinite alternate;
}
.scn-key-to-country-example-russia .map {
  position: absolute; bottom: 16%; left: 15%; width: 70%; height: 48%;
  background: linear-gradient(135deg, #eee0c8 0%, #d5c8a8 50%, #bfb090 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.1);
  animation: scr-map 18s ease-in-out infinite alternate;
}
.scn-key-to-country-example-russia .peninsula {
  position: absolute; bottom: 28%; left: 45%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #b8a888 0%, #9a8870 100%);
  clip-path: polygon(0% 100%, 20% 40%, 40% 20%, 60% 10%, 80% 30%, 100% 50%, 90% 80%, 70% 90%, 50% 100%);
  animation: scr-peninsula 20s ease-in-out infinite alternate;
}
.scn-key-to-country-example-russia .isthmus {
  position: absolute; bottom: 42%; left: 42%; width: 16%; height: 6%;
  background: #7a6a50;
  border-radius: 20% 20% 50% 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: scr-isthmus 12s ease-in-out infinite alternate;
}
.scn-key-to-country-example-russia .ship {
  position: absolute; bottom: 38%; left: 60%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: scr-ship 8s ease-in-out infinite;
}
.scn-key-to-country-example-russia .fort {
  position: absolute; bottom: 44%; left: 25%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: scr-fort 6s ease-in-out infinite alternate;
}
.scn-key-to-country-example-russia .flags {
  position: absolute; bottom: 44%; left: 22%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #b87878 0%, #8a5858 100%);
  border-radius: 0 0 50% 50%;
  animation: scr-flags 4s ease-in-out infinite;
}
@keyframes scr-table {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.003) rotate(0.5deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes scr-map {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2px) translateY(1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes scr-peninsula {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(1.02) rotate(1deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: 0.9; }
}
@keyframes scr-isthmus {
  0% { width: 16%; }
  50% { width: 18%; }
  100% { width: 16%; }
}
@keyframes scr-ship {
  0% { transform: rotate(-10deg) translateX(0); }
  25% { transform: rotate(-8deg) translateX(5px); }
  50% { transform: rotate(-10deg) translateX(10px); }
  75% { transform: rotate(-12deg) translateX(5px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes scr-fort {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes scr-flags {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
}

/* key-to-country-langres-magic */
.scn-key-to-country-langres-magic {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b889 100%),
    radial-gradient(circle at 50% 60%, #fff6e0 0%, transparent 80%);
  background-blend-mode: overlay;
  position: relative;
}
.scn-key-to-country-langres-magic .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
  animation: scl-bg 6s ease-in-out infinite alternate;
}
.scn-key-to-country-langres-magic .map {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 50%;
  background: linear-gradient(135deg, #eeddc0 0%, #d5c4a0 50%, #bfa87e 100%);
  border-radius: 4px;
  box-shadow: 0 0 0 2px rgba(0,0,0,.1), 0 4px 15px rgba(0,0,0,.2);
  animation: scl-map 4s ease-in-out infinite alternate;
}
.scn-key-to-country-langres-magic .key {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #c8a050 0%, #a08030 40%, #806020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.3);
  animation: scl-key 3s ease-in-out infinite alternate;
}
.scn-key-to-country-langres-magic .magnifier {
  position: absolute; bottom: 34%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, rgba(200,200,200,0.1) 60%, transparent 70%);
  border: 3px solid #8a7a5a;
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(255,200,100,0.6);
  animation: scl-magnifier 2s ease-in-out infinite alternate;
}
.scn-key-to-country-langres-magic .glow {
  position: absolute; bottom: 38%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffdd90 0%, #ffcc70 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: scl-glow 1.5s ease-in-out infinite alternate;
}
.scn-key-to-country-langres-magic .shadow-hand {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 30% 50% 50% / 60% 40% 40% 60%;
  transform: rotate(-20deg);
  animation: scl-hand 4s ease-in-out infinite;
}
.scn-key-to-country-langres-magic .ripple {
  position: absolute; bottom: 30%; left: 50%; width: 0; height: 0;
  border: 2px solid #c0a050;
  border-radius: 50%;
  animation: scl-ripple 2s ease-out infinite;
}
@keyframes scl-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes scl-map {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes scl-key {
  0% { transform: rotate(15deg) translateY(0) scale(1); }
  50% { transform: rotate(20deg) translateY(-2px) scale(1.03); }
  100% { transform: rotate(15deg) translateY(0) scale(1); }
}
@keyframes scl-magnifier {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; }
  50% { transform: translate(3px, -3px) scale(1.1); opacity: 1; }
  100% { transform: translate(0,0) scale(1); opacity: 0.6; }
}
@keyframes scl-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes scl-hand {
  0% { transform: rotate(-20deg) translateX(0); }
  25% { transform: rotate(-15deg) translateX(5px); }
  50% { transform: rotate(-20deg) translateX(0); }
  75% { transform: rotate(-25deg) translateX(-5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes scl-ripple {
  0% { width: 0; height: 0; opacity: 0.8; }
  100% { width: 60px; height: 60px; opacity: 0; }
}

/* key-to-country-true-value */
.scn-key-to-country-true-value {
  background: 
    linear-gradient(180deg, #f0e6d0 0%, #e0d4b8 40%, #c8b898 100%),
    radial-gradient(circle at 50% 40%, #fff8e8 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-key-to-country-true-value .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a22 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 20px rgba(0,0,0,.4), 0 8px 30px rgba(0,0,0,.2);
  animation: sct-table 16s ease-in-out infinite alternate;
}
.scn-key-to-country-true-value .map {
  position: absolute; bottom: 18%; left: 18%; width: 64%; height: 44%;
  background: linear-gradient(135deg, #eee0c8 0%, #d5c8a8 50%, #bfb090 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.05);
  animation: sct-map 20s ease-in-out infinite alternate;
}
.scn-key-to-country-true-value .roads {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%;
  background: 
    linear-gradient(135deg, transparent 0%, transparent 45%, #8a7a5a 45%, #8a7a5a 48%, transparent 48%, transparent 100%),
    linear-gradient(225deg, transparent 0%, transparent 45%, #8a7a5a 45%, #8a7a5a 48%, transparent 48%, transparent 100%);
  animation: sct-roads 25s ease-in-out infinite alternate;
}
.scn-key-to-country-true-value .center-marker {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #a04030 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(200,85,61,0.6);
  transform: translate(-50%, -50%);
  animation: sct-marker 3s ease-in-out infinite alternate;
}
.scn-key-to-country-true-value .compass-rose {
  position: absolute; bottom: 18%; left: 72%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c8a050 0%, #a08030 60%, #806020 100%);
  clip-path: polygon(50% 0%, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0% 50%, 40% 40%);
  animation: sct-compass 12s linear infinite;
}
.scn-key-to-country-true-value .globe {
  position: absolute; bottom: 22%; left: 14%; width: 28px; height: 28px;
  background: radial-gradient(circle at 30% 30%, #6a8a9a 0%, #4a6a7a 60%, #2a4a5a 100%);
  border-radius: 50%;
  box-shadow: inset -5px -5px 10px rgba(0,0,0,.3);
  animation: sct-globe 8s ease-in-out infinite alternate;
}
.scn-key-to-country-true-value .documents {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(-5deg);
  animation: sct-documents 5s ease-in-out infinite alternate;
}
@keyframes sct-table {
  0% { transform: scale(1) rotate(0deg); box-shadow: inset 0 4px 20px rgba(0,0,0,.4), 0 8px 30px rgba(0,0,0,.2); }
  50% { transform: scale(1.005) rotate(0.3deg); box-shadow: inset 0 4px 25px rgba(0,0,0,.45), 0 8px 35px rgba(0,0,0,.25); }
  100% { transform: scale(1) rotate(0deg); box-shadow: inset 0 4px 20px rgba(0,0,0,.4), 0 8px 30px rgba(0,0,0,.2); }
}
@keyframes sct-map {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-1px) translateY(1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes sct-roads {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 100%; }
}
@keyframes sct-marker {
  0% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 12px rgba(200,85,61,0.6); }
  50% { transform: translate(-50%, -50%) scale(1.15); box-shadow: 0 0 20px rgba(200,85,61,0.9); }
  100% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 12px rgba(200,85,61,0.6); }
}
@keyframes sct-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes sct-globe {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes sct-documents {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

/* —– SCENE 1: two kinds continued –– */
.scn-author-notice-two-kinds-continued {
  background: 
    linear-gradient(180deg, #2a1a12 0%, #1e120e 50%, #2c1e17 100%),
    radial-gradient(ellipse at 50% 70%, #4a3325 0%, transparent 70%);
}
.scn-author-notice-two-kinds-continued .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3b281f 0%, #2a1a12 60%, transparent 100%);
  animation: atkc-wall 20s ease-in-out infinite alternate;
}
.scn-author-notice-two-kinds-continued .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #5a3f30 0%, #3e2b1f 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-author-notice-two-kinds-continued .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b5885a 0%, #8a6030 80%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #c98a44;
  animation: atkc-lamp 4s ease-in-out infinite alternate;
}
.scn-author-notice-two-kinds-continued .glow {
  position: absolute; bottom: 42%; left: 50%; width: 90px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8b060 0%, #c08030 40%, transparent 70%);
  border-radius: 50%; opacity: 0.6;
  animation: atkc-glow 3s ease-in-out infinite alternate;
}
.scn-author-notice-two-kinds-continued .book-left {
  position: absolute; bottom: 18%; left: 22%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2815 100%);
  border-radius: 4px; transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: atkc-book-l 7s ease-in-out infinite;
}
.scn-author-notice-two-kinds-continued .book-right {
  position: absolute; bottom: 20%; right: 22%; width: 45px; height: 38px;
  background: linear-gradient(180deg, #704d33 0%, #42301e 100%);
  border-radius: 4px; transform: rotate(3deg);
  box-shadow: -2px 2px 6px rgba(0,0,0,0.5);
  animation: atkc-book-r 6s ease-in-out infinite;
}
.scn-author-notice-two-kinds-continued .divider {
  position: absolute; bottom: 10%; left: 50%; width: 2px; height: 55%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent 0%, #c09860 50%, transparent 100%);
  animation: atkc-div 12s ease-in-out infinite alternate;
}
@keyframes atkc-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes atkc-lamp { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes atkc-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.95) } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.55; transform: translateX(-50%) scale(0.98) } }
@keyframes atkc-book-l { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes atkc-book-r { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes atkc-div { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }

/* —– SCENE 2: war as policy –– */
.scn-author-notice-war-as-policy {
  background: 
    linear-gradient(180deg, #1e140f 0%, #2c1f17 50%, #1a110c 100%),
    radial-gradient(ellipse at 60% 80%, #3a281f 0%, transparent 70%);
}
.scn-author-notice-war-as-policy .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c1c13 0%, #1a100b 70%, transparent 100%);
  animation: awp-wall 18s ease-in-out infinite alternate;
}
.scn-author-notice-war-as-policy .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #4d3323 0%, #332114 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-author-notice-war-as-policy .map {
  position: absolute; bottom: 28%; left: 15%; width: 50%; height: 25%;
  background: linear-gradient(135deg, #c9a86c 0%, #a68250 50%, #8c6e44 100%);
  border-radius: 4% 20% 10% 4%; transform: rotate(-2deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: awp-map 15s ease-in-out infinite;
}
.scn-author-notice-war-as-policy .compass {
  position: absolute; bottom: 30%; left: 68%; width: 28px; height: 28px;
  background: radial-gradient(circle, #c09860 0%, #8a6a40 60%, #503620 100%);
  border-radius: 50%; border: 2px solid #705030;
  animation: awp-compass 8s linear infinite;
}
.scn-author-notice-war-as-policy .quill {
  position: absolute; bottom: 38%; left: 20%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #e6d0b0 0%, #b0926c 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: awp-quill 5s ease-in-out infinite alternate;
}
.scn-author-notice-war-as-policy .inkwell {
  position: absolute; bottom: 30%; left: 12%; width: 18px; height: 20px;
  background: linear-gradient(180deg, #382820 0%, #1a100c 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 6px #0a0806;
}
.scn-author-notice-war-as-policy .candle {
  position: absolute; bottom: 42%; left: 75%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 80%, #a08060 100%);
  border-radius: 6px; box-shadow: 0 0 8px rgba(200,160,80,0.3);
  animation: awp-candle 6s ease-in-out infinite;
}
.scn-author-notice-war-as-policy .flame-glow {
  position: absolute; bottom: 50%; left: 75%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #f5d070 0%, #d48a30 40%, transparent 70%);
  border-radius: 50%; opacity: 0.5;
  animation: awp-flame 3s ease-in-out infinite alternate;
}
@keyframes awp-wall { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes awp-map { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(-1.5deg) scale(1.01) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes awp-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes awp-quill { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes awp-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } }
@keyframes awp-flame { 0% { opacity: 0.4; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity: 0.6; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity: 0.45; transform: translate(-50%,-50%) scale(0.95) } }

/* —– SCENE 3: seventh book attack –– */
.scn-author-notice-seventh-book-attack {
  background: 
    linear-gradient(180deg, #241810 0%, #1a1009 50%, #2c1c12 100%),
    radial-gradient(ellipse at 50% 60%, #3a261a 0%, transparent 70%);
}
.scn-author-notice-seventh-book-attack .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2e1c12 0%, #1a0e08 70%, transparent 100%);
  animation: asba-wall 22s ease-in-out infinite alternate;
}
.scn-author-notice-seventh-book-attack .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #4a3121 0%, #2c1a10 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 10px 24px rgba(0,0,0,0.6);
}
.scn-author-notice-seventh-book-attack .open-book {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d6b888 0%, #b09060 50%, #8a6a40 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: asba-book 9s ease-in-out infinite;
}
.scn-author-notice-seventh-book-attack .open-book::after {
  content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%);
}
.scn-author-notice-seventh-book-attack .sword {
  position: absolute; bottom: 18%; left: 30%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #b0a080 0%, #706050 100%);
  border-radius: 2px;
  transform: rotate(-20deg); transform-origin: bottom center;
  box-shadow: 1px 0 4px rgba(0,0,0,0.3);
  animation: asba-sword 10s ease-in-out infinite alternate;
}
.scn-author-notice-seventh-book-attack .candle {
  position: absolute; bottom: 38%; right: 20%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #f0d8b8 0%, #ccb090 80%, #a08060 100%);
  border-radius: 5px; box-shadow: 0 0 12px rgba(200,140,60,0.3);
  animation: asba-candle 5s ease-in-out infinite;
}
.scn-author-notice-seventh-book-attack .candle-glow {
  position: absolute; bottom: 46%; right: 20%; width: 50px; height: 50px;
  transform: translate(50%, -50%);
  background: radial-gradient(circle, #f5c060 0%, #d48a30 35%, transparent 65%);
  border-radius: 50%; opacity: 0.45;
  animation: asba-glow 3s ease-in-out infinite alternate;
}
.scn-author-notice-seventh-book-attack .stand {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: asba-stand 12s ease-in-out infinite;
}
@keyframes asba-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes asba-book { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-0.5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes asba-sword { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-20deg) } }
@keyframes asba-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes asba-glow { 0% { opacity: 0.3; transform: translate(50%,-50%) scale(0.95) } 50% { opacity: 0.5; transform: translate(50%,-50%) scale(1.1) } 100% { opacity: 0.35; transform: translate(50%,-50%) scale(0.98) } }
@keyframes asba-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* —– SCENE 4: eighth book plan –– */
.scn-author-notice-eighth-book-plan {
  background: 
    linear-gradient(180deg, #1e1410 0%, #241a14 50%, #1a100c 100%),
    radial-gradient(ellipse at 40% 70%, #3a281f 0%, transparent 70%);
}
.scn-author-notice-eighth-book-plan .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1c14 0%, #1c100a 60%, transparent 100%);
  animation: aebp-wall 20s ease-in-out infinite alternate;
}
.scn-author-notice-eighth-book-plan .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #4d3120 0%, #331f12 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 24px rgba(0,0,0,0.5);
}
.scn-author-notice-eighth-book-plan .map-roll {
  position: absolute; bottom: 28%; left: 12%; width: 55%; height: 22%;
  background: linear-gradient(135deg, #d4b488 0%, #b09064 50%, #96744a 100%);
  border-radius: 4% 20% 10% 4%; transform: rotate(-1deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: aebp-map 15s ease-in-out infinite;
}
.scn-author-notice-eighth-book-plan .compass {
  position: absolute; bottom: 32%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b8905a 0%, #8a6a38 60%, #4a3018 100%);
  border-radius: 50%; border: 3px solid #705030;
  animation: aebp-compass 10s linear infinite;
}
.scn-author-notice-eighth-book-plan .globe {
  position: absolute; bottom: 26%; right: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #7ab0c0 0%, #2a5a6a 70%, #1a3a4a 100%);
  border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: aebp-globe 25s linear infinite;
}
.scn-author-notice-eighth-book-plan .telescope {
  position: absolute; bottom: 22%; left: 70%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: aebp-telescope 8s ease-in-out infinite alternate;
}
.scn-author-notice-eighth-book-plan .candle {
  position: absolute; bottom: 40%; left: 20%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #f0d8b8 0%, #d4b090 80%, #a08060 100%);
  border-radius: 6px; box-shadow: 0 0 10px rgba(200,140,60,0.3);
  animation: aebp-candle 6s ease-in-out infinite;
}
.scn-author-notice-eighth-book-plan .ambient-glow {
  position: absolute; bottom: 48%; left: 20%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #f5c860 0%, #d48a30 35%, transparent 65%);
  border-radius: 50%; opacity: 0.35;
  animation: aebp-ambient 4s ease-in-out infinite alternate;
}
@keyframes aebp-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes aebp-map { 0% { transform: rotate(-1deg) scale(1) } 50% { transform: rotate(-0.5deg) scale(1.01) } 100% { transform: rotate(-1deg) scale(1) } }
@keyframes aebp-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes aebp-globe { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes aebp-telescope { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes aebp-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes aebp-ambient { 0% { opacity: 0.25; transform: translate(-50%,-50%) scale(0.9) } 50% { opacity: 0.4; transform: translate(-50%,-50%) scale(1.15) } 100% { opacity: 0.3; transform: translate(-50%,-50%) scale(0.95) } }

/* Scene 1: retreat-into-interior-borodino-standard */
.scn-retreat-into-interior-borodino-standard {
  background: 
    linear-gradient(180deg, #eed8b0 0%, #d4ba90 40%, #b89a6a 100%),
    radial-gradient(ellipse at 50% 100%, #c8a870 0%, transparent 70%);
}
.scn-retreat-into-interior-borodino-standard .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #d4b890 100%);
}
.scn-retreat-into-interior-borodino-standard .table {
  position:absolute; bottom:5%; left:50%; width:40%; height:35%; transform:translateX(-50%); background: radial-gradient(circle at 50% 40%, #9a7a5a 0%, #6a4a2a 100%); border-radius:50%; box-shadow: 0 8px 24px rgba(0,0,0,0.3); animation: r1-table 6s ease-in-out infinite;
}
.scn-retreat-into-interior-borodino-standard .map {
  position:absolute; bottom:15%; left:50%; width:25%; height:20%; transform:translateX(-50%) rotate(-2deg); background: linear-gradient(135deg, #e8d090 0%, #d0b070 50%, #c0a060 100%); border:2px solid #a08040; border-radius:2% 5% 4% 6%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: r1-map 10s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-borodino-standard .candle {
  position:absolute; bottom:24%; left:52%; width:4%; height:18%; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 30%, #8a6a4a 100%); border-radius:10% 10% 5% 5%; transform-origin: bottom center; animation: r1-candle 4s ease-in-out infinite;
}
.scn-retreat-into-interior-borodino-standard .flame {
  position:absolute; bottom:38%; left:52%; width:3%; height:8%; transform:translateX(-50%); background: radial-gradient(circle, #ffe880 0%, #ffa040 50%, #ff6040 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 15px rgba(255,160,64,0.4); animation: r1-flame 1.5s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-borodino-standard .hands {
  position:absolute; bottom:12%; left:42%; width:20%; height:10%; background: radial-gradient(circle at 50% 30%, #e0c0a0 0%, #c09070 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; opacity:0.6; animation: r1-hands 5s ease-in-out infinite;
}
@keyframes r1-table {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes r1-map {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes r1-candle {
  0%,100% { transform: scaleY(1); }
  25% { transform: scaleY(1.06) translateY(-3%); }
  75% { transform: scaleY(0.96) translateY(2%); }
}
@keyframes r1-flame {
  0% { transform: translateX(-50%) scale(1) rotate(-5deg); opacity:0.9; }
  50% { transform: translateX(-50%) scale(1.2) rotate(3deg); opacity:1; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-2deg); opacity:0.85; }
}
@keyframes r1-hands {
  0%,100% { transform: translateX(0) scale(1); }
  50% { transform: translateX(8%) scale(1.05); }
}

/* Scene 2: retreat-into-interior-1813-paris */
.scn-retreat-into-interior-1813-paris {
  background: 
    linear-gradient(90deg, #e6dcc8 0%, #f0e6d4 30%, #f5ead8 50%, #e8dcc8 100%),
    radial-gradient(ellipse at 40% 60%, #f0e2c8 0%, transparent 70%);
}
.scn-retreat-into-interior-1813-paris .room {
  position:absolute; inset:0; background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc8 100%);
}
.scn-retreat-into-interior-1813-paris .window {
  position:absolute; top:5%; left:15%; width:30%; height:60%; background: linear-gradient(180deg, #d4e4f0 0%, #b0c8e0 100%); border:6px solid #8a7050; border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(255,255,240,0.6); animation: r2-window 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-1813-paris .desk {
  position:absolute; bottom:8%; left:5%; width:50%; height:30%; background: linear-gradient(180deg, #9a7a5a 0%, #705030 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-retreat-into-interior-1813-paris .papers {
  position:absolute; bottom:15%; left:12%; width:20%; height:12%; background: linear-gradient(135deg, #f8f0d0 0%, #e8d8b0 100%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); transform: rotate(-5deg); animation: r2-papers 8s ease-in-out infinite;
}
.scn-retreat-into-interior-1813-paris .inkwell {
  position:absolute; bottom:18%; left:28%; width:4%; height:10%; background: radial-gradient(circle at 50% 30%, #806060 0%, #402020 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-retreat-into-interior-1813-paris .chair {
  position:absolute; bottom:8%; right:15%; width:20%; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: -4px 0 8px rgba(0,0,0,0.2); transform-origin: bottom center; animation: r2-chair 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-1813-paris .curtain {
  position:absolute; top:0; left:10%; width:8%; height:70%; background: linear-gradient(180deg, #c8a880 0%, #8a6a4a 100%); border-radius:0 0 20% 20% / 0 0 40% 40%; opacity:0.7; animation: r2-curtain 10s ease-in-out infinite alternate;
}
@keyframes r2-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,240,0.6); }
  50% { box-shadow: inset 0 0 30px rgba(255,255,230,0.8); }
  100% { box-shadow: inset 0 0 15px rgba(230,230,255,0.4); }
}
@keyframes r2-papers {
  0%,100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(4px); }
}
@keyframes r2-chair {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes r2-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}

/* Scene 3: retreat-into-interior-lateral-position */
.scn-retreat-into-interior-lateral-position {
  background: 
    linear-gradient(180deg, #d4b890 0%, #c0a070 30%, #a08050 60%, #806040 100%),
    radial-gradient(ellipse at 50% 0%, #e8d4b0 0%, transparent 80%);
}
.scn-retreat-into-interior-lateral-position .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%);
}
.scn-retreat-into-interior-lateral-position .bookshelf {
  position:absolute; top:5%; left:5%; width:20%; height:90%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2%; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-retreat-into-interior-lateral-position .shelf {
  position:absolute; left:5%; width:20%; height:2%; background: linear-gradient(90deg, #8a6a4a 0%, #5a3a2a 100%); box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-retreat-into-interior-lateral-position .shelf-top { top:20%; }
.scn-retreat-into-interior-lateral-position .shelf-mid { top:45%; }
.scn-retreat-into-interior-lateral-position .shelf-bot { top:70%; }
.scn-retreat-into-interior-lateral-position .book-row {
  position:absolute; left:6%; width:18%; height:8%; background: repeating-linear-gradient(90deg, #b08060 0px, #b08060 6px, #906040 6px, #906040 12px, #a07050 12px, #a07050 18px); border-radius:1px; animation: r3-books 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-lateral-position .row1 { top:13%; }
.scn-retreat-into-interior-lateral-position .row2 { top:38%; }
.scn-retreat-into-interior-lateral-position .lamp {
  position:absolute; top:3%; right:10%; width:10%; height:20%; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:40% 40% 5% 5%; box-shadow: 0 0 15px 5px rgba(200,170,100,0.5); transform-origin: bottom center; animation: r3-lamp 5s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-lateral-position .glow {
  position:absolute; top:3%; right:10%; width:10%; height:20%; background: radial-gradient(circle at 50% 30%, rgba(255,230,150,0.6) 0%, transparent 70%); filter: blur(8px); animation: r3-glow 5s ease-in-out infinite alternate;
}
@keyframes r3-books {
  0% { opacity:0.9; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.03); }
  100% { opacity:0.85; transform: scaleY(0.97); }
}
@keyframes r3-lamp {
  0% { transform: rotate(-2deg); box-shadow: 0 0 15px 5px rgba(200,170,100,0.5); }
  50% { transform: rotate(2deg); box-shadow: 0 0 25px 8px rgba(230,200,120,0.7); }
  100% { transform: rotate(-1deg); box-shadow: 0 0 12px 4px rgba(180,150,80,0.4); }
}
@keyframes r3-glow {
  0% { opacity:0.6; transform: scale(0.9); }
  50% { opacity:0.8; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.85); }
}

/* Scene 4: retreat-into-interior-change-direction */
.scn-retreat-into-interior-change-direction {
  background: 
    linear-gradient(180deg, #d4b890 0%, #b89a6a 40%, #9a7a4a 100%),
    radial-gradient(circle at 60% 30%, #e8d4a0 0%, transparent 70%);
}
.scn-retreat-into-interior-change-direction .desk {
  position:absolute; bottom:5%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #9a7a5a 0%, #705030 100%); border-radius:5%; box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
.scn-retreat-into-interior-change-direction .map {
  position:absolute; bottom:10%; left:15%; width:70%; height:30%; background: linear-gradient(135deg, #e8d090 0%, #d0b070 50%, #c0a060 100%); border:2px solid #a08040; border-radius:2%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform: rotate(-3deg); animation: r4-map 9s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-direction .compass {
  position:absolute; bottom:20%; right:15%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #c8a860 0%, #a08040 70%); border-radius:50%; border:3px solid #806030; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: r4-compass 6s linear infinite;
}
.scn-retreat-into-interior-change-direction .pointer {
  position:absolute; bottom:14%; right:32%; width:3%; height:18%; background: linear-gradient(180deg, #c04040 0%, #602020 100%); border-radius:10% 10% 40% 40%; transform-origin: bottom center; transform: rotate(-30deg); animation: r4-pointer 4s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-direction .oldpath {
  position:absolute; bottom:18%; left:20%; width:30%; height:1%; background: #705030; transform: rotate(15deg) scaleX(1); opacity:0.6; border-radius:50%; box-shadow: 0 1px 2px rgba(0,0,0,0.2); animation: r4-oldpath 8s ease-in-out infinite;
}
.scn-retreat-into-interior-change-direction .newpath {
  position:absolute; bottom:18%; left:20%; width:30%; height:1%; background: #5a3a2a; transform: rotate(-20deg) scaleX(1); opacity:0.6; border-radius:50%; box-shadow: 0 1px 2px rgba(0,0,0,0.2); animation: r4-newpath 8s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-change-direction .ink {
  position:absolute; bottom:12%; left:25%; width:5%; height:5%; background: radial-gradient(circle at 50% 50%, #403020 0%, #201810 100%); border-radius:50%; box-shadow: 0 0 4px 2px rgba(0,0,0,0.3); animation: r4-ink 3s ease-in-out infinite alternate;
}
@keyframes r4-map {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes r4-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes r4-pointer {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes r4-oldpath {
  0%,100% { opacity:0.6; transform: rotate(15deg) scaleX(1); }
  50% { opacity:0.3; transform: rotate(15deg) scaleX(0.5); }
}
@keyframes r4-newpath {
  0% { opacity:0.6; transform: rotate(-20deg) scaleX(0.5); }
  50% { opacity:0.9; transform: rotate(-20deg) scaleX(1); }
  100% { opacity:0.6; transform: rotate(-20deg) scaleX(0.7); }
}
@keyframes r4-ink {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.3); opacity:1; }
  100% { transform: scale(0.9); opacity:0.7; }
}

.scn-second-reciprocal-action {
  background: linear-gradient(180deg, #1f1610 0%, #3a2a1d 50%, #2e1f16 100%), radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-second-reciprocal-action .bg {
  position:absolute;inset:0;background:linear-gradient(180deg, #2f2218 0%, #1f1610 100%);animation:sra-bg 20s ease infinite alternate;
}
.scn-second-reciprocal-action .floor {
  position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(180deg, #2f1f12 0%, #1a1008 100%);border-radius:0;box-shadow:inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-second-reciprocal-action .table {
  position:absolute;bottom:20%;left:50%;width:60%;height:8%;transform:translateX(-50%);background:linear-gradient(180deg, #5a4028 0%, #3b2818 100%);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.5);animation:sra-table 12s ease-in-out infinite;
}
.scn-second-reciprocal-action .candle {
  position:absolute;bottom:30%;left:50%;width:8px;height:20px;transform:translateX(-50%);background:linear-gradient(180deg, #f0c8a0 0%, #8a5a3a 100%);border-radius:4px 4px 2px 2px;box-shadow:0 0 20px 6px rgba(240,200,160,.5),0 0 40px 12px rgba(240,200,160,.3);animation:sra-candle 3s ease-in-out infinite alternate;
}
.scn-second-reciprocal-action .figure {
  position:absolute;bottom:18%;width:24px;height:50px;background:linear-gradient(180deg, #1a1410 0%, #0c0907 100%);border-radius:50% 50% 40% 40% / 60% 60% 35% 35%;transform-origin:bottom center;
}
.scn-second-reciprocal-action .figure-left {
  left:30%;animation:sra-figure-left 8s ease-in-out infinite alternate;
}
.scn-second-reciprocal-action .figure-right {
  right:30%;animation:sra-figure-right 8s ease-in-out infinite alternate;
}
@keyframes sra-bg { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes sra-table { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-1px)} }
@keyframes sra-candle { 0%{opacity:.85;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.02)} 100%{opacity:.9;transform:translateX(-50%) scaleY(.98)} }
@keyframes sra-figure-left { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 50%{transform:translateX(12px) translateY(-1px) rotate(1deg)} 100%{transform:translateX(0) translateY(0) rotate(-1deg)} }
@keyframes sra-figure-right { 0%{transform:translateX(0) translateY(0) rotate(1deg)} 50%{transform:translateX(-12px) translateY(-1px) rotate(-1deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }

.scn-proportion-efforts-to-resistance {
  background: linear-gradient(180deg, #1e1612 0%, #33251c 40%, #2a1e17 100%), radial-gradient(ellipse at 50% 80%, #3a2a1d 0%, transparent 80%);
}
.scn-proportion-efforts-to-resistance .bg {
  position:absolute;inset:0;background:linear-gradient(180deg, #2a1e17 0%, #1a120e 100%);animation:per-bg 24s ease infinite alternate;
}
.scn-proportion-efforts-to-resistance .desk {
  position:absolute;bottom:15%;left:20%;right:20%;height:10%;background:linear-gradient(180deg, #4a3520 0%, #2f1f12 100%);border-radius:6px 6px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,.4);animation:per-desk 15s ease-in-out infinite;
}
.scn-proportion-efforts-to-resistance .book {
  position:absolute;bottom:22%;left:35%;width:45px;height:30px;background:linear-gradient(135deg, #6a5038 0%, #3a2818 100%);border-radius:2px;box-shadow:2px 4px 8px rgba(0,0,0,.5);transform:rotate(-5deg);animation:per-book 10s ease-in-out infinite alternate;
}
.scn-proportion-efforts-to-resistance .candle {
  position:absolute;bottom:23%;left:50%;width:8px;height:18px;transform:translateX(-50%);background:linear-gradient(180deg, #f5d6b0 0%, #8a5a3a 100%);border-radius:4px 4px 2px 2px;box-shadow:0 0 20px 6px rgba(245,214,176,.5),0 0 40px 12px rgba(245,214,176,.3);animation:per-candle 3.5s ease-in-out infinite alternate;
}
.scn-proportion-efforts-to-resistance .scale-base {
  position:absolute;bottom:24%;left:60%;width:30px;height:4px;background:#4a3520;transform:translateX(-50%);border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.5);animation:per-scale 12s ease-in-out infinite;
}
.scn-proportion-efforts-to-resistance .pan {
  position:absolute;top:auto;bottom:23%;width:18px;height:8px;background:linear-gradient(180deg, #5a4028 0%, #3a2818 100%);border-radius:50% 50% 20% 20%;transform-origin:bottom center;
}
.scn-proportion-efforts-to-resistance .pan-left {
  left:55%;animation:per-pan-left 8s ease-in-out infinite alternate;
}
.scn-proportion-efforts-to-resistance .pan-right {
  right:55%;animation:per-pan-right 8s ease-in-out infinite alternate;
}
@keyframes per-bg { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.75} }
@keyframes per-desk { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes per-book { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-4deg) translateY(-1px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes per-candle { 0%{opacity:.8;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.03)} 100%{opacity:.85;transform:translateX(-50%) scaleY(.97)} }
@keyframes per-scale { 0%,100%{transform:translateX(-50%) rotate(0)} 50%{transform:translateX(-50%) rotate(2deg)} }
@keyframes per-pan-left { 0%{transform:translateY(0)} 50%{transform:translateY(2px)} 100%{transform:translateY(0)} }
@keyframes per-pan-right { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }

.scn-third-reciprocal-action-extreme {
  background: linear-gradient(180deg, #1d1410 0%, #301f16 50%, #261810 100%), radial-gradient(ellipse at 60% 70%, #3a2818 0%, transparent 70%);
}
.scn-third-reciprocal-action-extreme .bg {
  position:absolute;inset:0;background:linear-gradient(180deg, #261810 0%, #140e0a 100%);animation:tre-bg 18s ease infinite alternate;
}
.scn-third-reciprocal-action-extreme .table {
  position:absolute;bottom:12%;left:15%;right:15%;height:12%;background:linear-gradient(180deg, #4a3520 0%, #2f1f12 100%);border-radius:4px;box-shadow:0 -4px 12px rgba(0,0,0,.5);animation:tre-table 14s ease-in-out infinite;
}
.scn-third-reciprocal-action-extreme .map {
  position:absolute;bottom:20%;left:25%;width:40%;height:14%;background:linear-gradient(135deg, #6b5038 0%, #4a3520 40%, #3a2818 100%);border-radius:2px;box-shadow:0 4px 8px rgba(0,0,0,.6);transform:rotate(3deg);border:1px solid #5a4028;animation:tre-map 20s ease-in-out infinite alternate;
}
.scn-third-reciprocal-action-extreme .lantern {
  position:absolute;bottom:30%;left:60%;width:14px;height:18px;background:linear-gradient(180deg, #e0b080 0%, #8a5a3a 100%);border-radius:4px 4px 6px 6px;box-shadow:0 0 30px 10px rgba(224,176,128,.6),0 0 60px 20px rgba(224,176,128,.3);transform:rotate(5deg);animation:tre-lantern 4s ease-in-out infinite alternate;
}
.scn-third-reciprocal-action-extreme .hand {
  position:absolute;bottom:18%;left:38%;width:16px;height:28px;background:linear-gradient(180deg, #1a1410 0%, #0c0907 100%);border-radius:50% 50% 40% 40% / 60% 50% 30% 30%;transform-origin:bottom center;animation:tre-hand 10s ease-in-out infinite alternate;
}
.scn-third-reciprocal-action-extreme .token {
  position:absolute;bottom:20%;width:12px;height:12px;background:radial-gradient(circle, #c49a3a 0%, #7a5a1a 100%);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.4);
}
.scn-third-reciprocal-action-extreme .token1 {
  left:40%;animation:tre-token1 15s ease-in-out infinite alternate;
}
.scn-third-reciprocal-action-extreme .token2 {
  left:55%;animation:tre-token2 18s ease-in-out infinite alternate;
}
@keyframes tre-bg { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes tre-table { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes tre-map { 0%{transform:rotate(3deg) translateY(0)} 50%{transform:rotate(2deg) translateY(-1px)} 100%{transform:rotate(3deg) translateY(0)} }
@keyframes tre-lantern { 0%{opacity:.85;transform:rotate(5deg) scale(1)} 50%{opacity:1;transform:rotate(4deg) scale(1.02)} 100%{opacity:.9;transform:rotate(5deg) scale(.98)} }
@keyframes tre-hand { 0%{transform:translateX(0) translateY(0) rotate(0)} 30%{transform:translateX(4px) translateY(-2px) rotate(5deg)} 70%{transform:translateX(-2px) translateY(-1px) rotate(-2deg)} 100%{transform:translateX(0) translateY(0) rotate(0)} }
@keyframes tre-token1 { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.05)} 100%{transform:translateY(0) scale(1)} }
@keyframes tre-token2 { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(2px) scale(.95)} 100%{transform:translateY(0) scale(1)} }

.scn-abstract-extreme-paper-law {
  background: linear-gradient(180deg, #16100c 0%, #2a1d15 40%, #1f1510 100%), radial-gradient(ellipse at 40% 70%, #3a2818 0%, transparent 80%);
}
.scn-abstract-extreme-paper-law .bg {
  position:absolute;inset:0;background:linear-gradient(180deg, #1f1510 0%, #110b08 100%);animation:ael-bg 22s ease infinite alternate;
}
.scn-abstract-extreme-paper-law .wall {
  position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg, #2a1d15 0%, #1f1510 100%);box-shadow:inset 0 0 40px rgba(0,0,0,.5);
}
.scn-abstract-extreme-paper-law .window {
  position:absolute;top:12%;left:55%;width:50px;height:60px;background:linear-gradient(135deg, #4a5a6a 0%, #2a3a4a 100%);border-radius:4px;box-shadow:inset 0 0 20px rgba(0,0,0,.4),0 0 30px rgba(74,90,106,.2);transform:rotate(-2deg);animation:ael-window 30s ease-in-out infinite alternate;
}
.scn-abstract-extreme-paper-law .desk {
  position:absolute;bottom:15%;left:12%;right:12%;height:14%;background:linear-gradient(180deg, #4a3520 0%, #2f1f12 100%);border-radius:4px 4px 0 0;box-shadow:0 -6px 12px rgba(0,0,0,.5);animation:ael-desk 16s ease-in-out infinite;
}
.scn-abstract-extreme-paper-law .papers {
  position:absolute;bottom:25%;left:25%;width:30%;height:12%;background:linear-gradient(135deg, #7a5a3a 0%, #5a4028 50%, #4a3520 100%);border-radius:2px;box-shadow:2px 3px 8px rgba(0,0,0,.6);transform:rotate(2deg);animation:ael-papers 14s ease-in-out infinite alternate;
}
.scn-abstract-extreme-paper-law .candle {
  position:absolute;bottom:26%;left:35%;width:8px;height:20px;transform:translateX(-50%);background:linear-gradient(180deg, #f5d6b0 0%, #8a5a3a 100%);border-radius:4px 4px 2px 2px;box-shadow:0 0 20px 6px rgba(245,214,176,.5),0 0 40px 12px rgba(245,214,176,.3);animation:ael-candle 4s ease-in-out infinite alternate;
}
.scn-abstract-extreme-paper-law .figure {
  position:absolute;bottom:14%;left:15%;width:30px;height:60px;background:linear-gradient(180deg, #1a1410 0%, #0c0907 100%);border-radius:50% 50% 40% 40% / 60% 60% 35% 35%;transform-origin:bottom center;box-shadow:0 0 20px rgba(0,0,0,.5);animation:ael-figure 12s ease-in-out infinite alternate;
}
@keyframes ael-bg { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.75} }
@keyframes ael-window { 0%{opacity:.4;box-shadow:0 0 20px rgba(74,90,106,.1)} 50%{opacity:.6;box-shadow:0 0 40px rgba(74,90,106,.2)} 100%{opacity:.5;box-shadow:0 0 30px rgba(74,90,106,.15)} }
@keyframes ael-desk { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes ael-papers { 0%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(1deg) translateY(-1px)} 100%{transform:rotate(2deg) translateY(0)} }
@keyframes ael-candle { 0%{opacity:.85;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.02)} 100%{opacity:.9;transform:translateX(-50%) scaleY(.98)} }
@keyframes ael-figure { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(0)} 100%{transform:translateY(0) rotate(2deg)} }

/* defence-mountains-conquest-conclusion */
.scn-defence-mountains-conquest-conclusion {
  background: linear-gradient(170deg, #f5e6c8 0%, #e8d5a8 40%, #d4b880 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-defence-mountains-conquest-conclusion .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e8d5a8 0%, #dac29c 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-defence-mountains-conquest-conclusion .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #6b4c2a 0%, #4f351a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.3);
}
.scn-defence-mountains-conquest-conclusion .map {
  position: absolute; bottom: 15%; left: 20%; width: 55%; height: 25%;
  background: linear-gradient(135deg, #dcc9a0 0%, #c2ad80 50%, #a89464 100%);
  border-radius: 4% 8% 2% 6%;
  transform: skewY(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: conq-map 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-conquest-conclusion .candle {
  position: absolute; bottom: 30%; right: 22%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #f0d090 0%, #c09060 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
}
.scn-defence-mountains-conquest-conclusion .hand {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #b89878 0%, #8a6e54 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: conq-hand 5s ease-in-out infinite alternate;
}
.scn-defence-mountains-conquest-conclusion .candle-glow {
  position: absolute; bottom: 38%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe68a 0%, #ffcc66 30%, transparent 70%);
  border-radius: 50%;
  animation: conq-glow 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-conquest-conclusion .mount-painting {
  position: absolute; top: 8%; left: 15%; width: 65%; height: 45%;
  background: linear-gradient(180deg, #a7b8c0 0%, #758594 100%);
  border-radius: 6% 6% 12% 12%;
  box-shadow: inset 0 0 0 6px #c0a070;
  clip-path: polygon(0 8%, 100% 0, 100% 92%, 0 100%);
}
.scn-defence-mountains-conquest-conclusion .shadow-drape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%);
  animation: conq-drape 8s ease-in-out infinite alternate;
}
@keyframes conq-map {
  0% { transform: skewY(2deg) scale(1); }
  50% { transform: skewY(0deg) scale(1.02); }
  100% { transform: skewY(-1deg) scale(1); }
}
@keyframes conq-hand {
  0% { transform: rotate(0deg) translate(0,0); }
  50% { transform: rotate(8deg) translate(4px, -2px); }
  100% { transform: rotate(-2deg) translate(0,0); }
}
@keyframes conq-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes conq-drape {
  0% { opacity: 0; }
  100% { opacity: 0.8; }
}

/* defence-mountains-optical-analogy */
.scn-defence-mountains-optical-analogy {
  background: linear-gradient(180deg, #ece3d0 0%, #d9cbb0 40%, #c0ad8b 100%),
              radial-gradient(ellipse at 35% 60%, #fff8e8 0%, transparent 60%);
}
.scn-defence-mountains-optical-analogy .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5e3e20 0%, #3d2b14 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.35);
}
.scn-defence-mountains-optical-analogy .telescope {
  position: absolute; bottom: 22%; left: 20%; width: 10px; height: 50px;
  background: linear-gradient(135deg, #8a7a50 0%, #5c4e30 100%);
  border-radius: 6px;
  transform: rotate(30deg);
  transform-origin: 50% 100%;
  animation: opt-scope 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-optical-analogy .book {
  position: absolute; bottom: 20%; right: 15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #705030 0%, #50381e 100%);
  border-radius: 4px 8px 8px 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: opt-book 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-optical-analogy .compass {
  position: absolute; bottom: 28%; left: 42%; width: 28px; height: 28px;
  background: linear-gradient(145deg, #c8a868 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 3px #705030;
  animation: opt-compass 18s linear infinite;
}
.scn-defence-mountains-optical-analogy .window-frame {
  position: absolute; top: 4%; left: 18%; width: 60%; height: 50%;
  border: 6px solid #5a3a18;
  border-radius: 4px;
  background: linear-gradient(180deg, #b8d0e0 0%, #9aaec0 100%);
  box-shadow: inset 0 0 20px rgba(255,255,220,.3);
}
.scn-defence-mountains-optical-analogy .mountain-view {
  position: absolute; top: 6%; left: 20%; width: 56%; height: 46%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  clip-path: polygon(0 65%, 20% 20%, 40% 45%, 60% 10%, 80% 35%, 100% 65%, 100% 100%, 0 100%);
  opacity: 0.7;
  animation: opt-mount 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-optical-analogy .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%);
}
.scn-defence-mountains-optical-analogy .lens-glow {
  position: absolute; bottom: 30%; left: 24%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8b0 40%, transparent 70%);
  border-radius: 50%;
  animation: opt-lens 7s ease-in-out infinite alternate;
}
@keyframes opt-scope {
  0% { transform: rotate(28deg) scaleY(1); }
  50% { transform: rotate(35deg) scaleY(1.05); }
  100% { transform: rotate(30deg) scaleY(1); }
}
@keyframes opt-book {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes opt-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes opt-mount {
  0% { opacity: 0.6; filter: blur(0px); }
  50% { opacity: 0.8; filter: blur(1px); }
  100% { opacity: 0.7; filter: blur(0px); }
}
@keyframes opt-lens {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

/* defence-mountains-continued-intro */
.scn-defence-mountains-continued-intro {
  background: linear-gradient(180deg, #efe3cc 0%, #dccbac 40%, #c8b08a 100%),
              radial-gradient(ellipse at 80% 30%, #fff4d0 0%, transparent 50%);
}
.scn-defence-mountains-continued-intro .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #4a3018 0%, #2c1c0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.3);
}
.scn-defence-mountains-continued-intro .book-left {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 38px;
  background: linear-gradient(180deg, #7a5a38 0%, #5a3e20 100%);
  border-radius: 6px 4px 4px 6px;
  transform: rotate(-8deg);
  box-shadow: 3px 2px 8px rgba(0,0,0,.3);
  animation: cont-book-l 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-continued-intro .book-right {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a4e2e 0%, #4a3220 100%);
  border-radius: 4px 6px 6px 4px;
  transform: rotate(8deg);
  box-shadow: -2px 2px 6px rgba(0,0,0,.25);
  animation: cont-book-r 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-continued-intro .quill {
  position: absolute; bottom: 30%; right: 30%; width: 6px; height: 50px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  transform-origin: 50% 100%;
  animation: cont-quill 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-continued-intro .inkwell {
  position: absolute; bottom: 26%; right: 22%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-defence-mountains-continued-intro .lamp {
  position: absolute; bottom: 36%; left: 12%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080;
  animation: cont-lamp 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-continued-intro .lamp-glow {
  position: absolute; bottom: 40%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe8b0 0%, #ffd080 30%, transparent 70%);
  border-radius: 50%;
  animation: cont-glow 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-continued-intro .bookshelf {
  position: absolute; top: 0; right: 0; width: 25%; height: 60%;
  background: linear-gradient(180deg, #3a2816 0%, #221408 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
@keyframes cont-book-l {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes cont-book-r {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes cont-quill {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.05); }
  100% { transform: rotate(-15deg) scaleY(1); }
}
@keyframes cont-lamp {
  0% { box-shadow: 0 0 20px 6px #ffd080; }
  50% { box-shadow: 0 0 30px 10px #ffe090; }
  100% { box-shadow: 0 0 20px 6px #ffd080; }
}
@keyframes cont-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* defence-mountains-geological-theory */
.scn-defence-mountains-geological-theory {
  background: linear-gradient(180deg, #e3d3b5 0%, #d0be9a 40%, #b8a47e 100%),
              radial-gradient(ellipse at 60% 40%, #fff8dc 0%, transparent 55%);
}
.scn-defence-mountains-geological-theory .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #5a3a1c 0%, #3a2210 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -8px 25px rgba(0,0,0,.3);
}
.scn-defence-mountains-geological-theory .cross-section {
  position: absolute; top: 8%; left: 8%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #a08050 0%, #806030 25%, #604020 50%, #403010 75%, #201808 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 80% 100%, 60% 85%, 40% 100%, 20% 80%, 0 100%);
  border: 2px solid #503818;
  border-radius: 4px;
  animation: geol-section 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-geological-theory .sample1 {
  position: absolute; bottom: 18%; left: 54%; width: 18px; height: 22px;
  background: linear-gradient(135deg, #705038 0%, #4a3020 100%);
  border-radius: 20% 30% 10% 40%;
  transform: rotate(15deg);
  box-shadow: 1px 2px 4px rgba(0,0,0,.4);
  animation: geol-rock1 9s ease-in-out infinite alternate;
}
.scn-defence-mountains-geological-theory .sample2 {
  position: absolute; bottom: 22%; left: 64%; width: 14px; height: 16px;
  background: linear-gradient(145deg, #907860 0%, #685040 100%);
  border-radius: 30% 10% 40% 20%;
  transform: rotate(-10deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,.3);
  animation: geol-rock2 11s ease-in-out infinite alternate;
}
.scn-defence-mountains-geological-theory .hammer {
  position: absolute; bottom: 16%; right: 12%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #705030 0%, #503820 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(25deg);
  transform-origin: 50% 80%;
  animation: geol-hammer 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-geological-theory .magnifier {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 30px;
  background: linear-gradient(145deg, #c0a070 0%, #a08050 100%);
  border-radius: 50%;
  border: 4px solid #705030;
  box-shadow: 0 0 12px 4px rgba(200,180,140,.3);
  animation: geol-magn 14s linear infinite;
}
.scn-defence-mountains-geological-theory .shelf {
  position: absolute; top: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #4a3010 0%, #281808 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
}
.scn-defence-mountains-geological-theory .window-light {
  position: absolute; top: 18%; left: 35%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,220,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: geol-light 8s ease-in-out infinite alternate;
}
@keyframes geol-section {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes geol-rock1 {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(18deg) scale(1.02); }
  100% { transform: rotate(12deg) scale(1); }
}
@keyframes geol-rock2 {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.03); }
  100% { transform: rotate(-12deg) scale(1); }
}
@keyframes geol-hammer {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
  100% { transform: rotate(25deg) translateY(0); }
}
@keyframes geol-magn {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes geol-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.35; }
}

/* theory-clears-up-conceptions */
.scn-theory-clears-up-conceptions {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-theory-clears-up-conceptions .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(60,40,20,.4) 0%, transparent 60%);
  animation: tcu-wall 12s ease-in-out infinite alternate;
}
.scn-theory-clears-up-conceptions .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: tcu-desk 9s ease-in-out infinite;
}
.scn-theory-clears-up-conceptions .book-open {
  position: absolute; bottom: 22%; left: 35%; width: 22%; height: 16%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 50%, #5a3a1a 100%);
  border-radius: 4px 8px 8px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tcu-book 14s ease-in-out infinite;
}
.scn-theory-clears-up-conceptions .candle {
  position: absolute; bottom: 38%; left: 55%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: tcu-candle 3s ease-in-out infinite alternate;
}
.scn-theory-clears-up-conceptions .candle-glow {
  position: absolute; bottom: 42%; left: 53%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tcu-glow 2.5s ease-in-out infinite alternate;
}
.scn-theory-clears-up-conceptions .quill {
  position: absolute; bottom: 25%; left: 30%; width: 1.5%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 0 80% 80% 0;
  transform-origin: 50% 100%;
  animation: tcu-quill 8s ease-in-out infinite;
}
.scn-theory-clears-up-conceptions .inkwell {
  position: absolute; bottom: 28%; left: 68%; width: 4%; height: 4%;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: tcu-ink 6s ease-in-out infinite alternate;
}
@keyframes tcu-wall { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes tcu-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tcu-book { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes tcu-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(.95) rotate(-1deg); } }
@keyframes tcu-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .8; transform: scale(.9); } }
@keyframes tcu-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes tcu-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* opponent-of-theory-confused */
.scn-opponent-of-theory-confused {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a1008 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-opponent-of-theory-confused .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #221410 0%, transparent 50%);
  animation: otc-bg 15s ease-in-out infinite alternate;
}
.scn-opponent-of-theory-confused .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1808 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.6);
  animation: otc-desk 10s ease-in-out infinite;
}
.scn-opponent-of-theory-confused .figure {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otc-figure 6s ease-in-out infinite;
}
.scn-opponent-of-theory-confused .paper {
  position: absolute; bottom: 20%; 
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-opponent-of-theory-confused .paper-1 { left: 20%; width: 15%; height: 12%; animation: otc-paper1 9s ease-in-out infinite; }
.scn-opponent-of-theory-confused .paper-2 { left: 65%; width: 18%; height: 10%; animation: otc-paper2 11s ease-in-out infinite; }
.scn-opponent-of-theory-confused .paper-3 { left: 40%; width: 12%; height: 8%; animation: otc-paper3 7s ease-in-out infinite; }
.scn-opponent-of-theory-confused .lamp {
  position: absolute; bottom: 35%; left: 25%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: otc-lamp 4s ease-in-out infinite alternate;
}
.scn-opponent-of-theory-confused .lamp-glow {
  position: absolute; bottom: 36%; left: 22%; width: 10%; height: 15%;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: otc-lampglow 3s ease-in-out infinite alternate;
}
@keyframes otc-bg { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }
@keyframes otc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes otc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes otc-paper1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes otc-paper2 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes otc-paper3 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-6px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes otc-lamp { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(.95); opacity: .9; } }
@keyframes otc-lampglow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: .7; transform: scale(.9); } }

/* on-the-theory-of-war-chapter */
.scn-on-the-theory-of-war-chapter {
  background: 
    linear-gradient(180deg, #1a1a08 0%, #12100a 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a08 0%, transparent 60%);
}
.scn-on-the-theory-of-war-chapter .bg-shelf {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30%, rgba(80,60,30,.2) 30%, rgba(80,60,30,.2) 32%);
  animation: ont-shelf 20s linear infinite;
}
.scn-on-the-theory-of-war-chapter .lectern {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: ont-lectern 12s ease-in-out infinite;
}
.scn-on-the-theory-of-war-chapter .book-left,
.scn-on-the-theory-of-war-chapter .book-right {
  position: absolute; bottom: 30%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #a08050 0%, #7a6038 100%);
  border-radius: 90% 0 0 90% / 50%;
  transform-origin: right center;
}
.scn-on-the-theory-of-war-chapter .book-left {
  left: 38%;
  animation: ont-bookleft 16s ease-in-out infinite;
}
.scn-on-the-theory-of-war-chapter .book-right {
  left: 52%;
  border-radius: 0 90% 90% 0 / 50%;
  transform-origin: left center;
  animation: ont-bookright 16s ease-in-out infinite;
}
.scn-on-the-theory-of-war-chapter .lamp {
  position: absolute; bottom: 55%; left: 25%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 10%;
  animation: ont-lamp 4s ease-in-out infinite alternate;
}
.scn-on-the-theory-of-war-chapter .globe {
  position: absolute; bottom: 18%; right: 20%; width: 10%; height: 10%;
  background: radial-gradient(circle at 40% 40%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.4);
  animation: ont-globe 20s linear infinite;
}
.scn-on-the-theory-of-war-chapter .globe-stand {
  position: absolute; bottom: 16%; right: 23%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: ont-stand 12s ease-in-out infinite;
}
@keyframes ont-shelf { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .3; } }
@keyframes ont-lectern { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ont-bookleft { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-10deg); } 100% { transform: rotateY(0deg); } }
@keyframes ont-bookright { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(10deg); } 100% { transform: rotateY(0deg); } }
@keyframes ont-lamp { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(.9); opacity: .9; } }
@keyframes ont-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ont-stand { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* true-war-first-appears-in-sieges */
.scn-true-war-first-appears-in-sieges {
  background: 
    linear-gradient(180deg, #1a1208 0%, #0f0a04 100%),
    radial-gradient(ellipse at 50% 90%, #2a1a0a 0%, transparent 70%);
}
.scn-true-war-first-appears-in-sieges .bg-maproom {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,30,15,.6) 0%, transparent 40%);
  animation: tws-wall 14s ease-in-out infinite alternate;
}
.scn-true-war-first-appears-in-sieges .table {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1808 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.5);
  animation: tws-table 10s ease-in-out infinite;
}
.scn-true-war-first-appears-in-sieges .map {
  position: absolute; bottom: 20%; left: 15%; width: 35%; height: 18%;
  background: linear-gradient(135deg, #c8a880 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: tws-map 18s ease-in-out infinite;
}
.scn-true-war-first-appears-in-sieges .tower {
  position: absolute; bottom: 18%; right: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,.4);
  animation: tws-tower 8s ease-in-out infinite alternate;
}
.scn-true-war-first-appears-in-sieges .cannon {
  position: absolute; bottom: 22%; right: 38%; width: 8%; height: 4%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: left center;
  animation: tws-cannon 7s ease-in-out infinite;
}
.scn-true-war-first-appears-in-sieges .candle {
  position: absolute; bottom: 38%; left: 40%; width: 1.5%; height: 10%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 100%);
  border-radius: 3px;
  animation: tws-candle 3.5s ease-in-out infinite alternate;
}
.scn-true-war-first-appears-in-sieges .candle-glow {
  position: absolute; bottom: 40%; left: 38%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tws-glow 3s ease-in-out infinite alternate;
}
@keyframes tws-wall { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .4; } }
@keyframes tws-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tws-map { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes tws-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tws-cannon { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes tws-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(.9) rotate(-2deg); } }
@keyframes tws-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: .8; transform: scale(.9); } }

.scn-defence-mountains-no-great-battle {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #a0866a 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-defence-mountains-no-great-battle .wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a080 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-defence-mountains-no-great-battle .window {
  position: absolute; top: 6%; left: 55%; width: 40%; height: 36%;
  background: linear-gradient(180deg, #e8f0ff 0%, #c0d0f0 100%);
  border: 8px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
  animation: dm1-window 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-great-battle .mountains-outside {
  position: absolute; top: 8%; left: 57%; width: 36%; height: 30%;
  background: 
    linear-gradient(180deg, #4a6741 0%, #3a5431 40%, #2a4020 100%);
  clip-path: polygon(0% 40%, 15% 10%, 30% 30%, 45% 0%, 60% 15%, 80% 5%, 100% 35%, 100% 100%, 0% 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  filter: blur(1px);
  animation: dm1-mountains 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-great-battle .table {
  position: absolute; bottom: 8%; left: 10%; width: 50%; height: 30%;
  background: linear-gradient(135deg, #8b7355 0%, #6a5a42 100%);
  border-radius: 6px;
  transform: perspective(400px) rotateX(15deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: dm1-table 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-great-battle .map {
  position: absolute; bottom: 12%; left: 14%; width: 36%; height: 20%;
  background: linear-gradient(45deg, #d4c090 0%, #c0a880 30%, #e0c8a0 60%, #b89870 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(10deg) scale(0.9);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: dm1-map 9s ease-in-out infinite;
}
.scn-defence-mountains-no-great-battle .lantern {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #c08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,0.6), 0 0 80px 20px rgba(255,200,100,0.2);
  animation: dm1-lantern 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-no-great-battle .figure-sitting {
  position: absolute; bottom: 14%; left: 8%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dm1-figure 4s ease-in-out infinite;
}
@keyframes dm1-window {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes dm1-mountains {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { translate: translateY(0); }
}
@keyframes dm1-table {
  0% { transform: perspective(400px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(15deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(15deg) translateY(0); }
}
@keyframes dm1-map {
  0% { transform: perspective(300px) rotateX(10deg) scale(0.9); }
  50% { transform: perspective(300px) rotateX(10deg) scale(0.95); }
  100% { transform: perspective(300px) rotateX(10deg) scale(0.9); }
}
@keyframes dm1-lantern {
  0% { box-shadow: 0 0 30px 8px rgba(255,200,100,0.5), 0 0 60px 15px rgba(255,200,100,0.15); }
  50% { box-shadow: 0 0 50px 12px rgba(255,200,100,0.8), 0 0 100px 25px rgba(255,200,100,0.3); }
  100% { box-shadow: 0 0 35px 9px rgba(255,200,100,0.6), 0 0 70px 18px rgba(255,200,100,0.2); }
}
@keyframes dm1-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-defence-mountains-influence-other-parts {
  background:
    linear-gradient(180deg, #d4e4f0 0%, #a0b8d0 50%, #7088a8 100%),
    radial-gradient(ellipse at 50% 30%, #f0f8ff 0%, transparent 60%);
}
.scn-defence-mountains-influence-other-parts .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8e0 0%, #d0e0f0 60%, transparent 100%);
  animation: dm2-sky 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-influence-other-parts .distant-mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #506070 0%, #304050 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  filter: blur(2px);
  animation: dm2-mountains 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-influence-other-parts .ridge {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: dm2-ridge 12s ease-in-out infinite;
}
.scn-defence-mountains-influence-other-parts .railing {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 4px;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 -10px 0 #4a3a2a, 0 10px 0 #4a3a2a; /* implied rails */
}
.scn-defence-mountains-influence-other-parts .spyglass {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 14px;
  background: linear-gradient(90deg, #8a7a5a, #b09870, #8a7a5a);
  border-radius: 50%; 
  transform: rotate(-15deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: dm2-spyglass 5s ease-in-out infinite alternate;
}
.scn-defence-mountains-influence-other-parts .figure-looking {
  position: absolute; bottom: 18%; left: 34%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dm2-figure 4s ease-in-out infinite;
}
@keyframes dm2-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes dm2-mountains {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes dm2-ridge {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes dm2-spyglass {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes dm2-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-defence-mountains-possession-change {
  background:
    linear-gradient(180deg, #d0c8b0 0%, #b8a890 40%, #9a8868 100%),
    radial-gradient(ellipse at 30% 60%, #f0e8d0 0%, transparent 60%);
}
.scn-defence-mountains-possession-change .map-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-defence-mountains-possession-change .map-table {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 8px;
  transform: perspective(500px) rotateX(20deg);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  animation: dm3-table 7s ease-in-out infinite alternate;
}
.scn-defence-mountains-possession-change .big-map {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 35%;
  background: linear-gradient(45deg, #d0b890 0%, #c0a880 30%, #e0c8a0 60%, #b89870 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(15deg) scale(0.95);
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  animation: dm3-map 10s ease-in-out infinite;
}
.scn-defence-mountains-possession-change .markers {
  position: absolute; bottom: 18%; left: 15%; width: 8px; height: 12px;
  background: #c04040; /* desaturated red – rust */
  border-radius: 50% 50% 20% 20%;
  box-shadow: 10px 0 0 #4a6a3a, 20px -5px 0 #6a5a4a, 35px 2px 0 #5a3a2a;
  animation: dm3-markers 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-possession-change .lamp {
  position: absolute; bottom: 45%; left: 75%; width: 22px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #c08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(255,200,100,0.5), 0 0 80px 20px rgba(255,200,100,0.2);
  animation: dm3-lamp 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-possession-change .chair {
  position: absolute; bottom: 6%; left: 70%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: dm3-chair 6s ease-in-out infinite;
}
.scn-defence-mountains-possession-change .officer {
  position: absolute; bottom: 14%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dm3-officer 4s ease-in-out infinite;
}
@keyframes dm3-table {
  0% { transform: perspective(500px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(20deg) translateY(-2px); }
  100% { transform: perspective(500px) rotateX(20deg) translateY(0); }
}
@keyframes dm3-map {
  0% { transform: perspective(400px) rotateX(15deg) scale(0.95); }
  50% { transform: perspective(400px) rotateX(15deg) scale(1); }
  100% { transform: perspective(400px) rotateX(15deg) scale(0.95); }
}
@keyframes dm3-markers {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dm3-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(255,200,100,0.4), 0 0 60px 15px rgba(255,200,100,0.15); }
  50% { box-shadow: 0 0 50px 12px rgba(255,200,100,0.7), 0 0 100px 25px rgba(255,200,100,0.3); }
  100% { box-shadow: 0 0 35px 9px rgba(255,200,100,0.5), 0 0 70px 18px rgba(255,200,100,0.2); }
}
@keyframes dm3-chair {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dm3-officer {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0); }
}

.scn-defence-mountains-independence {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 50%, #3a4a5a 0%, transparent 80%);
}
.scn-defence-mountains-independence .cave-ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: dm4-ceiling 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-independence .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: dm4-floor 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-independence .person-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 52px;
  background: #0a0a1a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dm4-person 5s ease-in-out infinite;
}
.scn-defence-mountains-independence .fog-layer-1 {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(180,200,220,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: dm4-fog1 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-independence .fog-layer-2 {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, rgba(140,170,200,0.15) 0%, transparent 100%);
  filter: blur(15px);
  animation: dm4-fog2 25s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-independence .mountain-silhouette {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  clip-path: polygon(0% 60%, 20% 20%, 40% 40%, 60% 10%, 80% 30%, 100% 50%, 100% 100%, 0% 100%);
  border-radius: 0 0 40% 40% / 0 0 50% 50%;
  filter: blur(2px);
  animation: dm4-mountains 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-independence .light-beam {
  position: absolute; top: 20%; left: 25%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(255,240,200,0) 100%);
  filter: blur(8px);
  transform: skewX(-10deg);
  animation: dm4-beam 8s ease-in-out infinite alternate;
}
@keyframes dm4-ceiling {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes dm4-floor {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes dm4-person {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dm4-fog1 {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(-10px) scaleY(1.1); opacity: 0.5; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.3; }
}
@keyframes dm4-fog2 {
  0% { transform: translateX(0) scaleY(1); opacity: 0.2; }
  50% { transform: translateX(15px) scaleY(1.2); opacity: 0.4; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.2; }
}
@keyframes dm4-mountains {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.02); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes dm4-beam {
  0% { opacity: 0.3; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 0.6; transform: skewX(-10deg) scaleY(1.1); }
  100% { opacity: 0.3; transform: skewX(-10deg) scaleY(1); }
}

/* Scene 1: equilibrium-slow-disturbance */
.scn-equilibrium-slow-disturbance {
  background: 
    linear-gradient(180deg, #1e1a14 0%, #2a241e 40%, #3a3128 70%, #1e1a14 100%),
    radial-gradient(ellipse at 70% 60%, #4a3d32 0%, transparent 70%);
}
.scn-equilibrium-slow-disturbance .tent-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a3128 0%, #2a241e 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  animation: eqs-wall 20s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #3d352b 0%, #2d261f 100%);
  border-radius: 8px; box-shadow: 0 -4px 16px rgba(0,0,0,.6);
}
.scn-equilibrium-slow-disturbance .scale-scale {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6d5a47 0%, #4a3d32 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: eqs-scale 12s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .scale-pan-left {
  position: absolute; bottom: 31%; left: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #8a7760 0%, #5a4d3c 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: right center;
  animation: eqs-pan-left 12s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .scale-pan-right {
  position: absolute; bottom: 31%; right: 40%; width: 50px; height: 12px;
  background: linear-gradient(180deg, #8a7760 0%, #5a4d3c 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: eqs-pan-right 12s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .candle-glow {
  position: absolute; bottom: 26%; right: 20%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #ffd580 0%, #e8a860 40%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #d4944a, 0 0 60px 16px rgba(212,148,74,.3);
  animation: eqs-candle 4s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .figure-silhouette {
  position: absolute; bottom: 22%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eqs-figure 8s ease-in-out infinite alternate;
}
.scn-equilibrium-slow-disturbance .shadow-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
}
@keyframes eqs-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes eqs-scale { 0% { transform: translateX(-50%) rotate(-4deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(4deg) } }
@keyframes eqs-pan-left { 0% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(10deg) } }
@keyframes eqs-pan-right { 0% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-10deg) } }
@keyframes eqs-candle { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.95) } }
@keyframes eqs-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }

/* Scene 2: foresight-defeat-exceptions */
.scn-foresight-defeat-exceptions {
  background: 
    linear-gradient(180deg, #16120e 0%, #221c17 40%, #2d241e 70%, #1c1612 100%),
    radial-gradient(ellipse at 30% 70%, #3d3028 0%, transparent 60%);
}
.scn-foresight-defeat-exceptions .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
}
.scn-foresight-defeat-exceptions .map-table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a3026 0%, #2a221a 100%);
  border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,.7);
  animation: fde-table 15s ease-in-out infinite alternate;
}
.scn-foresight-defeat-exceptions .map-paper {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(135deg, #c8b89a 0%, #a09078 50%, #c8b89a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-2deg);
  animation: fde-map 20s ease-in-out infinite alternate;
}
.scn-foresight-defeat-exceptions .hand-pointing {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a241e 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: fde-hand 6s ease-in-out infinite alternate;
}
.scn-foresight-defeat-exceptions .lantern-body {
  position: absolute; bottom: 30%; right: 15%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3d32 0%, #2d241e 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-foresight-defeat-exceptions .lantern-glow {
  position: absolute; bottom: 32%; right: 15%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #ffd580 0%, #e8a860 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 12px #d4944a, 0 0 80px 24px rgba(212,148,74,.3);
  animation: fde-lantern 3s ease-in-out infinite alternate;
}
.scn-foresight-defeat-exceptions .chair-void {
  position: absolute; bottom: 22%; left: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(5deg);
}
.scn-foresight-defeat-exceptions .ink-stain {
  position: absolute; bottom: 32%; left: 40%; width: 16px; height: 16px;
  background: radial-gradient(circle, #0a0806 0%, #1a1612 60%, transparent 100%);
  border-radius: 50%;
  animation: fde-ink 10s ease-in-out infinite alternate;
}
@keyframes fde-table { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes fde-map { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes fde-hand { 0% { transform: rotate(0deg) translate(0,0) } 30% { transform: rotate(-10deg) translate(5px,-5px) } 70% { transform: rotate(10deg) translate(-5px,-2px) } 100% { transform: rotate(0deg) translate(0,0) } }
@keyframes fde-lantern { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(1) } }
@keyframes fde-ink { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(.9); opacity: .7 } }

/* Scene 3: signs-scales-turning-moral */
.scn-signs-scales-turning-moral {
  background: 
    linear-gradient(180deg, #1c1814 0%, #2a241e 40%, #3a3028 70%, #201c18 100%),
    radial-gradient(ellipse at 50% 80%, #4a3d32 0%, transparent 70%);
}
.scn-signs-scales-turning-moral .desk-wood {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #3d352b 0%, #2d261f 100%);
  border-radius: 12px; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
}
.scn-signs-scales-turning-moral .parchment-face {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 16%;
  background: linear-gradient(135deg, #d4c8a8 0%, #b8ac8c 50%, #d4c8a8 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3);
  transform: rotate(1deg);
  animation: stm-parchment 18s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .seal-wax {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #8a4a2a 0%, #60341e 100%);
  border-radius: 50% 50% 20% 20%; transform: translateX(-50%);
  animation: stm-seal 8s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .quill-feather {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 12px;
  background: linear-gradient(135deg, #d8c8b0 0%, #a89880 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 60% 40%; transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: stm-quill 12s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .ink-pot {
  position: absolute; bottom: 24%; left: 15%; width: 28px; height: 20px;
  background: linear-gradient(180deg, #2a241e 0%, #1a1612 100%);
  border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: stm-pot 4s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .officer-left,
.scn-signs-scales-turning-moral .officer-right {
  position: absolute; bottom: 22%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1612 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-signs-scales-turning-moral .officer-left {
  left: 8%; transform-origin: bottom center;
  animation: stm-officer-left 20s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .officer-right {
  right: 8%; transform-origin: bottom center;
  animation: stm-officer-right 20s ease-in-out infinite alternate;
}
.scn-signs-scales-turning-moral .candle-glow-close {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 32px;
  background: radial-gradient(ellipse at 50% 20%, #ffd580 0%, #e8a860 50%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #d4944a, 0 0 60px 20px rgba(212,148,74,.3);
  animation: stm-candle 3s ease-in-out infinite alternate;
}
@keyframes stm-parchment { 0% { transform: rotate(1deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(.98) } }
@keyframes stm-seal { 0% { opacity: .7; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.2) } 100% { opacity: .8; transform: translateX(-50%) scaleY(.9) } }
@keyframes stm-quill { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-25deg) translateY(1px) } }
@keyframes stm-pot { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes stm-officer-left { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes stm-officer-right { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes stm-candle { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: .7; transform: scaleY(.95) } }

/* Scene 4: quicker-melting-troops */
.scn-quicker-melting-troops {
  background: 
    linear-gradient(180deg, #0a0a08 0%, #141210 30%, #1c1814 60%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 0%, #2a221a 0%, transparent 70%);
}
.scn-quicker-melting-troops .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a0a08 0%, #1a1612 100%);
  border-radius: 0 0 50% 50%;
}
.scn-quicker-melting-troops .melt-candle {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b89a 0%, #a09078 40%, #6a5a48 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px #d4944a, 0 0 40px 12px rgba(212,148,74,.3);
  animation: qmt-candle 6s ease-in-out infinite alternate;
}
.scn-quicker-melting-troops .wax-pool {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 12px; transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b89a 0%, #8a7a68 100%);
  border-radius: 50% 50% 30% 30%;
  animation: qmt-waxpool 10s ease-in-out infinite alternate;
}
.scn-quicker-melting-troops .wax-drip-a,
.scn-quicker-melting-troops .wax-drip-b {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 0;
  background: linear-gradient(180deg, #c8b89a 0%, #8a7a68 100%);
  border-radius: 0 0 50% 50%;
}
.scn-quicker-melting-troops .wax-drip-a {
  margin-left: -18px;
  animation: qmt-drip-a 8s linear infinite;
}
.scn-quicker-melting-troops .wax-drip-b {
  margin-left: 10px;
  animation: qmt-drip-b 10s linear infinite 2s;
}
.scn-quicker-melting-troops .troop-fade-a,
.scn-quicker-melting-troops .troop-fade-b {
  position: absolute; bottom: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1612 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-quicker-melting-troops .troop-fade-a {
  left: 20%; animation: qmt-troop-fade 12s ease-in-out infinite;
}
.scn-quicker-melting-troops .troop-fade-b {
  right: 20%; animation: qmt-troop-fade 14s ease-in-out infinite 3s;
}
.scn-quicker-melting-troops .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%);
}
@keyframes qmt-candle { 0% { transform: translateX(-50%) scaleY(1); opacity: .8 } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1 } 100% { transform: translateX(-50%) scaleY(.95); opacity: .7 } }
@keyframes qmt-waxpool { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.1) } 100% { transform: translateX(-50%) scaleX(.9) } }
@keyframes qmt-drip-a { 0% { height: 0; opacity: 1 } 50% { height: 30px; opacity: .8 } 100% { height: 40px; opacity: 0 } }
@keyframes qmt-drip-b { 0% { height: 0; opacity: 1 } 40% { height: 20px; opacity: .9 } 80% { height: 35px; opacity: .5 } 100% { height: 40px; opacity: 0 } }
@keyframes qmt-troop-fade { 0% { opacity: 1; transform: translateY(0) scale(1) } 50% { opacity: .6; transform: translateY(-10px) scale(.9) } 100% { opacity: 0; transform: translateY(-20px) scale(.8) } }

/* Scene 1: intro-author-small-ingots – calm dim interior */
.scn-intro-author-small-ingots {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%), radial-gradient(ellipse at 60% 30%, #5a4a2a 0%, transparent 70%);
}
.scn-intro-author-small-ingots .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%);
}
.scn-intro-author-small-ingots .desk {
  position:absolute; bottom:15%; left:10%; width:80%; height:22%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-intro-author-small-ingots .lamp {
  position:absolute; bottom:40%; left:30%; width:16px; height:28px;
  background: linear-gradient(180deg, #b08040 0%, #705020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.3);
  animation: sc1-lamp 4s ease-in-out infinite alternate;
}
.scn-intro-author-small-ingots .ingot-a {
  position:absolute; bottom:25%; left:38%; width:12px; height:8px;
  background: linear-gradient(135deg, #f0d080 0%, #c8a050 50%, #a08030 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: sc1-ingot 6s ease-in-out infinite alternate;
}
.scn-intro-author-small-ingots .ingot-b {
  position:absolute; bottom:27%; left:44%; width:14px; height:6px;
  background: linear-gradient(135deg, #f0d080 0%, #c8a050 50%, #a08030 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: sc1-ingot 6s ease-in-out infinite alternate-reverse;
}
.scn-intro-author-small-ingots .inkwell {
  position:absolute; bottom:24%; left:60%; width:14px; height:18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-intro-author-small-ingots .quill {
  position:absolute; bottom:30%; left:62%; width:4px; height:30px;
  background: linear-gradient(180deg, #e8e0d0 0%, #b8a890 100%);
  border-radius: 50% / 40% 40% 60% 60%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sc1-quill 5s ease-in-out infinite alternate;
}
.scn-intro-author-small-ingots .author {
  position:absolute; bottom:0; left:20%; width:22px; height:48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc1-breathe 4s ease-in-out infinite;
}
@keyframes sc1-lamp { 0% { box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,.3); } 50% { box-shadow: 0 0 28px 8px #d0a060, 0 0 52px 16px rgba(208,160,96,.4); } 100% { box-shadow: 0 0 18px 5px #b08040, 0 0 36px 10px rgba(176,128,64,.3); } }
@keyframes sc1-ingot { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes sc1-quill { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }
@keyframes sc1-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* Scene 2: brief-memoir-birth-entry – calm dim interior */
.scn-brief-memoir-birth-entry {
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 80%);
}
.scn-brief-memoir-birth-entry .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1a24 0%, #0e0e14 100%);
}
.scn-brief-memoir-birth-entry .window {
  position:absolute; top:15%; left:40%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, #d0e0f0 0%, #8090b0 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px #7080a0;
  animation: sc2-window 10s ease-in-out infinite alternate;
}
.scn-brief-memoir-birth-entry .cradle {
  position:absolute; bottom:18%; left:45%; width:34px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sc2-rock 6s ease-in-out infinite;
}
.scn-brief-memoir-birth-entry .mother {
  position:absolute; bottom:0; left:35%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc2-breathe 4s ease-in-out infinite;
}
.scn-brief-memoir-birth-entry .baby {
  position:absolute; bottom:22%; left:48%; width:12px; height:14px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50%;
  animation: sc2-baby 5s ease-in-out infinite alternate;
}
.scn-brief-memoir-birth-entry .candle {
  position:absolute; bottom:38%; left:30%; width:8px; height:20px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #d0a060, 0 0 32px 8px rgba(208,160,96,.3);
  animation: sc2-candle 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-birth-entry .scroll {
  position:absolute; bottom:16%; left:60%; width:24px; height:8px;
  background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-10deg);
  animation: sc2-scroll 8s ease-in-out infinite alternate;
}
@keyframes sc2-window { 0% { opacity:.6; box-shadow:0 0 12px 3px #7080a0; } 50% { opacity:.9; box-shadow:0 0 28px 10px #8090b0; } 100% { opacity:.7; box-shadow:0 0 16px 5px #7080a0; } }
@keyframes sc2-rock { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes sc2-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(1); } }
@keyframes sc2-baby { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sc2-candle { 0% { box-shadow: 0 0 12px 3px #d0a060, 0 0 24px 6px rgba(208,160,96,.3); } 50% { box-shadow: 0 0 20px 6px #e0b070, 0 0 40px 12px rgba(224,176,112,.4); } 100% { box-shadow: 0 0 14px 4px #d0a060, 0 0 28px 8px rgba(208,160,96,.3); } }
@keyframes sc2-scroll { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }

/* Scene 3: brief-memoir-1806-campaign – calm dim interior (tent) */
.scn-brief-memoir-1806-campaign {
  background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%), radial-gradient(ellipse at 50% 40%, #4a3a28 0%, transparent 80%);
}
.scn-brief-memoir-1806-campaign .tent-back {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1610 0%, #0e0a06 100%);
}
.scn-brief-memoir-1806-campaign .tent-flap {
  position:absolute; top:10%; left:20%; width:60%; height:40%;
  background: linear-gradient(135deg, #4a3a28 0%, #2a1e12 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: sc3-flap 12s ease-in-out infinite alternate;
}
.scn-brief-memoir-1806-campaign .table {
  position:absolute; bottom:18%; left:25%; width:50%; height:16%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.7);
}
.scn-brief-memoir-1806-campaign .map {
  position:absolute; bottom:22%; left:30%; width:40%; height:12%;
  background: linear-gradient(135deg, #c8b890 0%, #a09070 100%);
  border-radius: 2px;
  animation: sc3-map 8s ease-in-out infinite alternate;
}
.scn-brief-memoir-1806-campaign .wounded {
  position:absolute; bottom:2%; left:35%; width:26px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: sc3-wounded 5s ease-in-out infinite;
}
.scn-brief-memoir-1806-campaign .lantern {
  position:absolute; bottom:35%; left:50%; width:10px; height:18px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 4px #c09050, 0 0 32px 8px rgba(192,144,80,.3);
  animation: sc3-lantern 6s ease-in-out infinite alternate;
}
.scn-brief-memoir-1806-campaign .sword {
  position:absolute; bottom:28%; left:65%; width:4px; height:24px;
  background: linear-gradient(180deg, #b0a0a0 0%, #808080 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: sc3-sword 10s ease-in-out infinite alternate;
}
@keyframes sc3-flap { 0% { transform: scaleX(1); opacity:.8; } 50% { transform: scaleX(1.05); opacity:1; } 100% { transform: scaleX(1); opacity:.85; } }
@keyframes sc3-map { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sc3-wounded { 0% { transform: rotate(-12deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.01); } 100% { transform: rotate(-12deg) scaleY(1); } }
@keyframes sc3-lantern { 0% { box-shadow:0 0 12px 3px #c09050; } 50% { box-shadow:0 0 24px 8px #d0a060; } 100% { box-shadow:0 0 14px 4px #c09050; } }
@keyframes sc3-sword { 0% { transform: rotate(28deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(28deg); } }

/* Scene 4: brief-memoir-tauroggen-convention – tense dim interior */
.scn-brief-memoir-tauroggen-convention {
  background: linear-gradient(180deg, #1a120e 0%, #0a0705 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-brief-memoir-tauroggen-convention .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #12100a 0%, #0a0705 100%);
}
.scn-brief-memoir-tauroggen-convention .table {
  position:absolute; bottom:15%; left:15%; width:70%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.8);
}
.scn-brief-memoir-tauroggen-convention .candle {
  position:absolute; bottom:35%; left:45%; width:6px; height:18px;
  background: linear-gradient(180deg, #e8c080 0%, #c09050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 12px rgba(208,160,96,.4);
  animation: sc4-candle .5s ease-in-out infinite alternate; /* faster for tense */
}
.scn-brief-memoir-tauroggen-convention .figure-l {
  position:absolute; bottom:0; left:20%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc4-figure-l 2s ease-in-out infinite alternate;
}
.scn-brief-memoir-tauroggen-convention .figure-r {
  position:absolute; bottom:0; right:20%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc4-figure-r 2s ease-in-out infinite alternate-reverse;
}
.scn-brief-memoir-tauroggen-convention .letter {
  position:absolute; bottom:28%; left:50%; width:28px; height:10px;
  background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: sc4-letter 3s ease-in-out infinite alternate;
}
.scn-brief-memoir-tauroggen-convention .pistol {
  position:absolute; bottom:23%; left:35%; width:16px; height:6px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(20deg);
  animation: sc4-pistol 1.5s ease-in-out infinite alternate;
}
@keyframes sc4-candle { 0% { box-shadow: 0 0 16px 4px #d0a060, 0 0 32px 8px rgba(208,160,96,.4); } 100% { box-shadow: 0 0 28px 8px #e0b070, 0 0 48px 16px rgba(224,176,112,.5); } }
@keyframes sc4-figure-l { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes sc4-figure-r { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sc4-letter { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc4-pistol { 0% { transform: rotate(18deg); } 50% { transform: rotate(24deg); } 100% { transform: rotate(18deg); } }

.scn-simplicity-strategic-combination { background: linear-gradient(180deg, #1c1620 0%, #2a1f24 40%, #3c2a2e 100%), radial-gradient(ellipse at 30% 60%, #5a4035 0%, transparent 60%); }
.scn-simplicity-strategic-combination .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f24 0%, #1c1620 100%); opacity:.8; }
.scn-simplicity-strategic-combination .desk { position:absolute; bottom:12%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.5); transform:perspective(400px) rotateX(10deg); }
.scn-simplicity-strategic-combination .book { position:absolute; bottom:22%; left:45%; width:20%; height:10%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:ssb-book 8s ease-in-out infinite; }
.scn-simplicity-strategic-combination .lamp { position:absolute; bottom:30%; left:35%; width:12px; height:16px; background: radial-gradient(circle at 50% 30%, #ffd070 0%, #b08030 70%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:0 0 24px 8px #b08030, 0 0 48px 12px rgba(176,128,48,.4); animation:ssb-glow 3s ease-in-out infinite alternate; }
.scn-simplicity-strategic-combination .figure { position:absolute; bottom:15%; left:28%; width:16px; height:36px; background: linear-gradient(180deg, #1a1218 0%, #0e0a0e 100%); border-radius:45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ssb-think 5s ease-in-out infinite; }
.scn-simplicity-strategic-combination .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:6px; background:rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation:ssb-shadow 5s ease-in-out infinite; }
.scn-simplicity-strategic-combination .whisp { position:absolute; bottom:32%; left:38%; width:4px; height:4px; background:rgba(200,180,140,.2); border-radius:50%; filter:blur(2px); animation:ssb-drift 12s linear infinite; }
@keyframes ssb-book { 0%,100% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-2px); } }
@keyframes ssb-glow { 0% { box-shadow:0 0 18px 4px #b08030,0 0 36px 8px rgba(176,128,48,.3); opacity:.9; } 50% { box-shadow:0 0 28px 8px #ffd060,0 0 56px 14px rgba(255,208,96,.5); opacity:1; } 100% { box-shadow:0 0 22px 5px #b08030,0 0 44px 10px rgba(176,128,48,.35); opacity:.85; } }
@keyframes ssb-think { 0% { transform:translateX(0) translateY(0) rotate(1deg); } 33% { transform:translateX(2px) translateY(-1px) rotate(-1deg); } 66% { transform:translateX(-1px) translateY(-2px) rotate(0); } 100% { transform:translateX(0) translateY(0) rotate(1deg); } }
@keyframes ssb-shadow { 0%,100% { opacity:.3; transform:scaleX(1); } 50% { opacity:.2; transform:scaleX(.95); } }
@keyframes ssb-drift { 0% { transform:translate(0,0) scale(1); opacity:.2; } 50% { transform:translate(8px,6px) scale(1.5); opacity:.4; } 100% { transform:translate(16px,12px) scale(1); opacity:.2; } }

.scn-impulse-great-battle { background: linear-gradient(180deg, #2a1a10 0%, #3c2416 50%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #5a3020 0%, transparent 70%); }
.scn-impulse-great-battle .tent-wall { position:absolute; inset:0; background: linear-gradient(135deg, #3c2416 0%, #2a1a10 100%); clip-path:polygon(0 0,100% 0,85% 100%,15% 100%); }
.scn-impulse-great-battle .map { position:absolute; bottom:20%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:2px; transform:rotate(-3deg); box-shadow:0 2px 6px rgba(0,0,0,.5); animation:igb-map 10s ease-in-out infinite; }
.scn-impulse-great-battle .brazier { position:absolute; bottom:25%; left:55%; width:24px; height:20px; background: radial-gradient(circle at 50% 20%, #ff8030 0%, #b04020 60%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 0 30px 10px #b04020,0 0 60px 20px rgba(176,64,32,.5); animation:igb-fire 1.5s ease-in-out infinite alternate; }
.scn-impulse-great-battle .commander { position:absolute; bottom:12%; left:40%; width:20px; height:42px; background: linear-gradient(180deg, #0e0a0e 0%, #1a1218 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:igb-stand 4s ease-in-out infinite; }
.scn-impulse-great-battle .sword { position:absolute; bottom:20%; left:44%; width:4px; height:24px; background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); border-radius:1px; transform:rotate(15deg); transform-origin:bottom center; animation:igb-sword 4s ease-in-out infinite; }
.scn-impulse-great-battle .flag { position:absolute; bottom:35%; left:30%; width:8px; height:18px; background: linear-gradient(180deg, #a04020 0%, #702020 100%); border-radius:0 50% 50% 0; transform-origin:left bottom; animation:igb-flag 3s ease-in-out infinite alternate; }
.scn-impulse-great-battle .spark { position:absolute; bottom:28%; left:56%; width:3px; height:3px; background:#ffa060; border-radius:50%; box-shadow:0 0 4px #ffa060; animation:igb-spark 2s linear infinite; }
@keyframes igb-map { 0%,100% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes igb-fire { 0% { box-shadow:0 0 25px 8px #b04020,0 0 50px 16px rgba(176,64,32,.4); opacity:.9; } 50% { box-shadow:0 0 35px 12px #ff8030,0 0 70px 24px rgba(255,128,48,.6); opacity:1; } 100% { box-shadow:0 0 28px 10px #b04020,0 0 55px 18px rgba(176,64,32,.45); opacity:.85; } }
@keyframes igb-stand { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(0) translateY(-2px) rotate(-1deg); } 75% { transform:translateX(-2px) translateY(-1px) rotate(0); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes igb-sword { 0%,100% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-1px); } }
@keyframes igb-flag { 0% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(-8deg) scaleY(1.1); } 100% { transform:rotate(5deg) scaleY(.95); } }
@keyframes igb-spark { 0% { transform:translate(0,0) scale(1); opacity:1; } 100% { transform:translate(-10px,20px) scale(0); opacity:0; } }

.scn-strategic-means-utilising-victory { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 70% 30%, #4a4a5a 0%, transparent 60%); }
.scn-strategic-means-utilising-victory .shelf { position:absolute; top:15%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-strategic-means-utilising-victory .books { position:absolute; top:10%; left:15%; right:15%; height:12%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 25%, #3a2a1a 50%, #4a3a2a 75%, #5a4a3a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.4); }
.scn-strategic-means-utilising-victory .globe { position:absolute; bottom:30%; left:25%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #6a8a6a 0%, #3a5a3a 60%); border-radius:50%; box-shadow:-4px -4px 8px rgba(0,0,0,.4); transform:rotate(20deg); animation:smu-globe 20s linear infinite; }
.scn-strategic-means-utilising-victory .figure { position:absolute; bottom:12%; left:45%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:smu-read 6s ease-in-out infinite; }
.scn-strategic-means-utilising-victory .lamp { position:absolute; bottom:35%; left:60%; width:10px; height:14px; background: radial-gradient(circle at 50% 30%, #d0b080 0%, #a08050 70%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow:0 0 20px 4px #a08050,0 0 40px 10px rgba(160,128,80,.3); animation:smu-glow 4s ease-in-out infinite alternate; }
.scn-strategic-means-utilising-victory .curtain { position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:0 0 0 20%; opacity:.7; animation:smu-curtain 12s ease-in-out infinite alternate; }
.scn-strategic-means-utilising-victory .moth { position:absolute; top:30%; left:20%; width:3px; height:3px; background:#d0d0a0; border-radius:50%; box-shadow:0 0 6px #d0d0a0; animation:smu-moth 7s linear infinite; }
@keyframes smu-globe { 0% { transform:rotate(20deg); } 50% { transform:rotate(200deg); } 100% { transform:rotate(380deg); } }
@keyframes smu-read { 0%,100% { transform:translateX(0) translateY(0) rotate(0); } 33% { transform:translateX(1px) translateY(-2px) rotate(-1deg); } 66% { transform:translateX(-1px) translateY(-1px) rotate(1deg); } }
@keyframes smu-glow { 0% { box-shadow:0 0 15px 3px #a08050,0 0 30px 6px rgba(160,128,80,.2); opacity:.8; } 50% { box-shadow:0 0 25px 6px #d0b080,0 0 50px 12px rgba(208,176,128,.5); opacity:1; } 100% { box-shadow:0 0 18px 4px #a08050,0 0 36px 8px rgba(160,128,80,.3); opacity:.85; } }
@keyframes smu-curtain { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.05); } 100% { transform:scaleX(1); } }
@keyframes smu-moth { 0% { transform:translate(0,0) scale(1); opacity:1; } 25% { transform:translate(15px,-10px) scale(1.5); opacity:.8; } 50% { transform:translate(30px,0) scale(1); opacity:.9; } 75% { transform:translate(15px,10px) scale(.8); opacity:.7; } 100% { transform:translate(0,0) scale(1); opacity:1; } }

.scn-pursuit-begins-departure { background: linear-gradient(180deg, #14181a 0%, #1c2224 50%, #242a2c 100%), radial-gradient(ellipse at 50% 100%, #2a3032 0%, transparent 60%); }
.scn-pursuit-begins-departure .tent-flap { position:absolute; top:0; left:20%; right:20%; height:60%; background: linear-gradient(135deg, #2a2020 0%, #1a1414 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; transform-origin:top center; animation:pbd-flap 8s ease-in-out infinite alternate; }
.scn-pursuit-begins-departure .pack { position:absolute; bottom:20%; left:30%; width:16%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow:2px 2px 4px rgba(0,0,0,.4); animation:pbd-pack 5s ease-in-out infinite; }
.scn-pursuit-begins-departure .lantern { position:absolute; bottom:45%; left:42%; width:8px; height:12px; background: radial-gradient(circle at 50% 30%, #e0c080 0%, #a08040 70%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow:0 0 18px 4px #a08040,0 0 36px 8px rgba(160,128,64,.3); animation:pbd-swing 4s ease-in-out infinite alternate; }
.scn-pursuit-begins-departure .figure1 { position:absolute; bottom:14%; left:38%; width:14px; height:34px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pbd-walk1 5s ease-in-out infinite; }
.scn-pursuit-begins-departure .figure2 { position:absolute; bottom:12%; left:52%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pbd-walk2 6s ease-in-out infinite 1s; }
.scn-pursuit-begins-departure .ground { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #1c2224 0%, #14181a 100%); border-radius:0; }
.scn-pursuit-begins-departure .dust { position:absolute; bottom:15%; left:35%; right:35%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.15) 0%, transparent 70%); animation:pbd-dust 9s ease-in-out infinite; }
@keyframes pbd-flap { 0% { transform:rotateX(0deg); } 50% { transform:rotateX(5deg); } 100% { transform:rotateX(0deg); } }
@keyframes pbd-pack { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes pbd-swing { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }
@keyframes pbd-walk1 { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform:translateX(6px) translateY(0) rotate(-1deg); } 75% { transform:translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(12px) translateY(0) rotate(0); } }
@keyframes pbd-walk2 { 0% { transform:translateX(0) translateY(0) rotate(0); } 25% { transform:translateX(-3px) translateY(-1px) rotate(-2deg); } 50% { transform:translateX(-6px) translateY(0) rotate(1deg); } 75% { transform:translateX(-9px) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(-12px) translateY(0) rotate(0); } }
@keyframes pbd-dust { 0%,100% { opacity:.3; transform:scale(1); } 50% { opacity:.6; transform:scale(1.1); } }

.scn-human-weakness-target {
  background:
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 60%, #080810 100%);
  overflow: hidden;
}
.scn-human-weakness-target .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #14142a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: hwt-wall 20s ease-in-out infinite alternate;
}
.scn-human-weakness-target .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 34%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6), 0 -4px 12px rgba(0,0,0,.3);
  transform: perspective(500px) rotateX(4deg);
}
.scn-human-weakness-target .document {
  position: absolute; bottom: 22%; left: 32%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(300px) rotateX(-2deg) rotateY(-3deg);
  animation: hwt-doc 14s ease-in-out infinite alternate;
}
.scn-human-weakness-target .hand {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #c8b098 0%, #a08a78 100%);
  border-radius: 50% 60% 40% 40% / 60% 70% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hwt-hand 4s ease-in-out infinite;
}
.scn-human-weakness-target .inkwell {
  position: absolute; bottom: 24%; left: 16%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 40% 30%, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-human-weakness-target .candle-glow {
  position: absolute; bottom: 36%; left: 68%; width: 8px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #ffe080 0%, #c08030 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200, 120, 40, .3), 0 0 60px 20px rgba(200, 120, 40, .15);
  animation: hwt-candle 5s ease-in-out infinite alternate;
}
.scn-human-weakness-target .shadow-vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 40%, rgba(0,0,0,.7) 100%);
  pointer-events: none;
}
@keyframes hwt-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes hwt-doc {
  0% { transform: perspective(300px) rotateX(-2deg) rotateY(-3deg); }
  30% { transform: perspective(300px) rotateX(-2deg) rotateY(0deg); }
  60% { transform: perspective(300px) rotateX(-4deg) rotateY(-3deg); }
  100% { transform: perspective(300px) rotateX(-2deg) rotateY(-3deg); }
}
@keyframes hwt-hand {
  0% { transform: rotate(-8deg) translateY(0); }
  25% { transform: rotate(-6deg) translateY(-2px); }
  50% { transform: rotate(-12deg) translateY(0); }
  75% { transform: rotate(-10deg) translateY(-1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes hwt-candle {
  0% { opacity: .7; transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(200,120,40,.2); }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 35px 12px rgba(200,120,40,.35); }
  100% { opacity: .85; transform: scaleY(1); box-shadow: 0 0 25px 10px rgba(200,120,40,.25); }
}

.scn-reaction-forces-roused {
  background:
    radial-gradient(ellipse at 50% 100%, #1e1e30 0%, transparent 60%),
    linear-gradient(180deg, #0e0e1a 0%, #16162a 50%, #0a0a14 100%);
  overflow: hidden;
}
.scn-reaction-forces-roused .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #12122a 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
  animation: rfr-bg 18s ease-in-out infinite alternate;
}
.scn-reaction-forces-roused .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(2deg);
}
.scn-reaction-forces-roused .figure-1 {
  position: absolute; bottom: 20%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rfr-rise-1 12s ease-in-out infinite;
}
.scn-reaction-forces-roused .figure-2 {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #3a3a5a 0%, #22223e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rfr-rise-2 14s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-reaction-forces-roused .figure-3 {
  position: absolute; bottom: 22%; left: 64%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2a46 0%, #16162e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rfr-rise-3 10s ease-in-out infinite;
  animation-delay: -6s;
}
.scn-reaction-forces-roused .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, transparent 30%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
.scn-reaction-forces-roused .dust-mote {
  position: absolute; top: 15%; left: 30%; width: 4px; height: 4px;
  background: rgba(200, 180, 160, .3);
  border-radius: 50%;
  filter: blur(2px);
  animation: rfr-dust 25s linear infinite;
}
@keyframes rfr-bg {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .65; }
}
@keyframes rfr-rise-1 {
  0% { transform: translateY(0) scaleY(1); }
  20% { transform: translateY(-4px) scaleY(1.02); }
  40% { transform: translateY(0) scaleY(1); }
  60% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rfr-rise-2 {
  0% { transform: translateY(0) rotate(0deg); }
  15% { transform: translateY(-6px) rotate(1deg); }
  35% { transform: translateY(-2px) rotate(0deg); }
  55% { transform: translateY(-8px) rotate(-1deg); }
  75% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rfr-rise-3 {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-3px) scaleY(1.03); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(-5px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rfr-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  25% { transform: translate(20px, -8px) scale(.8); opacity: .5; }
  50% { transform: translate(40px, 0) scale(1.1); opacity: .2; }
  75% { transform: translate(60px, -4px) scale(.9); opacity: .4; }
  100% { transform: translate(80px, 0) scale(1); opacity: .3; }
}

.scn-use-battle-principle {
  background:
    radial-gradient(ellipse at 50% 60%, #1e1e30 0%, transparent 50%),
    linear-gradient(180deg, #0e0e1a 0%, #16162a 60%, #0a0a14 100%);
  overflow: hidden;
}
.scn-use-battle-principle .table-bg {
  position: absolute; top: 34%; left: 8%; right: 8%; bottom: 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(6deg);
}
.scn-use-battle-principle .map-layer {
  position: absolute; top: 36%; left: 14%; right: 14%; bottom: 14%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  transform: perspective(400px) rotateX(2deg);
  animation: ubp-map 20s ease-in-out infinite alternate;
}
.scn-use-battle-principle .marker-blue {
  position: absolute; top: 46%; left: 28%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ubp-move-blue 8s ease-in-out infinite alternate;
}
.scn-use-battle-principle .marker-red {
  position: absolute; top: 48%; left: 52%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #a0461a 0%, #6e2e12 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ubp-move-red 10s ease-in-out infinite alternate;
}
.scn-use-battle-principle .candle {
  position: absolute; top: 28%; left: 66%; width: 6px; height: 22px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 20px 6px rgba(200, 160, 80, .25);
  animation: ubp-candle 4s ease-in-out infinite alternate;
}
.scn-use-battle-principle .shadow-fall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 20%, rgba(0,0,0,.5) 100%);
  pointer-events: none;
}
.scn-use-battle-principle .mist {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse, rgba(200, 180, 160, .06) 0%, transparent 60%);
  filter: blur(12px);
  animation: ubp-mist 30s linear infinite alternate;
}
@keyframes ubp-map {
  0% { transform: perspective(400px) rotateX(2deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(3deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(2deg) translateY(0); }
}
@keyframes ubp-move-blue {
  0% { transform: translate(0, 0) scale(1); }
  30% { transform: translate(18px, -8px) scale(1.05); }
  60% { transform: translate(32px, 4px) scale(.95); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes ubp-move-red {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(-14px, 6px) scale(1.02); }
  50% { transform: translate(-28px, -2px) scale(.98); }
  75% { transform: translate(-10px, 10px) scale(1.04); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes ubp-candle {
  0% { opacity: .8; transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(200,160,80,.2); }
  50% { opacity: 1; transform: scaleY(1.06); box-shadow: 0 0 30px 10px rgba(200,160,80,.35); }
  100% { opacity: .85; transform: scaleY(1); box-shadow: 0 0 18px 6px rgba(200,160,80,.25); }
}
@keyframes ubp-mist {
  0% { transform: translateX(-10px) scale(1); opacity: .4; }
  50% { transform: translateX(10px) scale(1.1); opacity: .6; }
  100% { transform: translateX(-10px) scale(1); opacity: .4; }
}

.scn-general-in-chief-command {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1e14 0%, #10100e 70%, #080806 100%),
    linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%);
  overflow: hidden;
}
.scn-general-in-chief-command .chamber-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1814 0%, #14100e 100%);
  border-radius: 0 0 40% 40% / 0 0 25% 25%;
  animation: gcc-wall 24s ease-in-out infinite alternate;
}
.scn-general-in-chief-command .fire-glow {
  position: absolute; bottom: 22%; left: 15%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, #c07030 0%, #804020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(4px);
  box-shadow: 0 0 60px 20px rgba(200, 120, 40, .3), 0 0 120px 40px rgba(200, 120, 40, .15);
  animation: gcc-fire 5s ease-in-out infinite alternate;
}
.scn-general-in-chief-command .general-figure {
  position: absolute; bottom: 18%; left: 38%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: gcc-figure 8s ease-in-out infinite alternate;
}
.scn-general-in-chief-command .general-figure::before {
  content: '';
  position: absolute; top: -8px; left: -4px; right: -4px; height: 12px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
}
.scn-general-in-chief-command .map-table {
  position: absolute; bottom: 0; left: 25%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1814 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(3deg);
}
.scn-general-in-chief-command .dispatch {
  position: absolute; bottom: 10%; left: 60%; width: 16%; height: 10%;
  background: linear-gradient(180deg, #e0d4c0 0%, #b8a890 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: perspective(300px) rotateX(-2deg) rotateY(4deg);
  animation: gcc-dispatch 12s ease-in-out infinite alternate;
}
.scn-general-in-chief-command .shadow-arch {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 15%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
.scn-general-in-chief-command .ember-1 {
  position: absolute; bottom: 50%; left: 16%; width: 4px; height: 4px;
  background: #c07030;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200, 120, 40, .5);
  animation: gcc-ember-1 6s linear infinite;
}
.scn-general-in-chief-command .ember-2 {
  position: absolute; bottom: 45%; left: 12%; width: 3px; height: 3px;
  background: #d08040;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200, 120, 40, .4);
  animation: gcc-ember-2 8s linear infinite;
  animation-delay: -3s;
}
@keyframes gcc-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes gcc-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; filter: blur(4px); }
  40% { transform: scaleY(1.08) scaleX(1.02); opacity: 1; filter: blur(3px); }
  70% { transform: scaleY(.96) scaleX(.98); opacity: .85; filter: blur(5px); }
  100% { transform: scaleY(1) scaleX(1); opacity: .9; filter: blur(4px); }
}
@keyframes gcc-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes gcc-dispatch {
  0% { transform: perspective(300px) rotateX(-2deg) rotateY(4deg); }
  50% { transform: perspective(300px) rotateX(-3deg) rotateY(6deg); }
  100% { transform: perspective(300px) rotateX(-2deg) rotateY(4deg); }
}
@keyframes gcc-ember-1 {
  0% { transform: translate(0, 0) scale(1); opacity: .8; }
  20% { transform: translate(8px, -14px) scale(1.2); opacity: 1; }
  40% { transform: translate(16px, -28px) scale(.8); opacity: .5; }
  60% { transform: translate(22px, -40px) scale(1.1); opacity: .7; }
  80% { transform: translate(28px, -52px) scale(.6); opacity: .3; }
  100% { transform: translate(32px, -64px) scale(0); opacity: 0; }
}
@keyframes gcc-ember-2 {
  0% { transform: translate(0, 0) scale(1); opacity: .6; }
  25% { transform: translate(-6px, -18px) scale(1.1); opacity: .9; }
  50% { transform: translate(-14px, -36px) scale(.7); opacity: .4; }
  75% { transform: translate(-20px, -50px) scale(1); opacity: .6; }
  100% { transform: translate(-26px, -66px) scale(0); opacity: 0; }
}

/* standstill-modifies-action – calm dim interior with a figure, desk, lamp, and clock */
.scn-standstill-modifies-action {
  background:
    linear-gradient(180deg, #1a1208 0%, #2a1a0e 40%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 80%, #4a301a 0%, transparent 70%);
}
.scn-standstill-modifies-action .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  animation: si1-wall 20s ease-in-out infinite alternate;
}
.scn-standstill-modifies-action .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1c0e02 0%, #0a0400 100%);
  border-radius: 20% 30% 0 0;
  animation: si1-floor 25s ease-in-out infinite alternate;
}
.scn-standstill-modifies-action .figure-still {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height:40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-figure 8s ease-in-out infinite;
}
.scn-standstill-modifies-action .desk {
  position: absolute; bottom: 22%; left: 30%; width:100px; height:14px;
  background: linear-gradient(180deg, #4a301a 0%, #2a1a0e 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: si1-desk 12s ease-in-out infinite alternate;
}
.scn-standstill-modifies-action .lamp-glow {
  position: absolute; bottom: 32%; left: 38%; width:12px; height:12px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: si1-glow 5s ease-in-out infinite alternate;
}
.scn-standstill-modifies-action .clock-face {
  position: absolute; bottom: 40%; right: 20%; width:20px; height:20px;
  background: radial-gradient(circle, #6a5030 0%, #2a1a0e 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 3px #4a301a;
  animation: si1-clock 30s linear infinite;
}
.scn-standstill-modifies-action .clock-pendulum {
  position: absolute; bottom: 40%; right: 20%; width:2px; height:12px;
  background: #8a7050;
  transform-origin: top center;
  margin: 10px 9px; /* center on clock */
  animation: si1-pendulum 3s ease-in-out infinite alternate;
}
@keyframes si1-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes si1-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes si1-figure { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px) translateY(-1px); } }
@keyframes si1-desk { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } }
@keyframes si1-glow { 0% { opacity:0.7; box-shadow:0 0 12px 4px #804020; } 50% { opacity:1; box-shadow:0 0 28px 8px #d09040; } 100% { opacity:0.8; box-shadow:0 0 16px 5px #804020; } }
@keyframes si1-clock { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes si1-pendulum { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }

/* frequent-inaction-removes-from-absolute – seated figure, candle, books, hourglass */
.scn-frequent-inaction-removes-from-absolute {
  background:
    linear-gradient(180deg, #1a0e04 0%, #2a1a0e 40%, #1a1208 100%),
    radial-gradient(ellipse at 30% 40%, #3a2010 0%, transparent 70%);
}
.scn-frequent-inaction-removes-from-absolute .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  animation: si2-wall 18s ease-in-out infinite alternate;
}
.scn-frequent-inaction-removes-from-absolute .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0400 100%);
  border-radius: 30% 20% 0 0;
}
.scn-frequent-inaction-removes-from-absolute .figure-seated {
  position: absolute; bottom: 25%; left: 35%; width:30px; height:45px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-figure 12s ease-in-out infinite;
}
.scn-frequent-inaction-removes-from-absolute .chair {
  position: absolute; bottom: 22%; left: 32%; width:40px; height:30px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e04 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: si2-chair 9s ease-in-out infinite alternate;
}
.scn-frequent-inaction-removes-from-absolute .candle-glow {
  position: absolute; bottom: 38%; left: 58%; width:14px; height:14px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #c08040, 0 0 48px 15px rgba(192,128,64,0.3);
  animation: si2-candle 4s ease-in-out infinite alternate;
}
.scn-frequent-inaction-removes-from-absolute .candle {
  position: absolute; bottom: 34%; left: 58%; width:4px; height:16px;
  background: linear-gradient(180deg, #c08040 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: si2-candle-body 10s ease-in-out infinite alternate;
}
.scn-frequent-inaction-removes-from-absolute .book-stack {
  position: absolute; bottom: 27%; left: 20%; width:30px; height:15px;
  background: linear-gradient(180deg, #4a301a 0%, #2a1a0e 100%);
  border-radius: 1px;
  box-shadow: 0 2px 0 #1a0e04, 0 4px 0 #3a2010;
  animation: si2-books 14s ease-in-out infinite alternate;
}
.scn-frequent-inaction-removes-from-absolute .hourglass {
  position: absolute; bottom: 35%; right: 20%; width:16px; height:28px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 50%, #2a1a0e 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 50%, 100% 100%, 0% 100%, 20% 50%);
  animation: si2-hourglass 20s ease-in-out infinite alternate;
}
@keyframes si2-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes si2-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes si2-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes si2-candle { 0% { opacity:0.6; box-shadow:0 0 16px 4px #804020; } 50% { opacity:1; box-shadow:0 0 32px 10px #d09040; } 100% { opacity:0.7; box-shadow:0 0 20px 6px #804020; } }
@keyframes si2-candle-body { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes si2-books { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes si2-hourglass { 0%,100% { transform: rotate(0); } 50% { transform: rotate(5deg); } }

/* element-of-chance – dice, coin, and shadow */
.scn-element-of-chance {
  background:
    linear-gradient(180deg, #1a1208 0%, #2a1a0e 40%, #1a0e04 100%),
    radial-gradient(ellipse at 50% 60%, #3a2010 0%, transparent 70%);
}
.scn-element-of-chance .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  animation: si3-bg 30s ease-in-out infinite alternate;
}
.scn-element-of-chance .dice-body {
  position: absolute; top: 30%; left: 45%; width:32px; height:32px;
  background: linear-gradient(135deg, #8a7050 0%, #4a301a 100%);
  border-radius: 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.6);
  animation: si3-dice 6s ease-in-out infinite;
}
.scn-element-of-chance .dot {
  position: absolute; width:6px; height:6px;
  background: radial-gradient(circle, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 50%;
  animation: si3-dot 6s ease-in-out infinite;
}
.scn-element-of-chance .dot-1 { top: 20%; left: 20%; }
.scn-element-of-chance .dot-2 { top: 20%; right: 20%; }
.scn-element-of-chance .dot-3 { top: 50%; left: 50%; transform: translate(-50%,-50%); }
.scn-element-of-chance .dot-4 { bottom: 20%; left: 20%; }
.scn-element-of-chance .coin {
  position: absolute; top: 50%; left: 25%; width:18px; height:18px;
  background: radial-gradient(circle at 30% 30%, #d0a050 0%, #8a6030 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: si3-coin 10s ease-in-out infinite alternate;
}
.scn-element-of-chance .shadow {
  position: absolute; bottom: 20%; left: 30%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: si3-shadow 6s ease-in-out infinite alternate;
}
@keyframes si3-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes si3-dice { 0%,100% { transform: rotate(0) translateY(0); } 25% { transform: rotate(45deg) translateY(-4px); } 50% { transform: rotate(90deg) translateY(0); } 75% { transform: rotate(135deg) translateY(-4px); } }
@keyframes si3-dot { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }
@keyframes si3-coin { 0%,100% { transform: rotateY(0) translateY(0); } 50% { transform: rotateY(90deg) translateY(-6px); } }
@keyframes si3-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(1); } }

/* war-a-game-objectively – game board with pieces and ambient light */
.scn-war-a-game-objectively {
  background:
    linear-gradient(180deg, #1a0e04 0%, #2a1a0e 40%, #1a1208 100%),
    radial-gradient(ellipse at 50% 30%, #3a2010 0%, transparent 70%);
}
.scn-war-a-game-objectively .table-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  animation: si4-table 20s ease-in-out infinite alternate;
}
.scn-war-a-game-objectively .board {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background:
    repeating-linear-gradient(90deg, #4a301a 0px, #4a301a 10px, #2a1a0e 10px, #2a1a0e 20px),
    repeating-linear-gradient(0deg, #4a301a 0px, #4a301a 10px, #2a1a0e 10px, #2a1a0e 20px);
  background-blend-mode: multiply;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: si4-board 30s ease-in-out infinite alternate;
}
.scn-war-a-game-objectively .piece {
  position: absolute; width:12px; height:20px;
  background: linear-gradient(180deg, #8a7050 0%, #4a301a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-piece 8s ease-in-out infinite;
}
.scn-war-a-game-objectively .piece-1 { bottom: 28%; left: 30%; }
.scn-war-a-game-objectively .piece-2 { bottom: 28%; left: 38%; animation-delay: 0.5s; }
.scn-war-a-game-objectively .piece-3 { bottom: 28%; left: 62%; animation-delay: 1s; }
.scn-war-a-game-objectively .piece-4 { bottom: 28%; left: 70%; animation-delay: 1.5s; }
.scn-war-a-game-objectively .piece-5 { bottom: 42%; left: 46%; animation-delay: 2s; }
.scn-war-a-game-objectively .ambient-light {
  position: absolute; top: 10%; left: 35%; width:30%; height:20%;
  background: radial-gradient(ellipse, rgba(192,128,64,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: si4-light 15s ease-in-out infinite alternate;
}
@keyframes si4-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes si4-board { 0%,100% { transform: rotate(0) scale(1); } 50% { transform: rotate(-2deg) scale(0.98); } }
@keyframes si4-piece { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-6px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-6px) rotate(-3deg); } }
@keyframes si4-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }

/* theory-guide-not-accompany */
.scn-theory-guide-not-accompany { background: linear-gradient(180deg, #2a2218 0%, #3a2e1e 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-theory-guide-not-accompany .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2218 0%, #3a2e1e 50%, #2a2218 100%); animation: tgn-wall 20s ease-in-out infinite alternate; }
.scn-theory-guide-not-accompany .bookshelf-left { position:absolute; left:2%; top:5%; width:22%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 4px 0 8px rgba(0,0,0,.3); }
.scn-theory-guide-not-accompany .bookshelf-right { position:absolute; right:2%; top:5%; width:22%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), -4px 0 8px rgba(0,0,0,.3); }
.scn-theory-guide-not-accompany .desk { position:absolute; bottom:8%; left:20%; right:20%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-theory-guide-not-accompany .expert-silhouette { position:absolute; bottom:20%; left:35%; width:30%; height:55%; background: linear-gradient(180deg, #1a1208 0%, #2a1a0a 60%, #1a0e04 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: tgn-breathe 6s ease-in-out infinite; }
.scn-theory-guide-not-accompany .lamp-glow { position:absolute; bottom:40%; left:48%; width:8%; height:12%; background: radial-gradient(ellipse, #ffd080 0%, #b08040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,128,.3), 0 0 120px 40px rgba(255,208,128,.1); animation: tgn-flicker 3s ease-in-out infinite alternate; }
.scn-theory-guide-not-accompany .dust-mote { position:absolute; width:6px; height:6px; background: radial-gradient(circle, rgba(255,220,180,.8) 0%, transparent 70%); border-radius:50%; filter:blur(1px); }
.scn-theory-guide-not-accompany .motes-1 { top:20%; left:30%; animation: tgn-drift-1 30s linear infinite; }
.scn-theory-guide-not-accompany .motes-2 { top:50%; left:60%; animation: tgn-drift-2 40s linear infinite; animation-delay:-10s; }
.scn-theory-guide-not-accompany .motes-3 { top:35%; left:45%; animation: tgn-drift-3 25s linear infinite; animation-delay:-20s; }
@keyframes tgn-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes tgn-breathe { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes tgn-flicker { 0% { opacity:.7; transform: scale(.95) } 25% { opacity:.9; transform: scale(1.02) } 50% { opacity:.85; transform: scale(1) } 75% { opacity:.95; transform: scale(1.03) } 100% { opacity:.75; transform: scale(.97) } }
@keyframes tgn-drift-1 { 0% { transform: translate(0,0) scale(1); opacity:.3 } 25% { transform: translate(30px,-15px) scale(1.2); opacity:.6 } 50% { transform: translate(60px,5px) scale(.9); opacity:.2 } 75% { transform: translate(90px,-10px) scale(1.1); opacity:.5 } 100% { transform: translate(120px,0) scale(1); opacity:.3 } }
@keyframes tgn-drift-2 { 0% { transform: translate(0,0) scale(1); opacity:.2 } 33% { transform: translate(-20px,20px) scale(1.3); opacity:.5 } 66% { transform: translate(-40px,-10px) scale(.8); opacity:.3 } 100% { transform: translate(-60px,10px) scale(1); opacity:.2 } }
@keyframes tgn-drift-3 { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(15px,25px) scale(1.4); opacity:.7 } 100% { transform: translate(30px,-10px) scale(1); opacity:.4 } }

/* maxims-rules-natural-crystal */
.scn-maxims-rules-natural-crystal { background: linear-gradient(180deg, #1a1820 0%, #2a2230 30%, #1a1820 60%, #0e0c14 100%), radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-maxims-rules-natural-crystal .cave-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1820 0%, #2a2230 50%, #1a1820 100%); animation: mrc-pulse 16s ease-in-out infinite alternate; }
.scn-maxims-rules-natural-crystal .cave-wall-left { position:absolute; left:0; top:0; bottom:0; width:20%; background: linear-gradient(180deg, #2a2230 0%, #1a1820 50%, #2a2230 100%); border-radius:0 40% 60% 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-maxims-rules-natural-crystal .cave-wall-right { position:absolute; right:0; top:0; bottom:0; width:20%; background: linear-gradient(180deg, #2a2230 0%, #1a1820 50%, #2a2230 100%); border-radius:40% 0 0 60%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-maxims-rules-natural-crystal .crystal-pedestal { position:absolute; bottom:15%; left:50%; width:30%; height:25%; transform:translateX(-50%); background: linear-gradient(180deg, #3a304a 0%, #2a203a 40%, #1a1028 100%); border-radius:40% 40% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-maxims-rules-natural-crystal .crystal-shard { position:absolute; bottom:35%; left:50%; width:8%; background: linear-gradient(180deg, rgba(200,180,255,.6) 0%, rgba(120,100,180,.4) 60%, transparent 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; filter:blur(1px); }
.scn-maxims-rules-natural-crystal .shard-a { height:45%; transform:translateX(-50%) skewX(-3deg); animation: mrc-shimmer-a 4s ease-in-out infinite alternate; }
.scn-maxims-rules-natural-crystal .shard-b { height:35%; transform:translateX(-20%) skewX(2deg); animation: mrc-shimmer-b 5s ease-in-out infinite alternate; animation-delay:-1.5s; }
.scn-maxims-rules-natural-crystal .shard-c { height:30%; transform:translateX(-80%) skewX(-4deg); animation: mrc-shimmer-c 3.5s ease-in-out infinite alternate; animation-delay:-2.5s; }
.scn-maxims-rules-natural-crystal .ambient-glow { position:absolute; bottom:30%; left:50%; width:40%; height:30%; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(160,140,220,.3) 0%, transparent 70%); border-radius:50%; animation: mrc-glow-pulse 6s ease-in-out infinite alternate; }
.scn-maxims-rules-natural-crystal .sparkle { position:absolute; width:8px; height:8px; background: radial-gradient(circle, rgba(220,200,255,.9) 0%, transparent 70%); border-radius:50%; filter:blur(1px); }
.scn-maxims-rules-natural-crystal .spark-1 { top:25%; left:40%; animation: mrc-sparkle-1 3s ease-in-out infinite; }
.scn-maxims-rules-natural-crystal .spark-2 { top:45%; left:60%; animation: mrc-sparkle-2 4s ease-in-out infinite; animation-delay:-2s; }
@keyframes mrc-pulse { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes mrc-shimmer-a { 0% { opacity:.4; transform:translateX(-50%) skewX(-3deg) scaleY(1) } 25% { opacity:.7; transform:translateX(-48%) skewX(-1deg) scaleY(1.02) } 50% { opacity:.9; transform:translateX(-50%) skewX(0deg) scaleY(1.05) } 75% { opacity:.6; transform:translateX(-52%) skewX(-2deg) scaleY(1.01) } 100% { opacity:.5; transform:translateX(-50%) skewX(-3deg) scaleY(1) } }
@keyframes mrc-shimmer-b { 0% { opacity:.3; transform:translateX(-20%) skewX(2deg) scaleY(1) } 33% { opacity:.8; transform:translateX(-22%) skewX(0deg) scaleY(1.03) } 66% { opacity:.5; transform:translateX(-18%) skewX(3deg) scaleY(.98) } 100% { opacity:.4; transform:translateX(-20%) skewX(2deg) scaleY(1) } }
@keyframes mrc-shimmer-c { 0% { opacity:.5; transform:translateX(-80%) skewX(-4deg) scaleY(1) } 50% { opacity:.9; transform:translateX(-78%) skewX(1deg) scaleY(1.04) } 100% { opacity:.4; transform:translateX(-80%) skewX(-4deg) scaleY(1) } }
@keyframes mrc-glow-pulse { 0% { opacity:.3; transform:translateX(-50%) scale(.95) } 50% { opacity:.6; transform:translateX(-50%) scale(1.1) } 100% { opacity:.4; transform:translateX(-50%) scale(1) } }
@keyframes mrc-sparkle-1 { 0% { opacity:0; transform:scale(.5) } 20% { opacity:.8; transform:scale(1.3) } 40% { opacity:.2; transform:scale(.7) } 60% { opacity:.9; transform:scale(1.5) } 80% { opacity:.4; transform:scale(1) } 100% { opacity:0; transform:scale(.5) } }
@keyframes mrc-sparkle-2 { 0% { opacity:.2; transform:scale(.8) } 25% { opacity:.7; transform:scale(1.4) } 50% { opacity:0; transform:scale(.4) } 75% { opacity:.6; transform:scale(1.1) } 100% { opacity:.3; transform:scale(.9) } }

/* theory-possible-harmony-practice */
.scn-theory-possible-harmony-practice { background: linear-gradient(180deg, #2a2820 0%, #3a3428 30%, #4a3e2e 60%, #2a2820 100%), radial-gradient(ellipse at 50% 50%, #5a4a32 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-theory-possible-harmony-practice .study-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2820 0%, #3a3428 50%, #2a2820 100%); animation: tph-pulse 15s ease-in-out infinite alternate; }
.scn-theory-possible-harmony-practice .arch-left { position:absolute; left:5%; top:5%; width:35%; height:90%; background: linear-gradient(180deg, #4a3e2e 0%, #3a3428 40%, #4a3e2e 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.4); transform-origin: top center; animation: tph-sway-l 7s ease-in-out infinite; }
.scn-theory-possible-harmony-practice .arch-right { position:absolute; right:5%; top:5%; width:35%; height:90%; background: linear-gradient(180deg, #4a3e2e 0%, #3a3428 40%, #4a3e2e 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.4); transform-origin: top center; animation: tph-sway-r 7s ease-in-out infinite; animation-delay:-3.5s; }
.scn-theory-possible-harmony-practice .pedestal-left { position:absolute; bottom:20%; left:18%; width:12%; height:30%; background: linear-gradient(180deg, #5a4a32 0%, #4a3a22 50%, #3a2a12 100%); border-radius:10% 10% 5% 5%; box-shadow: 4px 0 12px rgba(0,0,0,.3); animation: tph-breathe 8s ease-in-out infinite; }
.scn-theory-possible-harmony-practice .pedestal-right { position:absolute; bottom:20%; right:18%; width:12%; height:30%; background: linear-gradient(180deg, #5a4a32 0%, #4a3a22 50%, #3a2a12 100%); border-radius:10% 10% 5% 5%; box-shadow: -4px 0 12px rgba(0,0,0,.3); animation: tph-breathe 8s ease-in-out infinite; animation-delay:-4s; }
.scn-theory-possible-harmony-practice .orb-glow { position:absolute; bottom:45%; left:50%; width:20%; height:25%; transform:translateX(-50%); background: radial-gradient(ellipse, #ffd080 0%, #b08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,208,128,.2); animation: tph-glow 4s ease-in-out infinite alternate; }
.scn-theory-possible-harmony-practice .balance-beam { position:absolute; bottom:48%; left:50%; width:50%; height:2%; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, #8a7a5a 20%, #8a7a5a 80%, transparent 100%); border-radius:50%; animation: tph-tilt 6s ease-in-out infinite; }
.scn-theory-possible-harmony-practice .scroll-left-tip { position:absolute; bottom:42%; left:22%; width:4%; height:10%; background: linear-gradient(180deg, #c8a868 0%, #a08848 100%); border-radius:40% 40% 20% 20%; transform:rotate(-15deg); transform-origin: bottom center; animation: tph-unfurl-l 10s ease-in-out infinite; }
.scn-theory-possible-harmony-practice .scroll-right-tip { position:absolute; bottom:42%; right:22%; width:4%; height:10%; background: linear-gradient(180deg, #c8a868 0%, #a08848 100%); border-radius:40% 40% 20% 20%; transform:rotate(15deg); transform-origin: bottom center; animation: tph-unfurl-r 10s ease-in-out infinite; animation-delay:-5s; }
@keyframes tph-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tph-sway-l { 0% { transform:rotate(0deg) scaleY(1) } 25% { transform:rotate(1.5deg) scaleY(1.01) } 50% { transform:rotate(0deg) scaleY(1) } 75% { transform:rotate(-1.5deg) scaleY(.99) } 100% { transform:rotate(0deg) scaleY(1) } }
@keyframes tph-sway-r { 0% { transform:rotate(0deg) scaleY(1) } 25% { transform:rotate(-1.5deg) scaleY(1.01) } 50% { transform:rotate(0deg) scaleY(1) } 75% { transform:rotate(1.5deg) scaleY(.99) } 100% { transform:rotate(0deg) scaleY(1) } }
@keyframes tph-breathe { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes tph-glow { 0% { opacity:.6; transform:translateX(-50%) scale(.95) } 50% { opacity:.9; transform:translateX(-50%) scale(1.08) } 100% { opacity:.7; transform:translateX(-50%) scale(1.02) } }
@keyframes tph-tilt { 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 tph-unfurl-l { 0% { transform:rotate(-15deg) scaleY(.8); opacity:.5 } 25% { transform:rotate(-10deg) scaleY(1.1); opacity:.8 } 50% { transform:rotate(-15deg) scaleY(1); opacity:.7 } 75% { transform:rotate(-20deg) scaleY(.9); opacity:.6 } 100% { transform:rotate(-15deg) scaleY(.8); opacity:.5 } }
@keyframes tph-unfurl-r { 0% { transform:rotate(15deg) scaleY(.8); opacity:.5 } 25% { transform:rotate(20deg) scaleY(.9); opacity:.6 } 50% { transform:rotate(15deg) scaleY(1); opacity:.7 } 75% { transform:rotate(10deg) scaleY(1.1); opacity:.8 } 100% { transform:rotate(15deg) scaleY(.8); opacity:.5 } }

/* theory-considers-ends-and-means-tactics */
.scn-theory-considers-ends-and-means-tactics { background: linear-gradient(180deg, #1a1a10 0%, #2a2218 30%, #1a1a10 60%, #0e0e08 100%), radial-gradient(ellipse at 50% 40%, #3a3220 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-theory-considers-ends-and-means-tactics .tent-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a10 0%, #2a2218 50%, #1a1a10 100%); animation: tct-pulse 18s ease-in-out infinite alternate; }
.scn-theory-considers-ends-and-means-tactics .map-table { position:absolute; bottom:12%; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #4a3a22 0%, #3a2a1a 50%, #2a1a0e 100%); border-radius:12px; box-shadow: 0 -4px 20px rgba(0,0,0,.5), inset 0 4px 12px rgba(100,80,40,.2); }
.scn-theory-considers-ends-and-means-tactics .map-scroll { position:absolute; bottom:20%; left:25%; right:25%; height:55%; background: linear-gradient(180deg, #b09858 0%, #a08848 30%, #b09858 60%, #907840 100%); border-radius:8px; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: tct-unroll 12s ease-in-out infinite; }
.scn-theory-considers-ends-and-means-tactics .miniature-figures { position:absolute; bottom:28%; left:50%; width:6%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius:40% 40% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: tct-march 6s ease-in-out infinite; }
.scn-theory-considers-ends-and-means-tactics .lantern-glow { position:absolute; bottom:50%; left:50%; width:12%; height:15%; transform:translateX(-50%); background: radial-gradient(ellipse, #ffc060 0%, #b08030 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,192,96,.25), 0 0 120px 40px rgba(255,192,96,.1); animation: tct-flicker 3.5s ease-in-out infinite alternate; }
.scn-theory-considers-ends-and-means-tactics .tent-pole { position:absolute; top:0; left:50%; width:2%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius:4px; box-shadow: 0 0 6px rgba(0,0,0,.3); }
.scn-theory-considers-ends-and-means-tactics .shadow-figure { position:absolute; bottom:20%; left:20%; width:14%; height:28%; background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: tct-consider 8s ease-in-out infinite; }
.scn-theory-considers-ends-and-means-tactics .compass-needle { position:absolute; bottom:45%; left:55%; width:2%; height:12%; background: linear-gradient(180deg, #c8a868 0%, #a08848 50%, #6a5a3a 100%); border-radius:50% 50% 20% 20%; transform-origin: bottom center; animation: tct-navigate 10s ease-in-out infinite; }
@keyframes tct-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tct-unroll { 0% { transform:scaleY(.9); opacity:.7 } 25% { transform:scaleY(1.02); opacity:.9 } 50% { transform:scaleY(1); opacity:.85 } 75% { transform:scaleY(.98); opacity:.8 } 100% { transform:scaleY(.9); opacity:.7 } }
@keyframes tct-march { 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 tct-flicker { 0% { opacity:.6; transform:translateX(-50%) scale(.95) } 25% { opacity:.85; transform:translateX(-50%) scale(1.04) } 50% { opacity:.75; transform:translateX(-50%) scale(1) } 75% { opacity:.9; transform:translateX(-50%) scale(1.03) } 100% { opacity:.65; transform:translateX(-50%) scale(.97) } }
@keyframes tct-consider { 0% { transform:scaleY(1) rotate(0deg) } 25% { transform:scaleY(1.01) rotate(2deg) } 50% { transform:scaleY(1) rotate(0deg) } 75% { transform:scaleY(.99) rotate(-2deg) } 100% { transform:scaleY(1) rotate(0deg) } }
@keyframes tct-navigate { 0% { transform:rotate(0deg) } 20% { transform:rotate(25deg) } 40% { transform:rotate(-10deg) } 60% { transform:rotate(35deg) } 80% { transform:rotate(5deg) } 100% { transform:rotate(0deg) } }

/* Scene 1: defence-of-streams-river-transport */
.scn-defence-of-streams-river-transport {
  background: linear-gradient(180deg, #fcf6e3 0%, #f5e6c8 40%, #d6b47e 100%), radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 70%);
}
.scn-defence-of-streams-river-transport .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fef8e0 0%, #f5e0b0 100%);
  animation: dst-sky 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-river-transport .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7cc5d9 0%, #3a6b8a 60%, #2b5070 100%);
  animation: dst-river 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-river-transport .hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8c9a6b 0%, #5b6e44 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.15);
  animation: dst-hills 18s ease-in-out infinite alternate;
}
.scn-defence-of-streams-river-transport .boat {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #8b5a2b 0%, #4e3018 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: dst-boat 6s ease-in-out infinite;
}
.scn-defence-of-streams-river-transport .sail {
  position: absolute; bottom: calc(30% + 24px); left: 44%; width: 12px; height: 40px;
  background: linear-gradient(90deg, #f0e6d6 0%, #e0d0b8 100%);
  border-radius: 10% 90% 10% 90% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: dst-sail 6s ease-in-out infinite;
}
.scn-defence-of-streams-river-transport .figure {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a302a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dst-walk 4s ease-in-out infinite;
}
.scn-defence-of-streams-river-transport .reed-a,
.scn-defence-of-streams-river-transport .reed-b {
  position: absolute; bottom: 10%; height: 60px; width: 6px;
  background: linear-gradient(0deg, #5b6e44 0%, #8c9a6b 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
}
.scn-defence-of-streams-river-transport .reed-a {
  left: 15%; animation: dst-reed 5s ease-in-out infinite;
}
.scn-defence-of-streams-river-transport .reed-b {
  right: 10%; animation: dst-reed 6s ease-in-out infinite alternate;
}
@keyframes dst-sky { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes dst-river { 0% { transform: translateY(0); } 100% { transform: translateY(4px); } }
@keyframes dst-hills { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes dst-boat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes dst-sail { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes dst-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes dst-reed { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

/* Scene 2: defence-of-swamps-intro */
.scn-defence-of-swamps-intro {
  background: linear-gradient(180deg, #faf2e0 0%, #e8dcc0 50%, #c4b08a 100%), radial-gradient(ellipse at 50% 30%, #fffbe8 0%, transparent 70%);
}
.scn-defence-of-swamps-intro .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fdf6e8 0%, #ece0c8 100%);
  animation: dswi-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-intro .swamp-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #a4c8a0 0%, #6b8e5a 60%, #4a6e3a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
  animation: dswi-water 12s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-intro .tree-left,
.scn-defence-of-swamps-intro .tree-right {
  position: absolute; bottom: 45%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #5a3d28 0%, #3a2415 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
}
.scn-defence-of-swamps-intro .tree-left { left: 15%; animation: dswi-tree 20s ease-in-out infinite alternate; }
.scn-defence-of-swamps-intro .tree-right { right: 20%; height: 100px; animation: dswi-tree 25s ease-in-out infinite; }
.scn-defence-of-swamps-intro .reeds {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 50px;
  background: repeating-linear-gradient(90deg, #7a955a 0px, #7a955a 4px, transparent 4px, transparent 8px);
  mask-image: linear-gradient(0deg, transparent 0%, #000 100%);
  animation: dswi-reeds 8s ease-in-out infinite;
}
.scn-defence-of-swamps-intro .path {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 8px;
  background: #9c8a6b;
  border-radius: 20% 20% 0 0;
  transform: skewX(-5deg);
  animation: dswi-path 10s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-intro .bird {
  position: absolute; top: 18%; left: 60%; width: 20px; height: 12px;
  background: #4a3a2a;
  border-radius: 50%;
  clip-path: polygon(0 50%, 100% 50%, 100% 60%, 0 60%);
  animation: dswi-bird 30s linear infinite;
}
@keyframes dswi-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dswi-water { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes dswi-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.01); } 100% { transform: rotate(-0.5deg) scaleY(0.99); } }
@keyframes dswi-reeds { 0% { mask-position: 0 0; } 100% { mask-position: 20px 0; } }
@keyframes dswi-path { 0% { transform: skewX(-5deg) translateY(0); } 100% { transform: skewX(-5deg) translateY(-2px); } }
@keyframes dswi-bird { 0% { transform: translateX(0); } 100% { transform: translateX(-150px); } }

/* Scene 3: defence-of-swamps-crossing-difficulty */
.scn-defence-of-swamps-crossing-difficulty {
  background: linear-gradient(180deg, #f5ecda 0%, #d9cbb0 50%, #b0a088 100%), radial-gradient(ellipse at 50% 60%, #fff7e8 0%, transparent 70%);
}
.scn-defence-of-swamps-crossing-difficulty .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f9f1e0 0%, #e8dcc4 100%);
  animation: dswc-sky 16s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-crossing-difficulty .swamp-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #7c9a70 0%, #4a6e3a 60%, #2a4a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-defence-of-swamps-crossing-difficulty .plank-fore,
.scn-defence-of-swamps-crossing-difficulty .plank-back {
  position: absolute; height: 10px; background: linear-gradient(180deg, #9c7a5a 0%, #6b5038 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-defence-of-swamps-crossing-difficulty .plank-fore {
  bottom: 25%; left: 20%; width: 70px;
  animation: dswc-plank-fore 3s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-crossing-difficulty .plank-back {
  bottom: 30%; right: 30%; width: 50px;
  animation: dswc-plank-back 4s ease-in-out infinite;
}
.scn-defence-of-swamps-crossing-difficulty .soldier {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: dswc-walk 4s ease-in-out infinite;
}
.scn-defence-of-swamps-crossing-difficulty .swamp-reed {
  position: absolute; bottom: 15%; left: 10%; width: 6px; height: 70px;
  background: linear-gradient(0deg, #5a7040 0%, #8a9a6a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dswc-reed 5s ease-in-out infinite;
}
.scn-defence-of-swamps-crossing-difficulty .mud {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: dswc-mud 8s ease-in-out infinite alternate;
}
@keyframes dswc-sky { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes dswc-plank-fore { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dswc-plank-back { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dswc-walk { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-52%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes dswc-reed { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
@keyframes dswc-mud { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* Scene 4: defence-of-swamps-dykes-not-removable */
.scn-defence-of-swamps-dykes-not-removable {
  background: linear-gradient(180deg, #f2e8d4 0%, #d8c8ac 45%, #b0a080 100%), radial-gradient(ellipse at 50% 20%, #fff7e8 0%, transparent 70%);
}
.scn-defence-of-swamps-dykes-not-removable .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcf4e4 0%, #e8dcc4 100%);
  animation: dswd-sky 12s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-dykes-not-removable .swamp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7ca070 0%, #4a6e3a 60%, #2a4a1a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
}
.scn-defence-of-swamps-dykes-not-removable .dyke {
  position: absolute; bottom: 30%; left: 25%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #9c8a6b 0%, #6b5a42 100%);
  border-radius: 10% 10% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: dswd-dyke 9s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-dykes-not-removable .cut-mark {
  position: absolute; bottom: 32%; left: 38%; width: 8px; height: 20px;
  background: #4a3a2a;
  border-radius: 0 0 50% 50%;
  transform: rotate(10deg);
  box-shadow: inset 0 0 4px #2a1a0a;
  animation: dswd-cut 4s ease-in-out infinite;
}
.scn-defence-of-swamps-dykes-not-removable .figure-tool {
  position: absolute; bottom: 28%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dswd-work 5s ease-in-out infinite;
}
.scn-defence-of-swamps-dykes-not-removable .water-plant {
  position: absolute; bottom: 15%; right: 15%; width: 4px; height: 40px;
  background: linear-gradient(0deg, #5a7040 0%, #8a9a6a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dswd-plant 6s ease-in-out infinite alternate;
}
.scn-defence-of-swamps-dykes-not-removable .cloud {
  position: absolute; top: 16%; left: 10%; width: 80px; height: 16px;
  background: rgba(240, 230, 210, 0.5);
  border-radius: 50%;
  filter: blur(5px);
  animation: dswd-cloud 35s linear infinite;
}
@keyframes dswd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dswd-dyke { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dswd-cut { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.1); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes dswd-work { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dswd-plant { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes dswd-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* decision-reserves-superiority */
.scn-decision-reserves-superiority {
  background:
    linear-gradient(135deg, rgba(25,20,30,1) 0%, rgba(40,35,45,1) 50%, rgba(20,15,25,1) 100%),
    radial-gradient(ellipse at 60% 70%, rgba(180,120,60,0.2) 0%, transparent 70%);
}
.scn-decision-reserves-superiority .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,8,12,0.8) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
}
.scn-decision-reserves-superiority .table {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -3px 10px rgba(0,0,0,0.6);
  animation: dec-table 8s ease-in-out infinite alternate;
}
.scn-decision-reserves-superiority .figure-l {
  position: absolute; bottom: 33%; left: 25%; 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: dec-figureL 3s ease-in-out infinite alternate;
}
.scn-decision-reserves-superiority .figure-r {
  position: absolute; bottom: 33%; right: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dec-figureR 3.5s ease-in-out infinite alternate;
}
.scn-decision-reserves-superiority .stack-a {
  position: absolute; bottom: 29%; left: 38%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dec-stack 5s ease-in-out infinite alternate;
}
.scn-decision-reserves-superiority .stack-b {
  position: absolute; bottom: 29%; right: 38%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dec-stack 5s ease-in-out infinite alternate-reverse;
}
.scn-decision-reserves-superiority .lantern {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 16px;
  margin-left: -6px;
  background: radial-gradient(circle, #e0a040 0%, #c08030 50%, #a06020 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 20px 6px rgba(192,128,48,0.6), 0 0 40px 12px rgba(192,128,48,0.3);
  animation: dec-lantern 2s ease-in-out infinite alternate;
}
.scn-decision-reserves-superiority .shadow-tbl {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%);
  filter: blur(6px);
  animation: dec-shadow 6s ease-in-out infinite alternate;
}
@keyframes dec-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dec-figureL {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes dec-figureR {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes dec-stack {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.8); }
  100% { transform: scaleY(1); }
}
@keyframes dec-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(192,128,48,0.5); }
  50% { box-shadow: 0 0 25px 8px rgba(224,160,64,0.7); }
  100% { box-shadow: 0 0 18px 5px rgba(192,128,48,0.5); }
}
@keyframes dec-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* danger-retreat-night-decision */
.scn-danger-retreat-night-decision {
  background:
    linear-gradient(180deg, #0b0f18 0%, #141c2a 30%, #1a2230 60%, #0a0e14 100%),
    radial-gradient(ellipse at 50% 100%, rgba(20,30,50,0.6) 0%, transparent 80%);
}
.scn-danger-retreat-night-decision .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(10,15,25,0.9) 0%, rgba(20,25,40,0.5) 100%);
  animation: ret-sky 12s ease-in-out infinite alternate;
}
.scn-danger-retreat-night-decision .moon {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,210,230,0.6) 0%, rgba(150,160,180,0.2) 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(150,160,180,0.2);
  animation: ret-moon 20s linear infinite alternate;
}
.scn-danger-retreat-night-decision .figure {
  position: absolute; bottom: 25%; left: 40%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #0c1018 0%, #040608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ret-figure 4s ease-in-out infinite;
}
.scn-danger-retreat-night-decision .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1f2a 0%, #0a0e14 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: ret-ground 6s ease-in-out infinite alternate;
}
.scn-danger-retreat-night-decision .fog {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(100,120,150,0.1) 50%, transparent 100%);
  filter: blur(12px);
  animation: ret-fog 15s ease-in-out infinite;
}
.scn-danger-retreat-night-decision .streak {
  position: absolute; top: 5%; left: 30%; width: 2px; height: 60px;
  background: linear-gradient(180deg, rgba(200,220,255,0.8) 0%, transparent 100%);
  transform: rotate(-20deg);
  filter: blur(1px);
  animation: ret-streak 8s linear infinite;
}
.scn-danger-retreat-night-decision .residue {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(100,120,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ret-residue 10s ease-in-out infinite alternate;
}
@keyframes ret-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ret-moon {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(10px) scale(1.1); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes ret-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0); }
  75% { transform: translateX(15px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0); }
}
@keyframes ret-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes ret-fog {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(-20px); opacity: 0.6; }
  100% { transform: translateX(0); opacity: 0.3; }
}
@keyframes ret-streak {
  0% { transform: rotate(-20deg) translateY(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: rotate(-20deg) translateY(-30px); opacity: 0; }
}
@keyframes ret-residue {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.5); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.2; }
}

/* other-causes-resolution */
.scn-other-causes-resolution {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, rgba(60,50,40,0.3) 0%, transparent 70%);
}
.scn-other-causes-resolution .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,10,20,0.4) 0%, transparent 100%);
}
.scn-other-causes-resolution .desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: oth-desk 10s ease-in-out infinite alternate;
}
.scn-other-causes-resolution .candle {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 20px;
  margin-left: -5px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b88a 100%);
  border-radius: 3px 3px 5px 5px;
  box-shadow: 0 0 4px rgba(200,180,130,0.3);
  animation: oth-candle 6s ease-in-out infinite alternate;
}
.scn-other-causes-resolution .flame {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 12px;
  margin-left: -4px;
  background: radial-gradient(circle, #ffe8b0 0%, #f0c060 40%, #d08020 80%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: oth-flame 1.5s ease-in-out infinite alternate;
}
.scn-other-causes-resolution .scale-beam {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 2px;
  background: #4a3a2a;
  transform-origin: center center;
  animation: oth-beam 4s ease-in-out infinite alternate;
}
.scn-other-causes-resolution .pan-left {
  position: absolute; bottom: 25%; left: 32%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  animation: oth-panL 4s ease-in-out infinite alternate;
}
.scn-other-causes-resolution .pan-right {
  position: absolute; bottom: 25%; right: 32%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  animation: oth-panR 4s ease-in-out infinite alternate-reverse;
}
.scn-other-causes-resolution .glow {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 60px;
  margin-left: -30px;
  background: radial-gradient(circle, rgba(200,160,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: oth-glow 3s ease-in-out infinite alternate;
}
@keyframes oth-desk {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes oth-candle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes oth-flame {
  0% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.1) rotate(2deg); }
  100% { transform: scaleY(1) rotate(-2deg); }
}
@keyframes oth-beam {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes oth-panL {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes oth-panR {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes oth-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* courage-reason-conflict */
.scn-courage-reason-conflict {
  background:
    linear-gradient(180deg, #181024 0%, #241838 30%, #181024 100%),
    radial-gradient(ellipse at 50% 50%, rgba(140,70,40,0.15) 0%, transparent 70%);
}
.scn-courage-reason-conflict .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,5,15,0.5) 0%, transparent 100%);
}
.scn-courage-reason-conflict .floor {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: cou-floor 8s ease-in-out infinite alternate;
}
.scn-courage-reason-conflict .figure-l {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cou-figL 2s ease-in-out infinite alternate;
}
.scn-courage-reason-conflict .figure-r {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cou-figR 2.2s ease-in-out infinite alternate;
}
.scn-courage-reason-conflict .sword-l {
  position: absolute; bottom: 20%; left: 30%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  transform-origin: bottom left;
  animation: cou-swordL 1.5s ease-in-out infinite alternate;
}
.scn-courage-reason-conflict .sword-r {
  position: absolute; bottom: 20%; right: 30%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  transform-origin: bottom right;
  animation: cou-swordR 1.5s ease-in-out infinite alternate-reverse;
}
.scn-courage-reason-conflict .spark {
  position: absolute; top: 45%; left: 50%; width: 8px; height: 8px;
  margin-left: -4px;
  background: radial-gradient(circle, #e0a040 0%, rgba(224,160,64,0.3) 50%, transparent 100%);
  border-radius: 50%;
  animation: cou-spark 0.5s ease-in-out infinite alternate;
}
.scn-courage-reason-conflict .shadow-l {
  position: absolute; bottom: 18%; left: 28%; width: 20px; height: 4px;
  background: rgba(0,0,0,0.6);
  filter: blur(4px);
  animation: cou-shadL 3s ease-in-out infinite alternate;
}
@keyframes cou-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.9); }
  100% { transform: scaleY(1); }
}
@keyframes cou-figL {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cou-figR {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cou-swordL {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(20deg); }
}
@keyframes cou-swordR {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes cou-spark {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes cou-shadL {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* ========== Scene: theory-will-stop-sooner-in-strategy ========== */
.scn-theory-will-stop-sooner-in-strategy {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1e140e 80%),
    linear-gradient(180deg, #0f0b07 0%, #1a120c 50%, #241a12 100%);
}
.scn-theory-will-stop-sooner-in-strategy .bg-dark {
  position: absolute; inset: 0; opacity: 0.6;
  background: radial-gradient(ellipse at 60% 50%, transparent 0%, #0a0604 80%);
  animation: tws-shadow 15s ease-in-out infinite alternate;
}
.scn-theory-will-stop-sooner-in-strategy .desk {
  position: absolute; left: 5%; right: 5%; bottom: 0; height: 30%;
  background: linear-gradient(180deg, #3d2a1c 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-theory-will-stop-sooner-in-strategy .book {
  position: absolute; left: 35%; bottom: 18%; width: 180px; height: 120px;
  background: linear-gradient(135deg, #4a3525, #2e1f12);
  border-radius: 2% 2% 8% 8%; transform: rotate(-2deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: tws-book-breathe 10s ease-in-out infinite;
}
.scn-theory-will-stop-sooner-in-strategy .book-page {
  position: absolute; left: 38%; bottom: 21%; width: 150px; height: 90px;
  background: linear-gradient(180deg, #cba87a 0%, #b08a5e 100%);
  border-radius: 1% 1% 5% 5%; opacity: 0.85;
  animation: tws-page-shimmer 12s ease-in-out infinite;
}
.scn-theory-will-stop-sooner-in-strategy .candle {
  position: absolute; left: 58%; bottom: 30%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #e8d5b0 0%, #a0825a 50%, #5a4028 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-theory-will-stop-sooner-in-strategy .candle-flame {
  position: absolute; left: calc(58% + 4px); bottom: calc(30% + 50px); width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd470 0%, #ffa040 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,160,64,0.4);
  animation: tws-flame 2s ease-in-out infinite alternate;
}
.scn-theory-will-stop-sooner-in-strategy .hand-point {
  position: absolute; left: 28%; bottom: 16%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1c12 0%, #1a0e06 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(15deg);
  transform-origin: 50% 100%;
  animation: tws-hand-point 8s ease-in-out infinite;
}
@keyframes tws-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }
@keyframes tws-book-breathe { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } }
@keyframes tws-page-shimmer { 0%,100% { opacity: 0.8; } 50% { opacity: 0.95; } }
@keyframes tws-flame { 0% { transform: scaleY(0.9) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.85; } }
@keyframes tws-hand-point { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } }

/* ========== Scene: art-or-science-of-war-title ========== */
.scn-art-or-science-of-war-title {
  background:
    radial-gradient(ellipse at 50% 60%, #2b1e14 0%, #120c08 80%),
    linear-gradient(180deg, #0a0705 0%, #1c130d 100%);
}
.scn-art-or-science-of-war-title .bg-dim {
  position: absolute; inset: 0; opacity: 0.5;
  background: radial-gradient(ellipse at 40% 30%, transparent 0%, #050302 70%);
  animation: aos-drift 25s ease-in-out infinite alternate;
}
.scn-art-or-science-of-war-title .scroll {
  position: absolute; left: 30%; bottom: 20%; width: 200px; height: 140px;
  background: linear-gradient(135deg, #6a4f36 0%, #4a3522 50%, #2e1f14 100%);
  border-radius: 5% 5% 15% 15%; transform: rotate(1deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: aos-scroll-unfurl 12s ease-in-out infinite;
}
.scn-art-or-science-of-war-title .scroll-text-lines {
  position: absolute; left: 35%; bottom: 25%; width: 150px; height: 100px;
  background: repeating-linear-gradient(0deg, #6d5438 0px, #6d5438 2px, transparent 2px, transparent 8px);
  opacity: 0.6; border-radius: 2px;
  animation: aos-lines-fade 15s ease-in-out infinite;
}
.scn-art-or-science-of-war-title .inkwell {
  position: absolute; left: 55%; bottom: 15%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #705840 0%, #3a281a 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: aos-inkwell-bob 9s ease-in-out infinite;
}
.scn-art-or-science-of-war-title .quill {
  position: absolute; left: 52%; bottom: 38%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #6b5540 0%, #1a0e08 100%);
  border-radius: 20% 20% 50% 50%; transform: rotate(20deg);
  transform-origin: 50% 100%;
  animation: aos-quill-sway 6s ease-in-out infinite alternate;
}
.scn-art-or-science-of-war-title .scale-left {
  position: absolute; left: 15%; bottom: 28%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #b09878 0%, #6a5038 100%);
  border-radius: 50% 50% 5% 5%; box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: aos-scale-tilt 11s ease-in-out infinite;
}
.scn-art-or-science-of-war-title .scale-right {
  position: absolute; left: 55%; bottom: 28%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #b09878 0%, #6a5038 100%);
  border-radius: 50% 50% 5% 5%; box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: aos-scale-tilt 11s ease-in-out infinite 0.5s;
}
.scn-art-or-science-of-war-title .scale-beam {
  position: absolute; left: 15%; bottom: calc(28% + 50px); width: 180px; height: 6px;
  background: linear-gradient(90deg, #8a6a50, #5a4028);
  border-radius: 40%; transform-origin: 50% 50%;
  animation: aos-beam-rock 11s ease-in-out infinite;
}
@keyframes aos-drift { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; } }
@keyframes aos-scroll-unfurl { 0%,100% { transform: rotate(1deg) scaleX(0.98); } 50% { transform: rotate(2deg) scaleX(1); } }
@keyframes aos-lines-fade { 0%,100% { opacity: 0.5; } 50% { opacity: 0.7; } }
@keyframes aos-inkwell-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes aos-quill-sway { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(18deg); } }
@keyframes aos-scale-tilt { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } }
@keyframes aos-beam-rock { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

/* ========== Scene: difficulty-of-separating-perception-from-judgment ========== */
.scn-difficulty-of-separating-perception-from-judgment {
  background:
    radial-gradient(ellipse at 50% 45%, #2f2215 0%, #140e08 80%),
    linear-gradient(180deg, #0c0805 0%, #1a120b 100%);
}
.scn-difficulty-of-separating-perception-from-judgment .bg-deep {
  position: absolute; inset: 0; opacity: 0.4;
  background: radial-gradient(ellipse at 30% 60%, transparent 0%, #050201 70%);
  animation: dsp-pulse 20s ease-in-out infinite alternate;
}
.scn-difficulty-of-separating-perception-from-judgment .page {
  position: absolute; left: 20%; bottom: 10%; width: 260px; height: 140px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 3%; transform: rotate(-1deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-difficulty-of-separating-perception-from-judgment .page-lines {
  position: absolute; left: 22%; bottom: 12%; width: 240px; height: 120px;
  background: repeating-linear-gradient(0deg, #7a6248 0px, #7a6248 2px, transparent 2px, transparent 10px);
  opacity: 0.5; border-radius: 2px;
  animation: dsp-lines-warp 16s ease-in-out infinite;
}
.scn-difficulty-of-separating-perception-from-judgment .magnifier-ring {
  position: absolute; left: 48%; bottom: 30%; width: 70px; height: 70px;
  border: 4px solid #5a4532; border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.6);
  background: transparent;
  animation: dsp-glass-rotate 14s ease-in-out infinite;
}
.scn-difficulty-of-separating-perception-from-judgment .magnifier-lens {
  position: absolute; left: calc(48% + 4px); bottom: calc(30% + 4px); width: 62px; height: 62px;
  background: radial-gradient(circle, rgba(180,150,100,0.2) 0%, rgba(180,150,100,0.05) 70%);
  border-radius: 50%; filter: blur(2px);
  animation: dsp-lens-shine 10s ease-in-out infinite alternate;
}
.scn-difficulty-of-separating-perception-from-judgment .hand-holding {
  position: absolute; left: 40%; bottom: 22%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1c12 0%, #160e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: 50% 100%;
  animation: dsp-hand-hold 9s ease-in-out infinite alternate;
}
.scn-difficulty-of-separating-perception-from-judgment .hand-grip {
  position: absolute; left: 36%; bottom: 44%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a1c12 0%, #1a0e08 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: dsp-grip-squeeze 7s ease-in-out infinite;
}
@keyframes dsp-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }
@keyframes dsp-lines-warp { 0%,100% { opacity: 0.4; filter: blur(0px); } 50% { opacity: 0.7; filter: blur(1px); } }
@keyframes dsp-glass-rotate { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes dsp-lens-shine { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes dsp-hand-hold { 0% { transform: rotate(10deg); } 50% { transform: rotate(14deg); } 100% { transform: rotate(8deg); } }
@keyframes dsp-grip-squeeze { 0%,100% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-12deg) scaleX(0.9); } }

/* ========== Scene: war-neither-art-nor-science ========== */
.scn-war-neither-art-nor-science {
  background:
    radial-gradient(ellipse at 50% 50%, #2a2018 0%, #0e0a06 80%),
    linear-gradient(180deg, #080504 0%, #16100a 100%);
}
.scn-war-neither-art-nor-science .bg-shadow {
  position: absolute; inset: 0; opacity: 0.6;
  background: radial-gradient(ellipse at 40% 20%, transparent 0%, #050201 70%);
  animation: wna-shadow 18s ease-in-out infinite alternate;
}
.scn-war-neither-art-nor-science .table {
  position: absolute; left: 5%; right: 5%; bottom: 0; height: 28%;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e140c 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.5);
}
.scn-war-neither-art-nor-science .globe {
  position: absolute; left: 40%; bottom: 22%; width: 100px; height: 100px;
  background: radial-gradient(circle at 40% 40%, #5a4a3a 0%, #2a1e14 50%, #1a120c 100%);
  border-radius: 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.4);
  animation: wna-globe-spin 30s linear infinite;
}
.scn-war-neither-art-nor-science .globe-stand {
  position: absolute; left: 44%; bottom: 4%; width: 12px; height: 18%;
  background: linear-gradient(180deg, #6a5040 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%; transform: skewX(2deg);
}
.scn-war-neither-art-nor-science .books-stack {
  position: absolute; left: 18%; bottom: 6%; width: 120px; height: 80px;
  background: repeating-linear-gradient(180deg, #4a3525 0px, #4a3525 18px, #3a281a 18px, #3a281a 36px, #2e1e12 36px, #2e1e12 54px, #5a4432 54px, #5a4432 72px);
  border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: wna-books-settle 12s ease-in-out infinite;
}
.scn-war-neither-art-nor-science .helmet {
  position: absolute; left: 58%; bottom: 12%; width: 40px; height: 40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 20% 20%; transform: rotate(5deg);
  box-shadow: inset 0 -6px 8px rgba(0,0,0,0.5);
  animation: wna-helmet-tilt 8s ease-in-out infinite alternate;
}
.scn-war-neither-art-nor-science .compass {
  position: absolute; left: 65%; bottom: 26%; width: 28px; height: 28px;
  background: radial-gradient(circle at 50% 50%, #9a8a70 0%, #4a3828 80%);
  border-radius: 50%; border: 2px solid #5a4028;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: wna-compass-shimmer 9s ease-in-out infinite;
}
@keyframes wna-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }
@keyframes wna-globe-spin { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.01); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes wna-books-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes wna-helmet-tilt { 0% { transform: rotate(5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(3deg); } }
@keyframes wna-compass-shimmer { 0%,100% { opacity: 0.7; } 50% { opacity: 0.95; } }

.scn-retreat-into-interior-loss-and-moral {
  background: 
    linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 30%, #2a2a3e 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, rgba(180,150,100,0.15) 0%, transparent 60%);
}

.scn-retreat-into-interior-loss-and-moral .tent-ceiling {
  position: absolute;
  top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 60%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ril-ceiling 6s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .tent-wall-bg {
  position: absolute;
  inset: 20% 10% 20% 10%;
  background: linear-gradient(135deg, #4e4e62 0%, #323244 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}

.scn-retreat-into-interior-loss-and-moral .table {
  position: absolute;
  bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: ril-table 4s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .map {
  position: absolute;
  bottom: 22%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(135deg, #c8b898 0%, #a08860 50%, #806840 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ril-map 5s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .candle {
  position: absolute;
  bottom: 25%; left: 55%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 4px rgba(255,200,100,0.3);
  animation: ril-candle 2s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .candle-glow {
  position: absolute;
  bottom: 30%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(255,150,50,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: ril-glow 3s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .candle-flame {
  position: absolute;
  bottom: 39%; left: 52%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffe8a0 0%, #ffb040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ril-flame 0.8s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-loss-and-moral .figure-silhouette {
  position: absolute;
  bottom: 18%; left: 16%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ril-figure 5s ease-in-out infinite alternate;
}

@keyframes ril-ceiling {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(0.95); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes ril-table {
  0% { transform: translateY(0); box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
  50% { transform: translateY(1px); box-shadow: 0 -2px 4px rgba(0,0,0,0.4); }
  100% { transform: translateY(0); box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
}
@keyframes ril-map {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(1px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes ril-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes ril-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ril-flame {
  0% { transform: rotate(-3deg) scaleY(1); }
  25% { transform: rotate(2deg) scaleY(0.9); }
  50% { transform: rotate(-1deg) scaleY(1.1); }
  75% { transform: rotate(3deg) scaleY(0.95); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes ril-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-retreat-into-interior-moral-force {
  background:
    linear-gradient(180deg, #404052 0%, #303040 40%, #28283a 100%),
    radial-gradient(ellipse at 50% 100%, rgba(150,120,80,0.12) 0%, transparent 70%);
}

.scn-retreat-into-interior-moral-force .tent-wall {
  position: absolute;
  inset: 15% 12% 15% 12%;
  background: linear-gradient(135deg, #48485a 0%, #2e2e40 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: rim-wall 6s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .dispatch-table {
  position: absolute;
  bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: rim-table 4s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .dispatch-paper {
  position: absolute;
  bottom: 24%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a488 50%, #a08c70 100%);
  border-radius: 1px;
  transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rim-paper 5s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .hand {
  position: absolute;
  bottom: 25%; left: 58%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c8b898 0%, #a08870 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 60% 80%;
  animation: rim-hand 3s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .seal {
  position: absolute;
  bottom: 26%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b84830 0%, #803020 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(176,72,48,0.4);
  animation: rim-seal 8s linear infinite;
}

.scn-retreat-into-interior-moral-force .inkwell {
  position: absolute;
  bottom: 22%; right: 28%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #303040 0%, #101020 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
  animation: rim-ink 4s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .lamp {
  position: absolute;
  top: 22%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #706050 0%, #403020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px rgba(255,180,80,0.3);
  animation: rim-lamp 6s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-moral-force .lamp-glow {
  position: absolute;
  top: 15%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,180,80,0.2) 30%, transparent 65%);
  border-radius: 50%;
  animation: rim-glow 3s ease-in-out infinite alternate;
}

@keyframes rim-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rim-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes rim-paper {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(1px); }
  100% { transform: rotate(3deg) translateX(0); }
}
@keyframes rim-hand {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rim-seal {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(180deg); }
  100% { transform: translateY(0) rotate(360deg); }
}
@keyframes rim-ink {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes rim-lamp {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes rim-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-retreat-into-interior-advantages-disadvantages {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,240,210,0.4) 0%, transparent 70%);
}

.scn-retreat-into-interior-advantages-disadvantages .room-wall {
  position: absolute;
  inset: 10% 8% 20% 8%;
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(120,80,40,0.2);
  animation: ria-wall 12s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .window-frame {
  position: absolute;
  top: 15%; left: 60%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #a08870 0%, #806050 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: ria-window-frame 8s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .window-glass {
  position: absolute;
  top: 17%; left: 62%; width: 21%; height: 41%;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0c0d8 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(100,150,200,0.3);
  animation: ria-window-glass 10s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .desk {
  position: absolute;
  bottom: 15%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: ria-desk 6s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .papers {
  position: absolute;
  bottom: 22%; left: 30%; width: 35%; height: 8%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 1px;
  transform: rotate(-1deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ria-papers 7s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .ink-bottle {
  position: absolute;
  bottom: 20%; right: 25%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #404060 0%, #202040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: ria-ink 5s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-advantages-disadvantages .dust-mote-1 {
  position: absolute;
  top: 40%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,240,200,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: ria-dust1 25s linear infinite;
}

.scn-retreat-into-interior-advantages-disadvantages .dust-mote-2 {
  position: absolute;
  top: 50%; left: 60%; width: 3px; height: 3px;
  background: rgba(255,240,200,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: ria-dust2 30s linear infinite reverse;
}

.scn-retreat-into-interior-advantages-disadvantages .shadow-shaft {
  position: absolute;
  top: 0; left: 60%; width: 28%; height: 100%;
  background: linear-gradient(180deg, rgba(60,40,20,0.08) 0%, transparent 50%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: ria-shadow 9s ease-in-out infinite alternate;
}

@keyframes ria-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes ria-window-frame {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ria-window-glass {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes ria-desk {
  0% { transform: translateY(0); box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
  50% { transform: translateY(1px); box-shadow: 0 -2px 6px rgba(0,0,0,0.2); }
  100% { transform: translateY(0); box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
}
@keyframes ria-papers {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(1px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes ria-ink {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes ria-dust1 {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translateY(-200px) translateX(40px); opacity: 0; }
}
@keyframes ria-dust2 {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.5; }
  100% { transform: translateY(-180px) translateX(-30px); opacity: 0; }
}
@keyframes ria-shadow {
  0% { opacity: 0.5; transform: skewX(-2deg); }
  50% { opacity: 0.8; transform: skewX(0deg); }
  100% { opacity: 0.6; transform: skewX(-2deg); }
}

.scn-retreat-into-interior-russia-exception {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d4c8b0 50%, #c0b4a0 100%),
    radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.3) 0%, transparent 70%);
}

.scn-retreat-into-interior-russia-exception .study-wall {
  position: absolute;
  inset: 8% 6% 15% 6%;
  background: linear-gradient(135deg, #d8ccb8 0%, #c0b09c 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(80,60,40,0.15);
  animation: rir-wall 14s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .map-stand {
  position: absolute;
  bottom: 12%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #705840 0%, #503820 100%);
  border-radius: 4px 4px 0 0;
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: rir-stand 8s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .large-map {
  position: absolute;
  bottom: 28%; left: 32%; width: 36%; height: 34%;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a488 50%, #a08c70 100%);
  border-radius: 2px;
  transform: rotate(0.5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: rir-map 10s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .pointing-hand {
  position: absolute;
  bottom: 40%; left: 48%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #c0b09c 0%, #a08878 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 50% 80%;
  animation: rir-hand 5s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .compass {
  position: absolute;
  bottom: 32%; right: 25%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d8c8a8 0%, #a08870 60%, #705840 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: rir-compass 20s linear infinite;
}

.scn-retreat-into-interior-russia-exception .inkwell {
  position: absolute;
  bottom: 18%; left: 20%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #404060 0%, #202040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: rir-ink 6s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .window-light {
  position: absolute;
  top: 12%; left: 55%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(200,220,240,0.3) 0%, rgba(180,200,220,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: rir-light 9s ease-in-out infinite alternate;
}

.scn-retreat-into-interior-russia-exception .curtain {
  position: absolute;
  top: 0; left: 52%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: rir-curtain 7s ease-in-out infinite alternate;
}

@keyframes rir-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes rir-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes rir-map {
  0% { transform: rotate(0.5deg) translateX(0); }
  50% { transform: rotate(-0.5deg) translateX(1px); }
  100% { transform: rotate(0.5deg) translateX(0); }
}
@keyframes rir-hand {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rir-compass {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes rir-ink {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes rir-light {
  0% { opacity: 0.5; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(2px); }
  100% { opacity: 0.6; transform: translateX(0); }
}
@keyframes rir-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

.scn-retreat-into-interior-absolute-mass {
  background: 
    linear-gradient(180deg, #f7e9d7 0%, #d9c5a3 50%, #b8a07a 100%),
    radial-gradient(ellipse at 80% 20%, #fff7e6 0%, transparent 60%);
}
.scn-retreat-into-interior-absolute-mass .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e6dcc6 0%, #c4b69a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: t-a-wall 12s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-absolute-mass .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #ab9780 0%, #8a7760 100%);
  border-radius: 40% 40% 0 0 / 10% 10% 0 0;
}
.scn-retreat-into-interior-absolute-mass .col-left {
  position: absolute; bottom: 25%; left: 10%; width: 4%; height: 60%;
  background: linear-gradient(90deg, #ccc3b5 0%, #b0a08a 100%);
  border-radius: 6px; box-shadow: 4px 4px 12px rgba(0,0,0,0.15);
  animation: t-a-col 20s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-absolute-mass .col-right {
  position: absolute; bottom: 25%; right: 10%; width: 4%; height: 60%;
  background: linear-gradient(90deg, #b0a08a 0%, #ccc3b5 100%);
  border-radius: 6px; box-shadow: -4px 4px 12px rgba(0,0,0,0.15);
  animation: t-a-col 20s ease-in-out infinite alternate reverse;
}
.scn-retreat-into-interior-absolute-mass .window {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 40%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #fffbea 0%, #f0e6c8 60%, transparent 80%);
  border: 6px solid #6b5a44; border-radius: 12px; box-shadow: inset 0 0 40px #fff3d6;
  animation: t-a-window 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-absolute-mass .light-ray {
  position: absolute; top: 12%; left: 52%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,247,224,0.35) 0%, transparent 80%);
  filter: blur(8px);
  animation: t-a-ray 20s linear infinite;
}
.scn-retreat-into-interior-absolute-mass .dust-mot {
  position: absolute; top: 30%; left: 20%; width: 3px; height: 3px;
  background: #fffbea; border-radius: 50%; filter: blur(1px);
  animation: t-a-dust 30s linear infinite;
}
@keyframes t-a-wall {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.92; transform: scaleY(0.99); }
}
@keyframes t-a-col {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes t-a-window {
  0% { box-shadow: inset 0 0 30px #fff3d6, 0 0 20px rgba(255,243,214,0.3); }
  50% { box-shadow: inset 0 0 60px #fffbea, 0 0 40px rgba(255,251,234,0.5); }
  100% { box-shadow: inset 0 0 40px #fff3d6, 0 0 25px rgba(255,243,214,0.35); }
}
@keyframes t-a-ray {
  0% { opacity: 0.6; transform: rotate(-2deg) translateX(0); }
  50% { opacity: 0.8; transform: rotate(1deg) translateX(5px); }
  100% { opacity: 0.5; transform: rotate(-1deg) translateX(-3px); }
}
@keyframes t-a-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  25% { transform: translate(30px, -20px) scale(1.5); opacity: 0.8; }
  50% { transform: translate(60px, 10px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(90px, -30px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(120px, 0) scale(1); opacity: 0.4; }
}

.scn-retreat-into-interior-masses-effect {
  background:
    linear-gradient(180deg, #f2e4d0 0%, #d4c0a4 50%, #b09878 100%),
    radial-gradient(ellipse at 30% 70%, #fef7e8 0%, transparent 70%);
}
.scn-retreat-into-interior-masses-effect .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dbc8 0%, #cdbca6 100%);
  animation: t-e-wall 15s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-masses-effect .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a8772 0%, #7b6955 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-retreat-into-interior-masses-effect .crowd-group {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background:
    radial-gradient(circle at 20% 80%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 40% 70%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 60% 85%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 80% 75%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 30% 60%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 50% 50%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 70% 55%, #4a3e33 3%, transparent 3%),
    radial-gradient(circle at 90% 65%, #4a3e33 3%, transparent 3%);
  background-size: 6px 6px;
  animation: t-e-crowd 25s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-masses-effect .lamp {
  position: absolute; top: 25%; left: 50%; width: 12px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #ffedc8 0%, #d6b886 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(214,184,134,0.5);
  animation: t-e-lamp 5s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-masses-effect .door {
  position: absolute; bottom: 25%; right: 12%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #6b5a44 0%, #4d3f2e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset -4px 4px 10px rgba(0,0,0,0.3);
  animation: t-e-door 20s ease-in-out infinite;
}
.scn-retreat-into-interior-masses-effect .shadow {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: t-e-shadow 12s ease-in-out infinite alternate;
}
@keyframes t-e-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes t-e-crowd {
  0% { transform: scale(1) translateY(0); background-position: 0 0; }
  50% { transform: scale(1.02) translateY(-3px); background-position: -5px -2px; }
  100% { transform: scale(0.98) translateY(2px); background-position: 3px 1px; }
}
@keyframes t-e-lamp {
  0% { box-shadow: 0 0 30px 6px rgba(214,184,134,0.4); }
  50% { box-shadow: 0 0 60px 20px rgba(214,184,134,0.7); }
  100% { box-shadow: 0 0 40px 10px rgba(214,184,134,0.5); opacity: 0.9; }
}
@keyframes t-e-door {
  0%,100% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(0.98) translateY(2px); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  75% { transform: scaleY(0.99) translateY(1px); }
}
@keyframes t-e-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.7; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.4; }
}

.scn-retreat-into-interior-slower-advance {
  background:
    linear-gradient(180deg, #f7edde 0%, #dccab2 50%, #b8a288 100%),
    radial-gradient(ellipse at 50% 10%, #fff9ee 0%, transparent 60%);
}
.scn-retreat-into-interior-slower-advance .bg-hall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e5d8c2 0%, #c8b59c 100%);
  animation: t-s-hall 18s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-slower-advance .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: 
    linear-gradient(45deg, #8a7762 25%, transparent 25%),
    linear-gradient(-45deg, #8a7762 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #8a7762 75%),
    linear-gradient(-45deg, transparent 75%, #8a7762 75%);
  background-size: 60px 60px;
  background-position: 0 0, 0 30px, 30px -30px, -30px 0px;
  animation: t-s-floor 30s linear infinite;
}
.scn-retreat-into-interior-slower-advance .wall-left {
  position: absolute; bottom: 10%; left: 0; width: 5%; height: 70%;
  background: linear-gradient(90deg, #b8a58e 0%, #a08d76 100%);
  transform: skewY(-5deg);
  animation: t-s-wall 15s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-slower-advance .wall-right {
  position: absolute; bottom: 10%; right: 0; width: 5%; height: 70%;
  background: linear-gradient(270deg, #b8a58e 0%, #a08d76 100%);
  transform: skewY(5deg);
  animation: t-s-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-retreat-into-interior-slower-advance .figure-walk {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2d241c 0%, #1a130e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: t-s-walk 4s ease-in-out infinite;
}
.scn-retreat-into-interior-slower-advance .light-end {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(circle, #fffbea 0%, #f0e0c0 40%, transparent 70%);
  border-radius: 50%;
  animation: t-s-light 6s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-slower-advance .shadow-move {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: t-s-shadow 4s ease-in-out infinite;
}
@keyframes t-s-hall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes t-s-floor {
  0% { background-position: 0 0, 0 30px, 30px -30px, -30px 0px; }
  100% { background-position: 60px 60px, 60px 90px, 90px 30px, 30px 60px; }
}
@keyframes t-s-wall {
  0% { transform: skewY(-5deg) translateY(0); }
  50% { transform: skewY(-3deg) translateY(-2px); }
  100% { transform: skewY(-6deg) translateY(1px); }
}
@keyframes t-s-walk {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25% { transform: translateX(8px) rotate(2deg) scaleY(1.01); }
  50% { transform: translateX(16px) rotate(-1deg) scaleY(0.99); }
  75% { transform: translateX(24px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(32px) rotate(0deg) scaleY(1); }
}
@keyframes t-s-light {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
@keyframes t-s-shadow {
  0%,100% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  25% { transform: translateX(15px) scaleX(1.2); opacity: 0.6; }
  50% { transform: translateX(30px) scaleX(0.8); opacity: 0.3; }
  75% { transform: translateX(45px) scaleX(1.1); opacity: 0.5; }
}

.scn-retreat-into-interior-exertion {
  background:
    linear-gradient(180deg, #f5e7d4 0%, #d6c4ad 50%, #b09c82 100%),
    radial-gradient(ellipse at 70% 30%, #fffbf0 0%, transparent 60%);
}
.scn-retreat-into-interior-exertion .bg-close {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0bea6 100%);
  animation: t-x-bg 20s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-exertion .figure-effort {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 50%;
  background:
    radial-gradient(ellipse at 50% 40%, #2d241c 50%, transparent 52%), /* head */
    linear-gradient(180deg, #2d241c 0%, #1a130e 100%); /* body */
  background-size: 100% 50%, 100% 100%;
  background-repeat: no-repeat;
  background-position: 0 0, 0 40%;
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: t-x-figure 4s ease-in-out infinite;
}
.scn-retreat-into-interior-exertion .rope {
  position: absolute; bottom: 30%; left: 65%; width: 3px; height: 40%;
  background: linear-gradient(180deg, #7a6a57 0%, #5c4f3e 100%);
  border-radius: 2px;
  transform-origin: top center; transform: rotate(20deg);
  animation: t-x-rope 4s ease-in-out infinite;
}
.scn-retreat-into-interior-exertion .sweat-drop {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 6px;
  background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: t-x-sweat 6s ease-in-out infinite;
}
.scn-retreat-into-interior-exertion .light-spot {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #fffbea 0%, transparent 70%);
  animation: t-x-light 7s ease-in-out infinite alternate;
}
.scn-retreat-into-interior-exertion .shadow-ground {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 80%);
  animation: t-x-shadow 4s ease-in-out infinite;
}
@keyframes t-x-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes t-x-figure {
  0% { transform: translateY(0) rotate(-3deg) scaleX(1); }
  25% { transform: translateY(-4px) rotate(3deg) scaleX(1.03); }
  50% { transform: translateY(2px) rotate(-2deg) scaleX(0.97); }
  75% { transform: translateY(-1px) rotate(2deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes t-x-rope {
  0%,100% { transform: rotate(20deg) scaleY(1); }
  25% { transform: rotate(22deg) scaleY(1.05); }
  50% { transform: rotate(18deg) scaleY(0.95); }
  75% { transform: rotate(21deg) scaleY(1.03); }
}
@keyframes t-x-sweat {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  40% { transform: translate(10px, 20px) scale(0.8); opacity: 0.8; }
  60% { transform: translate(5px, 35px) scale(0.5); opacity: 0.4; }
  80% { transform: translate(15px, 50px) scale(0.3); opacity: 0.1; }
  100% { transform: translate(10px, 60px) scale(0.1); opacity: 0; }
}
@keyframes t-x-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes t-x-shadow {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  25% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.6; }
  50% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.3; }
  75% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.5; }
}

/* defence-mountains-rampart-idea */
.scn-defence-mountains-rampart-idea {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dfd0 40%, #d4c5a9 100%),
              radial-gradient(ellipse at 70% 30%, #fff7e8 0%, transparent 60%);
}
.scn-defence-mountains-rampart-idea .window {
  position:absolute; inset:8% 15% 45% 15%; background: linear-gradient(180deg, #b0c4de 0%, #d0d8e8 60%, #e8ecf0 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,255,240,.3); animation: dri-window 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-rampart-idea .mountain {
  position:absolute; bottom:25%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #6b5b45 0%, #8b7355 40%, #a08060 100%); border-radius: 20% 50% 0 0 / 60% 80% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.15); animation: dri-mountain 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-rampart-idea .valley {
  position:absolute; bottom:25%; left:40%; right:40%; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #5a6a4a 100%); border-radius: 0 0 40% 40%; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: dri-valley 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-rampart-idea .desk {
  position:absolute; bottom:8%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #8b6b4a 0%, #6b4a2a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.2);
}
.scn-defence-mountains-rampart-idea .lamp {
  position:absolute; bottom:20%; left:30%; width:12px; height:18px; background: radial-gradient(circle, #ffe0a0 0%, #c08040 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.3); animation: dri-lamp 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-rampart-idea .map {
  position:absolute; bottom:8%; left:35%; width:40%; height:10%; background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 50%, #d4b890 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 6px rgba(0,0,0,.1); animation: dri-map 6s ease-in-out infinite;
}
.scn-defence-mountains-rampart-idea .paper {
  position:absolute; bottom:8%; left:55%; width:25%; height:8%; background: linear-gradient(135deg, #faf3e0 0%, #f0e3c8 100%); border-radius: 1px; transform: rotate(3deg); box-shadow: 1px 1px 4px rgba(0,0,0,.08); animation: dri-paper 5s ease-in-out infinite alternate;
}
@keyframes dri-window {
  0% { opacity:.8; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:.85; transform:scale(.98); }
}
@keyframes dri-mountain {
  0% { transform:translateY(0) scaleX(1); }
  50% { transform:translateY(-4px) scaleX(1.01); }
  100% { transform:translateY(2px) scaleX(.99); }
}
@keyframes dri-valley {
  0% { opacity:.7; }
  50% { opacity:1; }
  100% { opacity:.6; }
}
@keyframes dri-lamp {
  0% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.2); opacity:.9; }
  50% { box-shadow: 0 0 40px 14px #ffe0a0, 0 0 70px 24px rgba(255,224,160,.4); opacity:1; }
  100% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,.3); opacity:.85; }
}
@keyframes dri-map {
  0% { transform:rotate(-2deg) translateX(0); }
  50% { transform:rotate(-1deg) translateX(3px); }
  100% { transform:rotate(-3deg) translateX(-2px); }
}
@keyframes dri-paper {
  0% { transform:rotate(3deg) translateY(0); }
  50% { transform:rotate(2deg) translateY(-2px); }
  100% { transform:rotate(4deg) translateY(1px); }
}

/* defence-mountains-scheme-false */
.scn-defence-mountains-scheme-false {
  background: linear-gradient(180deg, #ede5d8 0%, #d9cfbf 50%, #c4b8a8 100%),
              radial-gradient(ellipse at 50% 80%, #f0ead8 0%, transparent 60%);
}
.scn-defence-mountains-scheme-false .shelf {
  position:absolute; bottom:30%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3);
}
.scn-defence-mountains-scheme-false .globe {
  position:absolute; bottom:38%; left:25%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #a0c0d8 0%, #6080a0 60%, #3a5a7a 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: dfs-globe 15s linear infinite;
}
.scn-defence-mountains-scheme-false .book {
  position:absolute; bottom:28%; left:50%; width:20px; height:26px; background: linear-gradient(180deg, #8b6b4a 0%, #6a4a2a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 1px 1px 4px rgba(0,0,0,.15); animation: dfs-book 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-scheme-false .diagram {
  position:absolute; bottom:28%; left:55%; width:30px; height:20px; background: linear-gradient(135deg, #f5e8c8 0%, #d4b890 100%); border-radius: 2px; transform: rotate(8deg); box-shadow: 1px 2px 6px rgba(0,0,0,.1); animation: dfs-diagram 6s ease-in-out infinite;
}
.scn-defence-mountains-scheme-false .lamp {
  position:absolute; bottom:38%; left:15%; width:8px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(255,192,96,.2); animation: dfs-lamp 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-scheme-false .shadow {
  position:absolute; bottom:20%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.12) 100%); border-radius: 30% 30% 0 0; filter: blur(10px); animation: dfs-shadow 12s ease-in-out infinite alternate;
}
@keyframes dfs-globe {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(180deg); }
  100% { transform:rotate(360deg); }
}
@keyframes dfs-book {
  0% { transform:rotate(-5deg) translateY(0); }
  50% { transform:rotate(-3deg) translateY(-2px); }
  100% { transform:rotate(-7deg) translateY(1px); }
}
@keyframes dfs-diagram {
  0% { transform:rotate(8deg) scale(1); opacity:.8; }
  50% { transform:rotate(6deg) scale(1.02); opacity:1; }
  100% { transform:rotate(10deg) scale(.98); opacity:.7; }
}
@keyframes dfs-lamp {
  0% { box-shadow: 0 0 14px 4px #ffc060, 0 0 28px 8px rgba(255,192,96,.15); opacity:.9; }
  50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 50px 18px rgba(255,208,128,.3); opacity:1; }
  100% { box-shadow: 0 0 18px 5px #ffc060, 0 0 35px 10px rgba(255,192,96,.2); opacity:.85; }
}
@keyframes dfs-shadow {
  0% { opacity:.3; transform:scaleY(1); }
  50% { opacity:.5; transform:scaleY(1.05); }
  100% { opacity:.2; transform:scaleY(.95); }
}

/* defence-mountains-troops-not-on-ridges */
.scn-defence-mountains-troops-not-on-ridges {
  background: linear-gradient(180deg, #e8e0d0 0%, #d4c8b0 40%, #c0b09a 100%),
              radial-gradient(ellipse at 30% 40%, #f5f0e0 0%, transparent 70%);
}
.scn-defence-mountains-troops-not-on-ridges .map {
  position:absolute; bottom:10%; left:10%; right:10%; height:70%; background: linear-gradient(135deg, #d4c8a0 0%, #c0b090 50%, #b0a080 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.15);
}
.scn-defence-mountains-troops-not-on-ridges .ridge-a {
  position:absolute; bottom:40%; left:15%; right:55%; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 60% 0 0 40% / 80% 0 0 60%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.1); animation: dnt-ridge-a 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-troops-not-on-ridges .ridge-b {
  position:absolute; bottom:45%; left:50%; right:10%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 0 0 0 0 / 0 0 0 0; clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 80%); box-shadow: inset 0 -4px 8px rgba(0,0,0,.1); animation: dnt-ridge-b 22s ease-in-out infinite alternate;
}
.scn-defence-mountains-troops-not-on-ridges .troop-1 {
  position:absolute; bottom:30%; left:30%; width:6px; height:12px; background: radial-gradient(circle, #4a6a4a 0%, #2a4a2a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dnt-troop1 5s ease-in-out infinite;
}
.scn-defence-mountains-troops-not-on-ridges .troop-2 {
  position:absolute; bottom:35%; left:60%; width:6px; height:12px; background: radial-gradient(circle, #4a6a4a 0%, #2a4a2a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dnt-troop2 7s ease-in-out infinite alternate;
}
.scn-defence-mountains-troops-not-on-ridges .valley {
  position:absolute; bottom:20%; left:25%; right:35%; height:15%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 0 0 40% 40%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%); opacity:.7; animation: dnt-valley 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-troops-not-on-ridges .compass {
  position:absolute; bottom:8%; left:75%; width:14px; height:14px; background: radial-gradient(circle, #f0d8a0 0%, #c0a070 70%); border-radius: 50%; border: 2px solid #8b7355; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dnt-compass 12s linear infinite;
}
.scn-defence-mountains-troops-not-on-ridges .table-edge {
  position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 4px 4px;
}
@keyframes dnt-ridge-a {
  0% { transform:translateY(0); opacity:.8; }
  50% { transform:translateY(-3px); opacity:1; }
  100% { transform:translateY(2px); opacity:.7; }
}
@keyframes dnt-ridge-b {
  0% { transform:translateY(0) scaleX(1); }
  50% { transform:translateY(-2px) scaleX(1.02); }
  100% { transform:translateY(1px) scaleX(.98); }
}
@keyframes dnt-troop1 {
  0% { transform:translateX(0) translateY(0); }
  50% { transform:translateX(8px) translateY(-2px); }
  100% { transform:translateX(16px) translateY(0); }
}
@keyframes dnt-troop2 {
  0% { transform:translateX(0) translateY(0); }
  50% { transform:translateX(-6px) translateY(-1px); }
  100% { transform:translateX(-12px) translateY(0); }
}
@keyframes dnt-valley {
  0% { opacity:.5; }
  50% { opacity:.8; }
  100% { opacity:.6; }
}
@keyframes dnt-compass {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(180deg); }
  100% { transform:rotate(360deg); }
}

/* defence-mountains-systematic-disposition-impossible */
.scn-defence-mountains-systematic-disposition-impossible {
  background: linear-gradient(180deg, #e0d8c8 0%, #c8bfae 40%, #b0a694 100%),
              radial-gradient(ellipse at 50% 20%, #f5f0e0 0%, transparent 70%);
}
.scn-defence-mountains-systematic-disposition-impossible .paper-stack {
  position:absolute; bottom:5%; left:20%; right:40%; height:30%; background: linear-gradient(135deg, #f0e3c8 0%, #d4c0a0 50%, #b8a888 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.15); animation: dsd-stack 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-systematic-disposition-impossible .scatter-a {
  position:absolute; bottom:15%; left:5%; width:15%; height:10%; background: linear-gradient(135deg, #f5e8d0 0%, #e0c8a8 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 1px 1px 4px rgba(0,0,0,.1); animation: dsd-scatter-a 9s ease-in-out infinite;
}
.scn-defence-mountains-systematic-disposition-impossible .scatter-b {
  position:absolute; bottom:20%; left:55%; width:12%; height:8%; background: linear-gradient(135deg, #f5e8d0 0%, #e0c8a8 100%); border-radius: 2px; transform: rotate(25deg); box-shadow: 1px 1px 4px rgba(0,0,0,.1); animation: dsd-scatter-b 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-systematic-disposition-impossible .scatter-c {
  position:absolute; bottom:28%; left:70%; width:10%; height:6%; background: linear-gradient(135deg, #f5e8d0 0%, #e0c8a8 100%); border-radius: 2px; transform: rotate(-40deg); box-shadow: 1px 1px 4px rgba(0,0,0,.1); animation: dsd-scatter-c 11s ease-in-out infinite;
}
.scn-defence-mountains-systematic-disposition-impossible .inkwell {
  position:absolute; bottom:12%; left:60%; width:16px; height:16px; background: radial-gradient(circle at 30% 30%, #2a2a3a 0%, #1a1a2a 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dsd-inkwell 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-systematic-disposition-impossible .pen {
  position:absolute; bottom:18%; left:63%; width:4px; height:20px; background: linear-gradient(180deg, #8b6b4a 0%, #6a4a2a 60%, #2a1a0a 100%); border-radius: 2px; transform: rotate(30deg); transform-origin: bottom; animation: dsd-pen 5s ease-in-out infinite;
}
.scn-defence-mountains-systematic-disposition-impossible .candle {
  position:absolute; bottom:15%; left:80%; width:8px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 60%, #b08040 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px 4px #ffd080; animation: dsd-candle 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-systematic-disposition-impossible .dot-1 {
  position:absolute; bottom:25%; left:45%; width:4px; height:4px; background: #6a4a2a; border-radius: 50%; opacity:.6; animation: dsd-dot1 7s ease-in-out infinite;
}
.scn-defence-mountains-systematic-disposition-impossible .dot-2 {
  position:absolute; bottom:30%; left:48%; width:3px; height:3px; background: #6a4a2a; border-radius: 50%; opacity:.5; animation: dsd-dot2 9s ease-in-out infinite alternate;
}
@keyframes dsd-stack {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-3px) rotate(2deg); }
  100% { transform:translateY(2px) rotate(-1deg); }
}
@keyframes dsd-scatter-a {
  0% { transform:rotate(-15deg) translateX(0) translateY(0); }
  50% { transform:rotate(-12deg) translateX(4px) translateY(-2px); }
  100% { transform:rotate(-18deg) translateX(-3px) translateY(1px); }
}
@keyframes dsd-scatter-b {
  0% { transform:rotate(25deg) translateX(0); }
  50% { transform:rotate(20deg) translateX(-5px); }
  100% { transform:rotate(30deg) translateX(3px); }
}
@keyframes dsd-scatter-c {
  0% { transform:rotate(-40deg) translateY(0); }
  50% { transform:rotate(-35deg) translateY(-3px); }
  100% { transform:rotate(-45deg) translateY(2px); }
}
@keyframes dsd-inkwell {
  0% { transform:scale(1); }
  50% { transform:scale(1.05); }
  100% { transform:scale(.95); }
}
@keyframes dsd-pen {
  0% { transform:rotate(30deg); }
  50% { transform:rotate(25deg); }
  100% { transform:rotate(35deg); }
}
@keyframes dsd-candle {
  0% { box-shadow: 0 0 8px 2px #ffd080; opacity:.8; }
  50% { box-shadow: 0 0 18px 6px #ffe0a0; opacity:1; }
  100% { box-shadow: 0 0 10px 3px #ffd080; opacity:.7; }
}
@keyframes dsd-dot1 {
  0% { transform:translateX(0) translateY(0); opacity:.4; }
  50% { transform:translateX(10px) translateY(-2px); opacity:.7; }
  100% { transform:translateX(20px) translateY(0); opacity:.5; }
}
@keyframes dsd-dot2 {
  0% { transform:translateX(0) scale(1); opacity:.3; }
  50% { transform:translateX(-8px) scale(1.2); opacity:.6; }
  100% { transform:translateX(8px) scale(.8); opacity:.4; }
}

.scn-defence-mountains-artistic-machine {
  background: linear-gradient(135deg, #6b4c2a 0%, #8b5e3c 30%, #a0744a 60%, #c4956a 100%),
              radial-gradient(circle at 50% 50%, #dbb879 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-artistic-machine .table {
  position: absolute;
  bottom: 5%;
  left: 5%;
  right: 5%;
  height: 60%;
  background: linear-gradient(180deg, #7a5736 0%, #5c3f25 100%);
  border-radius: 4% 4% 8% 8% / 8% 8% 4% 4%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3);
}
.scn-defence-mountains-artistic-machine .map {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 60%;
  height: 40%;
  background: linear-gradient(135deg, #f5deb3 0%, #e6c280 50%, #d4a76a 100%);
  border-radius: 2%;
  transform: rotate(-1deg);
  box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: dam1-map 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-artistic-machine .machine {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 12%;
  height: 18%;
  background: radial-gradient(circle at 40% 40%, #d4a017, #b8860b 60%, #8b6508);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(184,134,11,0.4);
  animation: dam1-machine 20s linear infinite;
}
.scn-defence-mountains-artistic-machine .candle {
  position: absolute;
  bottom: 10%;
  left: 25%;
  width: 2.5%;
  height: 8%;
  background: linear-gradient(180deg, #f5e6cc, #d4a76a);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255, 230, 150, 0.6);
  animation: dam1-candle 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-artistic-machine .light-cone {
  position: absolute;
  bottom: 10%;
  left: 23%;
  width: 15%;
  height: 40%;
  background: linear-gradient(180deg, rgba(255, 245, 200, 0.4) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: dam1-light 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-artistic-machine .shadow {
  position: absolute;
  bottom: 5%;
  left: 40%;
  width: 20%;
  height: 15%;
  background: rgba(0,0,0,0.25);
  filter: blur(8px);
  animation: dam1-shadow 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-artistic-machine .compass {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 5%;
  height: 5%;
  background: radial-gradient(circle, #c0a060 0%, #8b7340 100%);
  border-radius: 50%;
  border: 1px solid #a08050;
  animation: dam1-compass 15s linear infinite;
}
@keyframes dam1-map {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(0.5deg) scale(1.01); }
  100% { transform: rotate(-1.5deg) scale(0.99); }
}
@keyframes dam1-machine {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes dam1-candle {
  0% { height: 8%; opacity: 0.9; box-shadow: 0 0 20px 5px rgba(255,230,150,0.5); }
  50% { height: 9%; opacity: 1; box-shadow: 0 0 40px 10px rgba(255,230,150,0.8); }
  100% { height: 7%; opacity: 0.85; box-shadow: 0 0 15px 3px rgba(255,230,150,0.4); }
}
@keyframes dam1-light {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes dam1-shadow {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(10px) scaleY(0.9); }
  100% { transform: translateX(-5px) scaleY(1.05); }
}
@keyframes dam1-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-360deg); }
}

.scn-defence-mountains-coupling {
  background: linear-gradient(180deg, #b8c6d0 0%, #8a9baa 40%, #607080 100%),
              radial-gradient(ellipse at 50% 0%, #e6eef5 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-coupling .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d0dce8 0%, transparent 100%);
  animation: dam2-sky 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-coupling .mountain {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 80%;
  height: 50%;
  background: linear-gradient(135deg, #5a6b7a 0%, #3c4a5a 50%, #2a3240 100%);
  clip-path: polygon(0% 100%, 20% 30%, 40% 50%, 60% 20%, 80% 40%, 100% 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4);
  animation: dam2-mountain 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-coupling .soldier {
  position: absolute;
  bottom: 38%;
  left: 45%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #2c3a4a 0%, #1a222e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dam2-soldier 4s ease-in-out infinite;
}
.scn-defence-mountains-coupling .ground {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-defence-mountains-coupling .banner {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 3%;
  height: 12%;
  background: #a04020; /* desaturated red */
  border-radius: 0 0 20% 20%;
  animation: dam2-banner 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-coupling .rock {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 8%;
  height: 6%;
  background: #3a4a4a;
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  animation: dam2-rock 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-coupling .sunray {
  position: absolute;
  top: 15%;
  left: 30%;
  width: 40%;
  height: 20%;
  background: linear-gradient(135deg, rgba(255, 240, 200, 0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%);
  animation: dam2-sunray 8s ease-in-out infinite alternate;
}
@keyframes dam2-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dam2-mountain {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.02); }
  100% { transform: translateY(3px) scaleX(0.98); }
}
@keyframes dam2-soldier {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes dam2-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes dam2-rock {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-5px) scaleY(1.1); }
  100% { transform: translateX(3px) scaleY(0.95); }
}
@keyframes dam2-sunray {
  0% { opacity: 0.3; transform: rotate(-2deg); }
  50% { opacity: 0.6; transform: rotate(0deg); }
  100% { opacity: 0.2; transform: rotate(3deg); }
}

.scn-defence-mountains-weakness-turning {
  background: linear-gradient(180deg, #5c5c6a 0%, #3a3a4e 40%, #262636 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-weakness-turning .wall {
  position: absolute;
  bottom: 15%;
  left: 15%;
  width: 70%;
  height: 60%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5), 0 -5px 10px rgba(0,0,0,0.3);
  border-top: 8px solid #4a3a2a;
}
.scn-defence-mountains-weakness-turning .breach {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: #1a1a2a;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 20px rgba(255,100,50,0.1);
  animation: dam3-breach 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-weakness-turning .attacker {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 5%;
  height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dam3-attacker 1.5s ease-in-out infinite alternate;
}
.scn-defence-mountains-weakness-turning .attacker2 {
  position: absolute;
  bottom: 18%;
  left: 55%;
  width: 5%;
  height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dam3-attacker2 1.8s ease-in-out infinite alternate;
  animation-delay: 0.3s;
}
.scn-defence-mountains-weakness-turning .arrow {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 8%;
  height: 2%;
  background: #8a7a6a;
  clip-path: polygon(0% 0%, 100% 40%, 100% 60%, 0% 100%);
  transform: rotate(30deg);
  animation: dam3-arrow 0.8s ease-in-out infinite alternate;
}
.scn-defence-mountains-weakness-turning .dust {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 20%;
  height: 15%;
  background: rgba(200, 180, 160, 0.2);
  filter: blur(10px);
  border-radius: 50%;
  animation: dam3-dust 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-weakness-turning .light-source {
  position: absolute;
  top: 10%;
  right: 15%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #f5e0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,224,160,0.3);
  animation: dam3-light 4s ease-in-out infinite alternate;
}
@keyframes dam3-breach {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.8; }
  50% { transform: scaleX(1.05) scaleY(0.95); opacity: 1; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: 0.7; }
}
@keyframes dam3-attacker {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(-4px) translateY(1px) rotate(-1deg); }
}
@keyframes dam3-attacker2 {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-6px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(4px) translateY(0) rotate(1deg); }
}
@keyframes dam3-arrow {
  0% { transform: translateX(0) rotate(30deg); opacity: 0.6; }
  50% { transform: translateX(20px) rotate(25deg); opacity: 1; }
  100% { transform: translateX(-10px) rotate(35deg); opacity: 0.4; }
}
@keyframes dam3-dust {
  0% { transform: scale(1) translateX(0); opacity: 0.4; }
  50% { transform: scale(1.3) translateX(5px); opacity: 0.8; }
  100% { transform: scale(0.9) translateX(-5px); opacity: 0.3; }
}
@keyframes dam3-light {
  0% { opacity: 0.6; box-shadow: 0 0 30px 15px rgba(245,224,160,0.2); }
  50% { opacity: 1; box-shadow: 0 0 60px 25px rgba(245,224,160,0.5); }
  100% { opacity: 0.5; box-shadow: 0 0 20px 10px rgba(245,224,160,0.15); }
}

.scn-defence-mountains-offensive-preponderance {
  background: linear-gradient(180deg, #5a6b7a 0%, #3c4a5a 40%, #2a3240 100%),
              radial-gradient(ellipse at 50% 0%, #8a9baa 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-offensive-preponderance .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8c6d0 0%, transparent 100%);
  animation: dam4-sky 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-offensive-preponderance .slope-left {
  position: absolute;
  bottom: 20%;
  left: -5%;
  width: 60%;
  height: 70%;
  background: linear-gradient(135deg, #4a5a5a 0%, #2a3a3a 100%);
  clip-path: polygon(0% 100%, 100% 20%, 100% 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.4);
  animation: dam4-slope 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-offensive-preponderance .slope-right {
  position: absolute;
  bottom: 20%;
  right: -5%;
  width: 60%;
  height: 70%;
  background: linear-gradient(225deg, #3a4a4a 0%, #1a2a2a 100%);
  clip-path: polygon(0% 20%, 100% 100%, 0% 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.4);
  animation: dam4-slope 15s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-offensive-preponderance .pass {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 24%;
  height: 40%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  box-shadow: inset 0 0 30px rgba(255,150,100,0.1);
  animation: dam4-pass 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-offensive-preponderance .troops {
  position: absolute;
  bottom: 35%;
  left: 42%;
  width: 6%;
  height: 18%;
  filter: blur(1px);
}
.scn-defence-mountains-offensive-preponderance .troops::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dam4-troops 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-offensive-preponderance .barrier {
  position: absolute;
  bottom: 40%;
  left: 44%;
  width: 12%;
  height: 10%;
  background: #3a4a3a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dam4-barrier 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-offensive-preponderance .wave {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: dam4-wave 6s ease-in-out infinite alternate;
}
@keyframes dam4-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes dam4-slope {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.03); }
  100% { transform: translateY(3px) scaleY(0.97); }
}
@keyframes dam4-pass {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.6; }
}
@keyframes dam4-troops {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes dam4-barrier {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(0.9) scaleY(1.1); }
  100% { transform: scaleX(1.05) scaleY(0.95); }
}
@keyframes dam4-wave {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(15px) scaleY(1.5); opacity: 0.6; }
  100% { transform: translateX(-10px) scaleY(0.8); opacity: 0.2; }
}

/* Scene: arming-the-nation-expect-help */
.scn-arming-the-nation-expect-help { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%), radial-gradient(ellipse at 80% 40%, rgba(255,230,180,0.4) 0%, transparent 60%); }
.scn-arming-the-nation-expect-help .wall  { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #e8d5b8 0%, #dac09f 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,0.08); }
.scn-arming-the-nation-expect-help .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a88b6a 0%, #8b6f4f 100%); border-radius: 0 0 30% 30% / 0 0 100% 100%; }
.scn-arming-the-nation-expect-help .window{ position:absolute; top:12%; left:8%; width:20%; height:50%; background: linear-gradient(180deg, #c9e2f0 0%, #a0c4db 100%); border: 6px solid #7a5c3a; border-radius:4px; box-shadow: 0 0 30px rgba(160,196,219,0.3); animation: exp-window 8s ease-in-out infinite alternate; }
.scn-arming-the-nation-expect-help .desk  { position:absolute; bottom:18%; left:15%; width:50%; height:8%; background: linear-gradient(180deg, #6d4f2e 0%, #4d3420 100%); border-radius:2px; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-arming-the-nation-expect-help .map   { position:absolute; bottom:25%; left:25%; width:20%; height:12%; background: linear-gradient(135deg, #f5e6c8 0%, #e3ceaa 100%); transform: rotate(-3deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: exp-map 12s ease-in-out infinite; }
.scn-arming-the-nation-expect-help .figure{ position:absolute; bottom:18%; left:48%; width:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 50% 45% 45% 50%; transform-origin: bottom center; animation: exp-figure 4s ease-in-out infinite alternate; }
.scn-arming-the-nation-expect-help .candle{ position:absolute; bottom:23%; left:18%; width:2%; height:6%; background: linear-gradient(180deg, #f0c060 0%, #c08030 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.6), 0 0 40px 16px rgba(240,192,96,0.3); animation: exp-candle 2s ease-in-out infinite alternate; }
@keyframes exp-window { 0% { opacity:0.85; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.9; filter: brightness(0.95) } }
@keyframes exp-map { 0%,100% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } }
@keyframes exp-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes exp-candle { 0% { transform: scaleY(0.95); box-shadow: 0 0 15px 5px rgba(240,192,96,0.5), 0 0 30px 10px rgba(240,192,96,0.2) } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 10px rgba(240,192,96,0.7), 0 0 50px 20px rgba(240,192,96,0.4) } 100% { transform: scaleY(0.98); box-shadow: 0 0 18px 6px rgba(240,192,96,0.55), 0 0 35px 14px rgba(240,192,96,0.25) } }

/* Scene: arming-the-nation-moment-to-strike */
.scn-arming-the-nation-moment-to-strike { background: linear-gradient(180deg, #5a6870 0%, #3e4c54 100%), radial-gradient(ellipse at 50% 0%, #7a8a92 0%, transparent 70%); }
.scn-arming-the-nation-moment-to-strike .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7a8a92 0%, #4a5a62 100%); animation: str-sky 15s ease-in-out infinite alternate; }
.scn-arming-the-nation-moment-to-strike .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: str-ground 10s ease-in-out infinite alternate; }
.scn-arming-the-nation-moment-to-strike .cannon { position:absolute; bottom:25%; left:20%; width:25%; height:10%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: str-cannon 6s ease-in-out infinite; }
.scn-arming-the-nation-moment-to-strike .soldier{ position:absolute; bottom:23%; left:55%; width:8%; height:25%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: str-soldier 3s ease-in-out infinite alternate; }
.scn-arming-the-nation-moment-to-strike .smoke  { position:absolute; bottom:30%; left:30%; width:20%; height:15%; background: radial-gradient(ellipse, rgba(180,190,200,0.4) 0%, transparent 70%); filter: blur(8px); }
.scn-arming-the-nation-moment-to-strike .smoke-a{ animation: str-smoke-a 12s ease-in-out infinite; }
.scn-arming-the-nation-moment-to-strike .smoke-b{ left:35%; top:18%; width:15%; height:12%; animation: str-smoke-b 18s ease-in-out infinite reverse; }
.scn-arming-the-nation-moment-to-strike .flag   { position:absolute; top:10%; left:70%; width:3%; height:12%; background: linear-gradient(180deg, #8b5a3a 0%, #5a3a2a 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: str-flag 4s ease-in-out infinite alternate; }
@keyframes str-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes str-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes str-cannon { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes str-soldier { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes str-smoke-a { 0% { transform: scale(1) translate(0,0); opacity:0.3 } 50% { transform: scale(1.2) translate(10px,-5px); opacity:0.6 } 100% { transform: scale(0.9) translate(20px,-10px); opacity:0.1 } }
@keyframes str-smoke-b { 0% { transform: scale(0.8) translate(0,0); opacity:0.2 } 50% { transform: scale(1.1) translate(-8px,-8px); opacity:0.5 } 100% { transform: scale(0.7) translate(-15px,-15px); opacity:0.1 } }
@keyframes str-flag { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(0.95) } }

/* Scene: defence-of-theatre-intro */
.scn-defence-of-theatre-intro { background: linear-gradient(180deg, #eadcca 0%, #c8b094 100%), radial-gradient(ellipse at 60% 30%, rgba(255,235,200,0.3) 0%, transparent 60%); }
.scn-defence-of-theatre-intro .wall  { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #dfcbb5 0%, #c8ae94 100%); box-shadow: inset 0 6px 30px rgba(0,0,0,0.06); }
.scn-defence-of-theatre-intro .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8b725a 0%, #6b523a 100%); border-radius: 0 0 20% 20% / 0 0 100% 100%; }
.scn-defence-of-theatre-intro .table { position:absolute; bottom:12%; left:10%; width:70%; height:8%; background: linear-gradient(180deg, #6b4f35 0%, #4a3520 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-defence-of-theatre-intro .map   { position:absolute; bottom:15%; left:15%; width:50%; height:10%; background: linear-gradient(135deg, #f0e0c8 0%, #d8c4a8 100%); border-radius:4px; transform: rotate(2deg); box-shadow: 0 2px 8px rgba(0,0,0,0.15); animation: int-map 15s ease-in-out infinite alternate; }
.scn-defence-of-theatre-intro .hand  { position:absolute; bottom:14%; left:50%; width:6%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1408 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: int-hand 5s ease-in-out infinite alternate; }
.scn-defence-of-theatre-intro .lamp  { position:absolute; top:10%; left:45%; width:4%; height:12%; background: linear-gradient(180deg, #b0905a 0%, #6a5020 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,220,150,0.3); animation: int-lamp 8s ease-in-out infinite alternate; }
.scn-defence-of-theatre-intro .chair { position:absolute; bottom:10%; left:60%; width:12%; height:12%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: rotate(3deg); animation: int-chair 6s ease-in-out infinite; }
@keyframes int-map { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(1deg) scale(0.98) } }
@keyframes int-hand { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-18deg) translateX(-2px) } }
@keyframes int-lamp { 0% { opacity:0.8; box-shadow: 0 0 20px 5px rgba(255,220,150,0.2) } 50% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,220,150,0.4) } 100% { opacity:0.85; box-shadow: 0 0 25px 8px rgba(255,220,150,0.25) } }
@keyframes int-chair { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } }

/* Scene: defence-of-theatre-progress-to-whole */
.scn-defence-of-theatre-progress-to-whole { background: linear-gradient(180deg, #f2e8dc 0%, #d7c4b0 100%), radial-gradient(ellipse at 30% 50%, rgba(255,240,220,0.3) 0%, transparent 70%); }
.scn-defence-of-theatre-progress-to-whole .bg-wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #e4d4c0 0%, #cbb5a0 100%); }
.scn-defence-of-theatre-progress-to-whole .bg-floor{ position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #9a8068 0%, #7a6048 100%); border-radius: 0 0 10% 10% / 0 0 100% 100%; }
.scn-defence-of-theatre-progress-to-whole .block   { position:absolute; bottom:10%; background: linear-gradient(135deg, #d4bfa8 0%, #b09a80 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.scn-defence-of-theatre-progress-to-whole .block-1 { left:8%; width:15%; height:18%; animation: pro-block1 12s ease-in-out infinite; }
.scn-defence-of-theatre-progress-to-whole .block-2 { left:30%; width:20%; height:24%; animation: pro-block2 15s ease-in-out infinite alternate; }
.scn-defence-of-theatre-progress-to-whole .block-3 { left:58%; width:25%; height:30%; animation: pro-block3 18s ease-in-out infinite; }
.scn-defence-of-theatre-progress-to-whole .figure  { position:absolute; bottom:8%; left:5%; width:6%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 30% 30% / 50% 45% 45% 50%; animation: pro-figure 8s ease-in-out infinite; }
.scn-defence-of-theatre-progress-to-whole .path    { position:absolute; bottom:8%; left:5%; width:80%; height:3%; background: linear-gradient(90deg, rgba(200,180,150,0.2) 0%, rgba(200,180,150,0.5) 100%); border-radius: 50%; filter: blur(2px); animation: pro-path 10s ease-in-out infinite alternate; }
.scn-defence-of-theatre-progress-to-whole .window  { position:absolute; top:15%; right:8%; width:15%; height:30%; background: linear-gradient(180deg, #b0d0e0 0%, #80a0b8 100%); border: 4px solid #6a4a30; box-shadow: 0 0 20px rgba(128,160,184,0.3); animation: pro-window 20s ease-in-out infinite alternate; }
@keyframes pro-block1 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes pro-block2 { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes pro-block3 { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.03) } 100% { transform: translateY(0) scale(0.97) } }
@keyframes pro-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(12%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(25%) translateY(0) rotate(-1deg) } 75% { transform: translateX(37%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(50%) translateY(0) rotate(0deg) } }
@keyframes pro-path { 0% { opacity:0.3; filter: blur(3px) } 50% { opacity:0.6; filter: blur(1px) } 100% { opacity:0.4; filter: blur(4px) } }
@keyframes pro-window { 0% { opacity:0.7; filter: brightness(0.9) } 50% { opacity:0.9; filter: brightness(1.1) } 100% { opacity:0.8; filter: brightness(1) } }

.scn-imagination-service-to-war {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-imagination-service-to-war .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(60,40,20,0.6) 0%, transparent 100%);
  animation: si1-bg 12s ease-in-out infinite alternate;
}
.scn-imagination-service-to-war .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6);
  animation: si1-desk 6s ease-in-out infinite;
}
.scn-imagination-service-to-war .book {
  position: absolute; bottom: 28%; left: 15%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 10% 10% 4% / 6% 12% 12% 6%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: si1-book 9s ease-in-out infinite alternate;
}
.scn-imagination-service-to-war .candle-glow {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.3);
  animation: si1-candle 3s ease-in-out infinite alternate;
}
.scn-imagination-service-to-war .candle-flame {
  position: absolute; bottom: 78%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-50%);
  filter: blur(1px);
  animation: si1-flame 1.2s ease-in-out infinite alternate;
}
.scn-imagination-service-to-war .figure-silhouette {
  position: absolute; bottom: 14%; right: 8%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-figure 5s ease-in-out infinite;
}
.scn-imagination-service-to-war .sparkle {
  position: absolute;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 0 0 8px 2px #ffd060;
}
.scn-imagination-service-to-war .sparkle-a {
  top: 30%; left: 20%;
  animation: si1-sparkle-a 4s ease-in-out infinite;
}
.scn-imagination-service-to-war .sparkle-b {
  top: 45%; right: 15%;
  animation: si1-sparkle-b 5s ease-in-out infinite 1s;
}
@keyframes si1-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes si1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes si1-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.01); } 100% { transform: rotate(-4deg) scale(1); } }
@keyframes si1-candle { 0% { box-shadow: 0 0 18px 4px #ffd060, 0 0 36px 10px rgba(255,208,96,0.3); } 50% { box-shadow: 0 0 28px 8px #ffe080, 0 0 50px 16px rgba(255,224,128,0.4); } 100% { box-shadow: 0 0 20px 5px #ffd060, 0 0 40px 12px rgba(255,208,96,0.35); } }
@keyframes si1-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(2deg); } }
@keyframes si1-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes si1-sparkle-a { 0% { transform: translate(0,0) scale(1); opacity: 0; } 25% { transform: translate(10px,-15px) scale(1.5); opacity: 1; } 50% { transform: translate(20px,-30px) scale(0.8); opacity: 0.6; } 75% { transform: translate(30px,-20px) scale(1.2); opacity: 0.8; } 100% { transform: translate(40px,-40px) scale(0); opacity: 0; } }
@keyframes si1-sparkle-b { 0% { transform: translate(0,0) scale(0.5); opacity: 0; } 30% { transform: translate(-8px,-20px) scale(1.3); opacity: 1; } 60% { transform: translate(-16px,-40px) scale(0.9); opacity: 0.7; } 100% { transform: translate(-24px,-60px) scale(0); opacity: 0; } }

/* ---------- scene 2 ---------- */
.scn-intellect-essential-cooperative {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 50%, #0d0600 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-intellect-essential-cooperative .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,30,20,0.7) 0%, transparent 100%);
  animation: si2-bg 15s ease-in-out infinite alternate;
}
.scn-intellect-essential-cooperative .table-round {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% / 40%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: si2-table 8s ease-in-out infinite;
}
.scn-intellect-essential-cooperative .lamp-glow {
  position: absolute; bottom: 42%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b07030 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.2);
  animation: si2-lamp 4s ease-in-out infinite alternate;
}
.scn-intellect-essential-cooperative .scroll {
  position: absolute; bottom: 30%; left: 40%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: si2-scroll 6s ease-in-out infinite alternate;
}
.scn-intellect-essential-cooperative .figure-left {
  position: absolute; bottom: 18%; left: 8%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-left 7s ease-in-out infinite;
}
.scn-intellect-essential-cooperative .figure-right {
  position: absolute; bottom: 18%; right: 8%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si2-right 7s ease-in-out infinite 1s;
}
.scn-intellect-essential-cooperative .inkwell {
  position: absolute; bottom: 25%; left: 30%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0600 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: si2-ink 10s ease-in-out infinite;
}
.scn-intellect-essential-cooperative .paper-edge {
  position: absolute; bottom: 20%; right: 30%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #d4bea0 0%, #b8a080 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: si2-paper 5s ease-in-out infinite alternate;
}
@keyframes si2-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes si2-table { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } }
@keyframes si2-lamp { 0% { box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(255,192,96,0.2); } 50% { box-shadow: 0 0 35px 12px #ffd080, 0 0 70px 24px rgba(255,208,128,0.3); } 100% { box-shadow: 0 0 25px 8px #ffc060, 0 0 50px 16px rgba(255,192,96,0.25); } }
@keyframes si2-scroll { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(7deg) translateY(0); } }
@keyframes si2-left { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(6px) rotate(0deg); } 50% { transform: translateX(12px) rotate(1deg); } 75% { transform: translateX(6px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes si2-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-6px) rotate(0deg); } 50% { transform: translateX(-12px) rotate(-1deg); } 75% { transform: translateX(-6px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes si2-ink { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } }
@keyframes si2-paper { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }

/* ---------- scene 3 ---------- */
.scn-turning-position-commonplace {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%),
              radial-gradient(ellipse at 60% 50%, #3a2515 0%, transparent 80%);
}
.scn-turning-position-commonplace .bg-wardrobe {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(30,20,10,0.5) 0%, transparent 50%, rgba(30,20,10,0.4) 100%);
  animation: si3-bg 12s ease-in-out infinite alternate;
}
.scn-turning-position-commonplace .table-square {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
  animation: si3-table 8s ease-in-out infinite;
}
.scn-turning-position-commonplace .compass-dial {
  position: absolute; bottom: 32%; left: 50%; width: 24%; height: 16%;
  background: radial-gradient(circle, #b8a080 0%, #6a4a3a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4), inset 0 0 12px rgba(0,0,0,0.3);
  animation: si3-dial 14s ease-in-out infinite alternate;
}
.scn-turning-position-commonplace .needle {
  position: absolute; bottom: 36%; left: 50%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c03020 0%, #801010 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(0deg);
  animation: si3-needle 10s linear infinite;
}
.scn-turning-position-commonplace .hand-turning {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: si3-hand 6s ease-in-out infinite;
}
.scn-turning-position-commonplace .pivot-shadow {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 4%;
  background: radial-gradient(circle, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: si3-pivot 8s ease-in-out infinite alternate;
}
.scn-turning-position-commonplace .line-edge {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #8a7050 20%, #8a7050 80%, transparent);
  animation: si3-line 5s ease-in-out infinite alternate;
}
.scn-turning-position-commonplace .detail-dot {
  position: absolute; bottom: 38%; left: 48%; width: 4%; height: 3%;
  background: radial-gradient(circle, #ffd060 0%, transparent 100%);
  border-radius: 50%;
  animation: si3-dot 3s ease-in-out infinite alternate;
}
@keyframes si3-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes si3-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes si3-dial { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(90deg); } 50% { transform: translateX(-50%) rotate(180deg); } 75% { transform: translateX(-50%) rotate(270deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes si3-needle { from { transform: translateX(-50%) rotate(0deg); } to { transform: translateX(-50%) rotate(360deg); } }
@keyframes si3-hand { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes si3-pivot { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.3); } 100% { transform: translateX(-50%) scale(0.8); } }
@keyframes si3-line { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes si3-dot { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(2); opacity: 1; } 100% { transform: scale(1); opacity: 0.5; } }

/* ---------- scene 4 ---------- */
.scn-plain-honest-soldier-vs-reflective {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 60%, #0d0600 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 70%);
}
.scn-plain-honest-soldier-vs-reflective .bg-hearth {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,20,10,0.7) 0%, transparent 50%, rgba(10,5,0,0.5) 100%);
  animation: si4-bg 18s ease-in-out infinite alternate;
}
.scn-plain-honest-soldier-vs-reflective .fire-glow {
  position: absolute; bottom: 5%; left: 50%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #ff8030 0%, #ff6020 20%, #c04010 50%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(8px);
  animation: si4-fire 2s ease-in-out infinite alternate;
}
.scn-plain-honest-soldier-vs-reflective .chair-left {
  position: absolute; bottom: 15%; left: 8%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2515 0%, #1a0e00 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: si4-chair-left 10s ease-in-out infinite alternate;
}
.scn-plain-honest-soldier-vs-reflective .soldier-figure {
  position: absolute; bottom: 18%; left: 10%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: si4-soldier 5s ease-in-out infinite;
}
.scn-plain-honest-soldier-vs-reflective .chair-right {
  position: absolute; bottom: 15%; right: 8%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2515 0%, #1a0e00 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: si4-chair-right 10s ease-in-out infinite alternate 2s;
}
.scn-plain-honest-soldier-vs-reflective .thinker-figure {
  position: absolute; bottom: 18%; right: 12%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-thinker 7s ease-in-out infinite 1s;
}
.scn-plain-honest-soldier-vs-reflective .log-ember {
  position: absolute; bottom: 5%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #ff9040 0%, #c04010 100%);
  border-radius: 30% 30% 40% 40%;
  filter: blur(2px);
  animation: si4-ember 4s ease-in-out infinite alternate;
}
.scn-plain-honest-soldier-vs-reflective .smoke {
  position: absolute; top: 40%; left: 55%; width: 16%; height: 12%;
  background: radial-gradient(ellipse, rgba(180,160,140,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: si4-smoke 12s ease-in-out infinite;
}
@keyframes si4-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes si4-fire { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 25% { transform: translateX(-50%) scale(1.05); opacity: 1; } 50% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } 75% { transform: translateX(-50%) scale(1.08); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.8; } }
@keyframes si4-chair-left { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } }
@keyframes si4-chair-right { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-4px) rotate(0deg); } }
@keyframes si4-soldier { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes si4-thinker { 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(-1deg); } }
@keyframes si4-ember { 0% { transform: scale(1) rotate(0deg); opacity: 0.5; } 25% { transform: scale(1.2) rotate(5deg); opacity: 1; } 50% { transform: scale(0.8) rotate(-5deg); opacity: 0.7; } 75% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.5; } }
@keyframes si4-smoke { 0% { transform: translate(0,0) scale(0.8); opacity: 0; } 25% { transform: translate(-10px,-20px) scale(1.2); opacity: 0.3; } 50% { transform: translate(-20px,-40px) scale(1.5); opacity: 0.2; } 75% { transform: translate(-30px,-60px) scale(1.8); opacity: 0.1; } 100% { transform: translate(-40px,-80px) scale(2); opacity: 0; } }

/* Scene: circumstances-attend-application-of-means */
.scn-circumstances-attend-application-of-means {
  background:
    linear-gradient(135deg, #2b1f1a 0%, #1e1512 50%, #140e0c 100%),
    radial-gradient(ellipse at 50% 60%, #3a2b25 0%, transparent 70%);
}
.scn-circumstances-attend-application-of-means .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,20,15,0.85) 0%, rgba(20,15,12,0.5) 100%);
  animation: caam-bg 15s ease-in-out infinite alternate;
}
.scn-circumstances-attend-application-of-means .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a342a 0%, #2d201a 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.6);
}
.scn-circumstances-attend-application-of-means .map {
  position: absolute; bottom: 25%; left: 20%; width: 55%; height: 18%;
  background: linear-gradient(135deg, #c8b090 0%, #a68c72 50%, #8a7058 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  animation: caam-map 20s ease-in-out infinite alternate;
}
.scn-circumstances-attend-application-of-means .candle {
  position: absolute; bottom: 32%; left: 65%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 60%, #8a6040 100%);
  border-radius: 3px;
  box-shadow: 0 0 12px 4px rgba(240, 200, 120, 0.4);
  animation: caam-candle 4s ease-in-out infinite alternate;
}
.scn-circumstances-attend-application-of-means .inkwell {
  position: absolute; bottom: 28%; left: 28%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #3a3028 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
}
.scn-circumstances-attend-application-of-means .quill {
  position: absolute; bottom: 30%; left: 32%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b8a898 100%);
  transform-origin: bottom center;
  animation: caam-quill 6s ease-in-out infinite;
}
.scn-circumstances-attend-application-of-means .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: caam-shadow 10s ease-in-out infinite alternate;
}
@keyframes caam-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes caam-map {
  0% { transform: rotate(-2deg) scale(1); background-position: 0% 0%; }
  50% { transform: rotate(-1deg) scale(1.01); background-position: 2% 1%; }
  100% { transform: rotate(-2deg) scale(1); background-position: 0% 2%; }
}
@keyframes caam-candle {
  0% { box-shadow: 0 0 8px 2px rgba(240,200,120,0.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 16px 6px rgba(240,200,120,0.5); transform: scaleY(1.02); }
  100% { box-shadow: 0 0 10px 3px rgba(240,200,120,0.35); transform: scaleY(0.98); }
}
@keyframes caam-quill {
  0% { transform: rotate(-5deg); }
  25% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes caam-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* Scene: locality-time-weather-influence */
.scn-locality-time-weather-influence {
  background:
    linear-gradient(180deg, #2a2420 0%, #1c1815 50%, #12100e 100%),
    radial-gradient(ellipse at 30% 70%, #3a342e 0%, transparent 60%);
}
.scn-locality-time-weather-influence .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,35,30,0.9) 0%, rgba(20,18,15,0.5) 100%);
  animation: ltw-wall 18s ease-in-out infinite alternate;
}
.scn-locality-time-weather-influence .window {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 35%;
  background: linear-gradient(180deg, #3a3a44 0%, #2c2c36 100%);
  border: 6px solid #2a1e1a;
  border-radius: 4px;
  overflow: hidden;
}
.scn-locality-time-weather-influence .curtain-left {
  position: absolute; top: 10%; left: 16%; width: 12%; height: 60%;
  background: linear-gradient(135deg, #4a3a2e 0%, #2a1e18 100%);
  border-radius: 0 20% 20% 0;
  animation: ltw-curtain 10s ease-in-out infinite alternate;
}
.scn-locality-time-weather-influence .curtain-right {
  position: absolute; top: 10%; right: 16%; width: 12%; height: 60%;
  background: linear-gradient(225deg, #4a3a2e 0%, #2a1e18 100%);
  border-radius: 20% 0 0 20%;
  animation: ltw-curtain 10s ease-in-out infinite alternate-reverse;
}
.scn-locality-time-weather-influence .chair {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #3a2e26 0%, #1e1612 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: ltw-chair 12s ease-in-out infinite;
}
.scn-locality-time-weather-influence .coat {
  position: absolute; bottom: 20%; left: 36%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: ltw-coat 8s ease-in-out infinite alternate;
}
.scn-locality-time-weather-influence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
}
@keyframes ltw-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes ltw-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(-4px); }
}
@keyframes ltw-chair {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ltw-coat {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* Scene: end-and-means-in-strategy */
.scn-end-and-means-in-strategy {
  background:
    linear-gradient(180deg, #1e1a18 0%, #13100f 50%, #0d0b0a 100%),
    radial-gradient(ellipse at 60% 40%, #2a2420 0%, transparent 70%);
}
.scn-end-and-means-in-strategy .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,26,24,0.8) 0%, rgba(20,17,15,0.5) 100%);
  animation: ems-wall 20s ease-in-out infinite alternate;
}
.scn-end-and-means-in-strategy .bookshelf {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 45%;
  background: linear-gradient(180deg, #3a2a20 0%, #241a14 100%);
  border-radius: 4px;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-end-and-means-in-strategy .book-a {
  position: absolute; top: 18%; left: 20%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #705a4a 0%, #4a382e 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  animation: ems-book 15s ease-in-out infinite alternate;
}
.scn-end-and-means-in-strategy .book-b {
  position: absolute; top: 22%; left: 34%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a4c40 0%, #3a2e24 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  animation: ems-book 15s ease-in-out infinite alternate-reverse;
}
.scn-end-and-means-in-strategy .globe {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 28%;
  background: radial-gradient(circle at 50% 40%, #8ab0c8 0%, #4a6a7a 60%, #2a3a44 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ems-globe 25s linear infinite;
}
.scn-end-and-means-in-strategy .lamp {
  position: absolute; bottom: 40%; right: 20%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 60%, #806040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.3);
  animation: ems-lamp 5s ease-in-out infinite alternate;
}
.scn-end-and-means-in-strategy .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: ems-shadow 12s ease-in-out infinite alternate;
}
@keyframes ems-wall {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ems-book {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ems-globe {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(30deg); }
}
@keyframes ems-lamp {
  0% { box-shadow: 0 0 12px 3px rgba(200,160,80,0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 24px 8px rgba(200,160,80,0.4); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 14px 4px rgba(200,160,80,0.25); transform: scaleY(0.95); }
}
@keyframes ems-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* Scene: circumstances-attend-strategy */
.scn-circumstances-attend-strategy {
  background:
    linear-gradient(135deg, #1e1a16 0%, #14110e 50%, #0d0b09 100%),
    radial-gradient(ellipse at 50% 70%, #2a2420 0%, transparent 60%);
}
.scn-circumstances-attend-strategy .table {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #3a2e26 0%, #221913 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-circumstances-attend-strategy .map {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(135deg, #b8a088 0%, #9a826a 50%, #7a6450 100%);
  border-radius: 3px;
  transform: rotate(-1deg);
  animation: cas-map 18s ease-in-out infinite alternate;
}
.scn-circumstances-attend-strategy .marker-a {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b08060 0%, #704030 100%);
  border-radius: 50%;
  animation: cas-marker 10s ease-in-out infinite alternate;
}
.scn-circumstances-attend-strategy .marker-b {
  position: absolute; bottom: 32%; left: 50%; width: 6px; height: 6px;
  background: radial-gradient(circle, #907060 0%, #504030 100%);
  border-radius: 50%;
  animation: cas-marker 10s ease-in-out infinite alternate-reverse;
}
.scn-circumstances-attend-strategy .lantern {
  position: absolute; bottom: 38%; left: 68%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #f0c880 0%, #c8a060 60%, #a08040 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 18px 6px rgba(200,160,80,0.4);
  animation: cas-lantern 6s ease-in-out infinite alternate;
}
.scn-circumstances-attend-strategy .compass {
  position: absolute; bottom: 26%; left: 22%; width: 16px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #d0c0b0 0%, #8a7a6a 100%);
  border-radius: 50%;
  border: 2px solid #3a2e24;
  animation: cas-compass 20s linear infinite;
}
.scn-circumstances-attend-strategy .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: cas-shadow 14s ease-in-out infinite alternate;
}
@keyframes cas-map {
  0% { transform: rotate(-1deg) scale(1); background-position: 0% 0%; }
  50% { transform: rotate(0deg) scale(1.01); background-position: 1% 1%; }
  100% { transform: rotate(-1deg) scale(1); background-position: 0% 2%; }
}
@keyframes cas-marker {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes cas-lantern {
  0% { box-shadow: 0 0 12px 3px rgba(200,160,80,0.3); transform: rotate(-2deg); }
  50% { box-shadow: 0 0 22px 7px rgba(200,160,80,0.5); transform: rotate(2deg); }
  100% { box-shadow: 0 0 14px 4px rgba(200,160,80,0.35); transform: rotate(-1deg); }
}
@keyframes cas-compass {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(20deg); }
}
@keyframes cas-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* natural-tendency-not-emotions */
.scn-natural-tendency-not-emotions {
  background: linear-gradient(135deg, #2b1b0e 0%, #1a0f07 50%, #3b2b1e 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-natural-tendency-not-emotions .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 22%;
  background: linear-gradient(180deg, #4a3727 0%, #2c1f14 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -3px 8px rgba(0,0,0,0.6);
}
.scn-natural-tendency-not-emotions .book {
  position: absolute; bottom: 16%; left: 50%; width: 80px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b503a 0%, #3f2d1e 100%);
  border-radius: 3px; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: nt-book 8s ease-in-out infinite;
}
.scn-natural-tendency-not-emotions .candle {
  position: absolute; bottom: 16%; left: 38%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #d4b082 0%, #a07850 60%, #60402a 100%);
  border-radius: 2px; transform: translateX(-50%);
}
.scn-natural-tendency-not-emotions .flame {
  position: absolute; bottom: 44%; left: 38%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffe090 0%, #ffb040 60%, rgba(255,176,64,0) 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,176,64,0.4);
  animation: nt-flame 3s ease-in-out infinite alternate;
}
.scn-natural-tendency-not-emotions .inkwell {
  position: absolute; bottom: 14%; left: 60%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-natural-tendency-not-emotions .shadow-left {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 40%;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: nt-shadow-left 12s ease-in-out infinite alternate;
}
.scn-natural-tendency-not-emotions .shadow-right {
  position: absolute; bottom: 0; right: 0; width: 40%; height: 40%;
  background: linear-gradient(225deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: nt-shadow-right 15s ease-in-out infinite alternate;
}
@keyframes nt-book {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes nt-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.85; }
  30% { transform: scaleY(1.2) translateY(-3px); opacity: 1; }
  60% { transform: scaleY(0.9) translateY(1px); opacity: 0.9; }
  100% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; }
}
@keyframes nt-shadow-left {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes nt-shadow-right {
  0% { opacity: 0.3; }
  66% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* all-wars-political-acts */
.scn-all-wars-political-acts {
  background: linear-gradient(135deg, #2b1b0e 0%, #1a0f07 60%, #3b2b1e 100%), radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 80%);
}
.scn-all-wars-political-acts .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3727 0%, #2c1f14 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -3px 8px rgba(0,0,0,0.6);
}
.scn-all-wars-political-acts .map {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 28%;
  background: linear-gradient(135deg, #6b5a42 0%, #4a3a2a 50%, #6b5a42 100%);
  border-radius: 2px; clip-path: polygon(10% 0, 90% 0, 95% 100%, 5% 100%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: aw-map 16s ease-in-out infinite alternate;
}
.scn-all-wars-political-acts .figure {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0c0c14 0%, #1a1a2a 50%, #0c0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-figure 6s ease-in-out infinite;
}
.scn-all-wars-political-acts .lamp {
  position: absolute; bottom: 28%; left: 68%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #d4b082 0%, #a07850 100%);
  border-radius: 4px 4px 40% 40%; box-shadow: 0 0 0 0 #ffd060;
  animation: aw-lamp 4s ease-in-out infinite alternate;
}
.scn-all-wars-political-acts .lamp::after {
  content: ''; position: absolute; top: -8px; left: 50%; translateX(-50%);
  width: 10px; height: 10px; background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
}
.scn-all-wars-political-acts .globe {
  position: absolute; bottom: 22%; left: 28%; width: 24px; height: 24px;
  background: radial-gradient(circle at 30% 30%, #a08060 0%, #604830 100%);
  border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: aw-globe 20s linear infinite;
}
.scn-all-wars-political-acts .globe::before {
  content: ''; position: absolute; top: 8px; left: 4px; width: 6px; height: 8px;
  background: rgba(255,255,255,0.1); border-radius: 50%; transform: rotate(30deg);
}
.scn-all-wars-political-acts .shadow-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.2) 100%);
  animation: aw-shadow 10s ease-in-out infinite alternate;
}
@keyframes aw-map {
  0% { transform: scale(1); clip-path: polygon(10% 0, 90% 0, 95% 100%, 5% 100%); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(1); clip-path: polygon(10% 0, 90% 0, 95% 100%, 5% 100%); }
}
@keyframes aw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes aw-lamp {
  0% { box-shadow: 0 0 6px 2px rgba(255,208,96,0.3); }
  50% { box-shadow: 0 0 14px 6px rgba(255,208,96,0.6); }
  100% { box-shadow: 0 0 8px 3px rgba(255,208,96,0.4); }
}
@keyframes aw-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes aw-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* influence-on-military-history */
.scn-influence-on-military-history {
  background: linear-gradient(180deg, #1a0f07 0%, #2b1b0e 50%, #3b2b1e 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-influence-on-military-history .bookshelf {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 65%;
  background: linear-gradient(180deg, #3a271a 0%, #2c1f14 100%);
  border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-influence-on-military-history .book-row-1 {
  position: absolute; top: 15%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(90deg, #6b503a 0%, #4a3727 20%, #7a6048 40%, #4a3727 60%, #8a7058 80%, #6b503a 100%);
  border-radius: 2px; animation: im-book-row 14s ease-in-out infinite;
}
.scn-influence-on-military-history .book-row-2 {
  position: absolute; top: 40%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(90deg, #8a7058 0%, #6b503a 25%, #4a3727 50%, #7a6048 75%, #6b503a 100%);
  border-radius: 2px; animation: im-book-row 18s ease-in-out infinite reverse;
}
.scn-influence-on-military-history .scholar {
  position: absolute; bottom: 12%; left: 42%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #0c0c18 0%, #1a1a2a 60%, #0c0c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-scholar 8s ease-in-out infinite;
}
.scn-influence-on-military-history .lamp {
  position: absolute; bottom: 26%; left: 56%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #d4b082 0%, #a07850 100%);
  border-radius: 4px 4px 50% 50%;
  animation: im-lamp 5s ease-in-out infinite alternate;
}
.scn-influence-on-military-history .lamp::after {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px; background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
}
.scn-influence-on-military-history .shadow-ambient {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 60%, rgba(0,0,0,0.15) 100%);
  animation: im-shadow 12s ease-in-out infinite alternate;
}
@keyframes im-book-row {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes im-scholar {
  0% { transform: translateY(0) rotate(-0.5deg); }
  33% { transform: translateY(-2px) rotate(0.5deg); }
  66% { transform: translateY(-1px) rotate(-0.3deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes im-lamp {
  0% { box-shadow: 0 0 8px 3px rgba(255,208,96,0.3); }
  50% { box-shadow: 0 0 16px 8px rgba(255,208,96,0.5); }
  100% { box-shadow: 0 0 10px 4px rgba(255,208,96,0.4); }
}
@keyframes im-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* first-strategical-question */
.scn-first-strategical-question {
  background: linear-gradient(135deg, #2b1b0e 0%, #1a0f07 40%, #3b2b1e 100%), radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, transparent 80%);
}
.scn-first-strategical-question .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a3727 0%, #2c1f14 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-first-strategical-question .parchment {
  position: absolute; bottom: 22%; left: 50%; width: 70px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #a08068 0%, #7a6048 50%, #a08068 100%);
  border-radius: 2px; box-shadow: 0 3px 8px rgba(0,0,0,0.4);
  animation: fs-parchment 20s ease-in-out infinite;
}
.scn-first-strategical-question .parchment::after {
  content: ''; position: absolute; bottom: 5px; left: 20%; width: 60%; height: 2px;
  background: #2c1f14; border-radius: 1px; opacity: 0.5;
}
.scn-first-strategical-question .quill {
  position: absolute; bottom: 26%; left: 62%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d4b082 0%, #a07850 50%, #60402a 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: fs-quill 7s ease-in-out infinite;
}
.scn-first-strategical-question .quill::before {
  content: ''; position: absolute; top: -6px; left: -4px; width: 12px; height: 8px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b082 100%);
  border-radius: 50% 0 50% 0; transform: rotate(-30deg);
}
.scn-first-strategical-question .ink {
  position: absolute; bottom: 16%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle at 50% 40%, #1a0e07 0%, #0a0502 100%);
  border-radius: 50%; box-shadow: inset 0 1px 2px rgba(0,0,0,0.5);
  animation: fs-ink 25s ease-in-out infinite alternate;
}
.scn-first-strategical-question .candle {
  position: absolute; bottom: 18%; left: 38%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #d4b082 0%, #a07850 60%, #60402a 100%);
  border-radius: 2px;
}
.scn-first-strategical-question .flame {
  position: absolute; bottom: 48%; left: 38%; width: 14px; height: 22px;
  background: radial-gradient(circle, #ffe090 0%, #ffb040 60%, rgba(255,176,64,0) 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 24px 10px rgba(255,176,64,0.3);
  animation: fs-flame 3s ease-in-out infinite alternate;
}
.scn-first-strategical-question .shadow-light {
  position: absolute; inset: 0; background: linear-gradient(225deg, rgba(0,0,0,0.25) 0%, transparent 50%, rgba(0,0,0,0.15) 100%);
  animation: fs-shadow 14s ease-in-out infinite alternate;
}
@keyframes fs-parchment {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) rotate(0.3deg); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes fs-quill {
  0% { transform: rotate(-5deg); }
  30% { transform: rotate(3deg) translateY(1px); }
  60% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(-5deg); }
}
@keyframes fs-ink {
  0% { box-shadow: inset 0 1px 2px rgba(0,0,0,0.5); opacity: 0.9; }
  50% { box-shadow: inset 0 3px 6px rgba(0,0,0,0.7); opacity: 1; }
  100% { box-shadow: inset 0 1px 2px rgba(0,0,0,0.5); opacity: 0.9; }
}
@keyframes fs-flame {
  0% { transform: scaleY(0.9) translateY(2px); opacity: 0.8; }
  30% { transform: scaleY(1.2) translateY(-4px); opacity: 1; }
  70% { transform: scaleY(1.1) translateY(-1px); opacity: 0.95; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.85; }
}
@keyframes fs-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* arming-the-nation-evaporation – bright interior, evaporation theme */
.scn-arming-the-nation-evaporation {
  background: linear-gradient(160deg, #f5ecd0 0%, #e0d4b8 40%, #c8b894 100%), radial-gradient(ellipse at 60% 0%, #fff6e0 0%, transparent 70%);
}
.scn-arming-the-nation-evaporation .window {
  position: absolute; inset: 5% 0 0 0; height: 35%; background: linear-gradient(180deg, #e8e0c8 0%, transparent 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 12px rgba(0,0,0,0.1); animation: aev-window 12s ease-in-out infinite alternate;
}
.scn-arming-the-nation-evaporation .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #a08050 0%, #6b4f2e 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.15);
}
.scn-arming-the-nation-evaporation .glass {
  position: absolute; bottom: 26%; left: 28%; width: 7%; height: 18%; background: linear-gradient(90deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 40%, rgba(200,220,240,0.3) 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; border: 2px solid rgba(180,180,200,0.5); box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: aev-glass 6s ease-in-out infinite;
}
.scn-arming-the-nation-evaporation .water {
  position: absolute; bottom: 30%; left: 29%; width: 5%; height: 10%; background: linear-gradient(180deg, #c0d8e0 0%, #90b0c0 100%); border-radius: 0 0 30% 30%; animation: aev-water 8s ease-in-out infinite alternate;
}
.scn-arming-the-nation-evaporation .vapor {
  position: absolute; bottom: 48%; left: 30%; width: 8%; height: 12%; background: radial-gradient(circle at 50% 100%, rgba(255,255,255,0.4) 0%, rgba(240,240,250,0.2) 60%, transparent 100%); filter: blur(4px); animation: aev-vapor 10s ease-in-out infinite;
}
.scn-arming-the-nation-evaporation .book {
  position: absolute; bottom: 20%; right: 12%; width: 12%; height: 14%; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 4% 8% 8% 4%; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); transform: rotate(-2deg); animation: aev-book 5s ease-in-out infinite;
}
@keyframes aev-window { 0% { opacity:0.85; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.03); } 100% { opacity:0.9; transform:scaleY(0.98); } }
@keyframes aev-glass { 0% { transform:translateY(0); } 50% { transform:translateY(-1px) scaleY(1.01); } 100% { transform:translateY(0); } }
@keyframes aev-water { 0% { opacity:0.6; height:10%; } 50% { opacity:0.8; height:9.5%; } 100% { opacity:0.7; height:8.5%; } }
@keyframes aev-vapor { 0% { transform:translateY(0) scale(1) rotate(0deg); opacity:0.5; } 50% { transform:translateY(-20px) scale(1.2) rotate(5deg); opacity:0.8; } 100% { transform:translateY(-40px) scale(1) rotate(-3deg); opacity:0; } }
@keyframes aev-book { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-2px); } 100% { transform:rotate(-2deg) translateY(0); } }

/* arming-the-nation-not-alone – bright interior with two chairs */
.scn-arming-the-nation-not-alone {
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c6a8 50%, #b8a888 100%), radial-gradient(ellipse at 50% 100%, #f5ecd0 0%, transparent 60%);
}
.scn-arming-the-nation-not-alone .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #e0d4b8 0%, #c8b894 100%); border-bottom: 4px solid #a09070;
}
.scn-arming-the-nation-not-alone .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #7a6a4a 0%, #9a8a6a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-arming-the-nation-not-alone .table {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ana-table 8s ease-in-out infinite;
}
.scn-arming-the-nation-not-alone .chair-left {
  position: absolute; bottom: 20%; left: 20%; width: 10%; height: 18%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ana-chair 6s ease-in-out infinite alternate;
}
.scn-arming-the-nation-not-alone .chair-right {
  position: absolute; bottom: 20%; right: 22%; width: 10%; height: 18%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ana-chair 6s ease-in-out infinite alternate-reverse;
}
.scn-arming-the-nation-not-alone .lamp {
  position: absolute; top: 10%; left: 50%; width: 6%; height: 20%; background: linear-gradient(180deg, #c8a864 0%, #a08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,168,100,0.4); animation: ana-lamp 4s ease-in-out infinite;
}
.scn-arming-the-nation-not-alone .document {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 6%; background: linear-gradient(135deg, #f5f0e0 0%, #e8dcc4 100%); border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); transform: rotate(-3deg); animation: ana-doc 7s ease-in-out infinite;
}
@keyframes ana-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ana-chair { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.02); } 100% { transform: rotate(2deg) scaleY(0.98); } }
@keyframes ana-lamp { 0% { opacity:0.85; box-shadow: 0 0 20px 6px rgba(200,168,100,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(200,168,100,0.5); } 100% { opacity:0.9; box-shadow: 0 0 25px 8px rgba(200,168,100,0.35); } }
@keyframes ana-doc { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-4deg) translateX(0); } }

/* arming-the-nation-conditions – bright interior with scale and papers */
.scn-arming-the-nation-conditions {
  background: linear-gradient(170deg, #f0e6d0 0%, #d8c8aa 50%, #c0b090 100%), radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
}
.scn-arming-the-nation-conditions .window-arch {
  position: absolute; top: 0; left: 10%; width: 40%; height: 50%; background: linear-gradient(180deg, #e8dec8 0%, #c8b898 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: aco-window 15s ease-in-out infinite;
}
.scn-arming-the-nation-conditions .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.15);
}
.scn-arming-the-nation-conditions .scale {
  position: absolute; bottom: 22%; left: 38%; width: 20%; height: 14%; background: linear-gradient(180deg, #b09868 0%, #8a7048 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.2); animation: aco-scale 10s ease-in-out infinite alternate;
}
.scn-arming-the-nation-conditions .papers {
  position: absolute; bottom: 28%; right: 15%; width: 16%; height: 10%; background: linear-gradient(135deg, #f0e8d8 0%, #e0d0b8 100%); border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(2deg); animation: aco-papers 8s ease-in-out infinite;
}
.scn-arming-the-nation-conditions .inkwell {
  position: absolute; bottom: 22%; right: 32%; width: 5%; height: 6%; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: aco-ink 6s ease-in-out infinite;
}
.scn-arming-the-nation-conditions .quill {
  position: absolute; bottom: 28%; right: 32%; width: 8%; height: 16%; background: linear-gradient(180deg, #c8b8a0 0%, #a89878 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: aco-quill 4s ease-in-out infinite alternate;
}
@keyframes aco-window { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes aco-scale { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }
@keyframes aco-papers { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes aco-ink { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1.02); } }
@keyframes aco-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(5deg); } }

/* arming-the-nation-villages-versus-scattered – diorama on table */
.scn-arming-the-nation-villages-versus-scattered {
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b898 50%, #b0a080 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 50%);
}
.scn-arming-the-nation-villages-versus-scattered .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-arming-the-nation-villages-versus-scattered .map {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%; background: linear-gradient(135deg, #e0d4b8 0%, #c8b898 100%); border-radius: 4%; box-shadow: inset 0 0 12px rgba(0,0,0,0.1); animation: avi-map 20s ease-in-out infinite;
}
.scn-arming-the-nation-villages-versus-scattered .village {
  position: absolute; bottom: 30%; left: 20%; width: 15%; height: 8%; background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 4px, transparent 4px, transparent 8px); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: avi-village 12s ease-in-out infinite;
}
.scn-arming-the-nation-villages-versus-scattered .scattered {
  position: absolute; bottom: 30%; right: 20%; width: 6%; height: 4%; background: #8a7a5a; border-radius: 30%; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: avi-scattered 8s ease-in-out infinite;
}
.scn-arming-the-nation-villages-versus-scattered .telescope {
  position: absolute; bottom: 22%; left: 48%; width: 8%; height: 18%; background: linear-gradient(180deg, #c8b8a0 0%, #a89878 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: avi-telescope 14s ease-in-out infinite;
}
.scn-arming-the-nation-villages-versus-scattered .lamp {
  position: absolute; top: 10%; right: 15%; width: 5%; height: 14%; background: linear-gradient(180deg, #c8a864 0%, #a08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,168,100,0.4); animation: avi-lamp 5s ease-in-out infinite;
}
@keyframes avi-map { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes avi-village { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes avi-scattered { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes avi-telescope { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes avi-lamp { 0% { opacity:0.85; box-shadow: 0 0 15px 4px rgba(200,168,100,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(200,168,100,0.5); } 100% { opacity:0.9; box-shadow: 0 0 20px 6px rgba(200,168,100,0.35); } }

.scn-defence-of-streams-battle-character {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #2a3a3a 60%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%);
}
.scn-defence-of-streams-battle-character .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 40%, #3a4a4a 100%);
  animation: dsb-sky-pulse 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-battle-character .distant-ridge {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-defence-of-streams-battle-character .river-band {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a5a5a 0%, #5a6a6a 50%, #3a4a4a 100%);
  box-shadow: inset 0 2px 8px rgba(90,106,106,0.3);
  animation: dsb-river 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-battle-character .near-bank {
  position: absolute; bottom: 16%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 0 0 20% 30% / 0 0 40% 50%;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.6);
}
.scn-defence-of-streams-battle-character .soldier-line {
  position: absolute; bottom: 14%; left: 8%; width: 46%; height: 28%;
  background:
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 8px,
      #2a2a1a 8px, #2a2a1a 12px,
      transparent 12px, transparent 20px);
  mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 100%);
  animation: dsb-line-shift 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-battle-character .soldier-advance {
  position: absolute; bottom: 12%; left: 55%; width: 10%; height: 32%;
  background:
    linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #2a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dsb-advance 3s ease-in-out infinite;
}
.scn-defence-of-streams-battle-character .spear-points {
  position: absolute; bottom: 18%; left: 10%; width: 45%; height: 40%;
  background:
    repeating-linear-gradient(110deg,
      transparent 0px, transparent 10px,
      #5a4a3a 10px, #5a4a3a 11px,
      transparent 11px, transparent 22px);
  mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 50%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 50%);
  transform: rotate(-5deg) translateY(-2px);
  animation: dsb-spear 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-battle-character .battle-fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(90,90,80,0.15) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(80,80,70,0.1) 0%, transparent 50%);
  filter: blur(10px);
  animation: dsb-fog 20s ease-in-out infinite alternate;
}
@keyframes dsb-sky-pulse {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.75; transform: scaleY(0.98); }
}
@keyframes dsb-river {
  0% { background-position: 0% 0%; opacity: 0.6; }
  50% { background-position: 2% 0%; opacity: 0.8; }
  100% { background-position: 0% 0%; opacity: 0.65; }
}
@keyframes dsb-line-shift {
  0% { transform: translateX(0px) scaleY(1); }
  50% { transform: translateX(4px) scaleY(1.03); }
  100% { transform: translateX(-2px) scaleY(0.97); }
}
@keyframes dsb-advance {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(6px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(6px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes dsb-spear {
  0% { transform: rotate(-5deg) translateY(-2px); opacity: 0.8; }
  50% { transform: rotate(-2deg) translateY(-6px); opacity: 1; }
  100% { transform: rotate(-7deg) translateY(0px); opacity: 0.85; }
}
@keyframes dsb-fog {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(0.95); }
}

.scn-defence-of-streams-limitation-on-superior-force {
  background:
    linear-gradient(135deg, #c8b89a 0%, #b8a888 30%, #a89878 60%, #988868 100%),
    radial-gradient(ellipse at 40% 60%, #d8c8a8 0%, transparent 60%);
}
.scn-defence-of-streams-limitation-on-superior-force .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8a888 0%, #a89878 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-defence-of-streams-limitation-on-superior-force .window-light {
  position: absolute; top: 8%; right: 12%; width: 28%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #e0d8c0 40%, transparent 70%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 60px 20px rgba(240,232,216,0.15);
  animation: dsl-window 9s ease-in-out infinite alternate;
}
.scn-defence-of-streams-limitation-on-superior-force .map-table {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2), inset 0 2px 6px rgba(106,90,74,0.3);
  transform: perspective(600px) rotateX(5deg);
}
.scn-defence-of-streams-limitation-on-superior-force .map-scroll {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(135deg, #d8c8a8 0%, #e0d0b0 30%, #c8b898 70%, #d0c0a0 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: dsl-map 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-limitation-on-superior-force .officer-seated {
  position: absolute; bottom: 18%; left: 28%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 60%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dsl-seated 8s ease-in-out infinite;
}
.scn-defence-of-streams-limitation-on-superior-force .officer-standing {
  position: absolute; bottom: 18%; right: 24%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dsl-standing 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-limitation-on-superior-force .candle-glow {
  position: absolute; bottom: 38%; left: 45%; width: 4%; height: 6%;
  background: radial-gradient(circle, #f0d080 0%, #d0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.4), 0 0 60px 20px rgba(240,208,128,0.15);
  animation: dsl-candle 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-limitation-on-superior-force .inkwell {
  position: absolute; bottom: 15%; right: 38%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dsl-ink 10s ease-in-out infinite alternate;
}
@keyframes dsl-window {
  0% { opacity: 0.8; box-shadow: 0 0 40px 15px rgba(240,232,216,0.1); }
  50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(240,232,216,0.2); }
  100% { opacity: 0.85; box-shadow: 0 0 50px 18px rgba(240,232,216,0.12); }
}
@keyframes dsl-map {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes dsl-seated {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-2px) rotate(0deg); }
  66% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dsl-standing {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
}
@keyframes dsl-candle {
  0% { opacity: 0.8; transform: scale(0.95) translateY(0); }
  50% { opacity: 1; transform: scale(1.05) translateY(-2px); }
  100% { opacity: 0.85; transform: scale(0.98) translateY(0); }
}
@keyframes dsl-ink {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

.scn-defence-of-streams-windings-dangerous {
  background:
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 30%, #4a5a4a 60%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #4a5a5a 0%, transparent 60%);
}
.scn-defence-of-streams-windings-dangerous .valley-wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(135deg, #2a3a2a 0%, #3a4a3a 40%, #1a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 30%, 85% 50%, 60% 70%, 80% 100%, 0% 100%);
  box-shadow: inset -8px 0 16px rgba(0,0,0,0.4);
  animation: dsw-wall-left 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .valley-wall-right {
  position: absolute; inset: 0 0 0 55%;
  background: linear-gradient(225deg, #1a2a2a 0%, #2a3a3a 40%, #0a1a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 30% 100%, 45% 70%, 20% 50%, 40% 20%);
  box-shadow: inset 8px 0 16px rgba(0,0,0,0.5);
  animation: dsw-wall-right 25s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .river-course {
  position: absolute; bottom: 20%; left: 30%; right: 25%; height: 40%;
  background: linear-gradient(90deg, #4a5a5a 0%, #5a6a6a 30%, #4a5a5a 60%, #5a6a6a 100%);
  clip-path: polygon(20% 0%, 80% 10%, 70% 30%, 90% 50%, 60% 70%, 85% 90%, 30% 100%, 10% 80%, 40% 60%, 20% 40%, 40% 20%);
  box-shadow: inset 0 4px 12px rgba(74,90,90,0.3);
  animation: dsw-river 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .river-foam {
  position: absolute; bottom: 20%; left: 30%; right: 25%; height: 40%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(200,210,210,0.15) 30px, rgba(200,210,210,0.15) 32px, transparent 32px, transparent 60px);
  clip-path: polygon(20% 0%, 80% 10%, 70% 30%, 90% 50%, 60% 70%, 85% 90%, 30% 100%, 10% 80%, 40% 60%, 20% 40%, 40% 20%);
  animation: dsw-foam 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .cliff-edge {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.6);
  animation: dsw-cliff 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .dead-tree {
  position: absolute; bottom: 20%; left: 18%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dsw-tree 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-windings-dangerous .mist-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(90,100,100,0.12) 0%, transparent 60%),
              radial-gradient(ellipse at 60% 30%, rgba(80,90,90,0.08) 0%, transparent 50%);
  filter: blur(8px);
  animation: dsw-mist 18s ease-in-out infinite alternate;
}
@keyframes dsw-wall-left {
  0% { transform: translateX(0) skewY(0deg); clip-path: polygon(0% 0%, 100% 0%, 70% 30%, 85% 50%, 60% 70%, 80% 100%, 0% 100%); }
  50% { transform: translateX(-4px) skewY(1deg); clip-path: polygon(0% 0%, 100% 2%, 68% 32%, 83% 52%, 58% 72%, 78% 100%, 0% 100%); }
  100% { transform: translateX(2px) skewY(-1deg); clip-path: polygon(0% 0%, 100% -1%, 72% 28%, 87% 48%, 62% 68%, 82% 100%, 0% 100%); }
}
@keyframes dsw-wall-right {
  0% { transform: translateX(0) skewY(0deg); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 30% 100%, 45% 70%, 20% 50%, 40% 20%); }
  50% { transform: translateX(3px) skewY(-1deg); clip-path: polygon(0% 1%, 100% 0%, 100% 100%, 28% 100%, 43% 72%, 18% 52%, 38% 18%); }
  100% { transform: translateX(-2px) skewY(1deg); clip-path: polygon(0% -1%, 100% 0%, 100% 100%, 32% 100%, 47% 68%, 22% 48%, 42% 22%); }
}
@keyframes dsw-river {
  0% { transform: translateX(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateX(6px) scaleY(1.02); opacity: 0.9; }
  100% { transform: translateX(-4px) scaleY(0.98); opacity: 0.75; }
}
@keyframes dsw-foam {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(10px); opacity: 0.6; }
  100% { transform: translateX(-8px); opacity: 0.35; }
}
@keyframes dsw-cliff {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.03); }
  100% { transform: translateY(2px) scaleY(0.97); }
}
@keyframes dsw-tree {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-4px); }
  100% { transform: rotate(-10deg) translateY(2px); }
}
@keyframes dsw-mist {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.08); }
  100% { opacity: 0.35; transform: scale(0.92); }
}

.scn-defence-of-streams-front-on-river-delusion {
  background:
    linear-gradient(180deg, #d0d8d0 0%, #c0c8c0 30%, #b0b8b0 60%, #a0a8a0 100%),
    radial-gradient(ellipse at 50% 20%, #e0e8e0 0%, transparent 70%);
}
.scn-defence-of-streams-front-on-river-delusion .bright-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e0e8e0 0%, #d0d8d0 40%, #c0c8c0 100%);
  animation: dsr-sky 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .far-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a0a8a0 0%, #909890 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.05);
  animation: dsr-hills 18s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .river-sheen {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #b0b8b0 0%, #c0c8c0 40%, #b0b8b0 60%, #a0a8a0 100%);
  box-shadow: inset 0 2px 8px rgba(160,168,160,0.2);
  animation: dsr-sheen 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .near-bank-grass {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #90a080 0%, #809070 100%);
  border-radius: 0 0 30% 20% / 0 0 50% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.08);
  animation: dsr-grass 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .soldier-formation {
  position: absolute; bottom: 22%; left: 8%; width: 50%; height: 22%;
  background:
    repeating-linear-gradient(90deg,
      transparent 0px, transparent 10px,
      #5a6a5a 10px, #5a6a5a 14px,
      transparent 14px, transparent 24px);
  mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 80%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 80%, transparent 100%);
  animation: dsr-formation 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .banner-pole {
  position: absolute; bottom: 28%; left: 35%; width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10%;
  transform: rotate(-2deg);
  animation: dsr-banner 7s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .helmet-crest {
  position: absolute; bottom: 28%; left: 20%; width: 2%; height: 4%;
  background: radial-gradient(circle, #c0c8c0 0%, #a0a8a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,200,192,0.3);
  animation: dsr-helmet 5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-front-on-river-delusion .dust-mot {
  position: absolute; bottom: 30%; left: 15%; width: 1%; height: 1%;
  background: transparent;
  box-shadow:
    20px 0 0 0 rgba(160,168,160,0.3),
    40px 8px 0 0 rgba(160,168,160,0.2),
    60px -4px 0 0 rgba(160,168,160,0.25),
    80px 2px 0 0 rgba(160,168,160,0.15),
    100px -6px 0 0 rgba(160,168,160,0.2);
  filter: blur(1px);
  animation: dsr-dust 9s ease-in-out infinite alternate;
}
@keyframes dsr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dsr-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes dsr-sheen {
  0% { background-position: 0% 0%; opacity: 0.6; }
  50% { background-position: 2% 0%; opacity: 0.8; }
  100% { background-position: 0% 0%; opacity: 0.65; }
}
@keyframes dsr-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes dsr-formation {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.02); }
  100% { transform: translateX(-3px) scaleY(0.98); }
}
@keyframes dsr-banner {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes dsr-helmet {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-2px); }
  100% { opacity: 0.55; transform: translateY(1px); }
}
@keyframes dsr-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0.3; }
  50% { transform: translateX(8px) translateY(-4px); opacity: 0.6; }
  100% { transform: translateX(-4px) translateY(2px); opacity: 0.35; }
}

/* defence-mountains-barrier-example – calm bright interior with mountain view */
.scn-defence-mountains-barrier-example {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b5 40%, #d4b896 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-defence-mountains-barrier-example .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d4b896 0%, #c8a87a 50%, #d4b896 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: dbe-wall 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-example .window-frame {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 0 0 12px #8a7a6a;
  animation: dbe-frame 6s ease-in-out infinite;
}
.scn-defence-mountains-barrier-example .window-sky {
  position: absolute; top: 10%; left: 28%; width: 44%; height: 50%;
  background: linear-gradient(180deg, #a8d8ea 0%, #87ceeb 60%, #6bb3d9 100%);
  border-radius: 2px; animation: dbe-sky 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-example .mountains-back {
  position: absolute; top: 30%; left: 28%; width: 44%; height: 25%;
  background: linear-gradient(180deg, #7aa5b5 0%, #527a8a 100%);
  clip-path: polygon(0% 60%, 15% 0%, 35% 30%, 55% 0%, 80% 20%, 100% 0%, 100% 100%, 0% 100%);
  animation: dbe-mtn-back 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-example .mountains-mid {
  position: absolute; top: 40%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  clip-path: polygon(0% 100%, 10% 10%, 25% 50%, 45% 0%, 65% 30%, 85% 0%, 100% 100%);
  animation: dbe-mtn-mid 18s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-barrier-example .table {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #b8996a 0%, #8a7a5a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: dbe-table 9s ease-in-out infinite;
}
.scn-defence-mountains-barrier-example .map {
  position: absolute; bottom: 5%; left: 55%; width: 30%; height: 20%;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 100%);
  border-radius: 4px; box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  animation: dbe-map 7s ease-in-out infinite;
}
.scn-defence-mountains-barrier-example .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, rgba(255,248,220,0) 100%);
  border-radius: 50% 50% 0 0; filter: blur(8px);
  animation: dbe-beam 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-example .dust-motes {
  position: absolute; top: 15%; left: 38%; width: 24%; height: 12%;
  background: radial-gradient(circle, rgba(255,255,240,0.3) 0%, transparent 70%);
  filter: blur(4px); animation: dbe-dust 14s ease-in-out infinite;
}
@keyframes dbe-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dbe-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes dbe-sky { 0% { background-position: 0 0 } 50% { background-position: 0 2px } 100% { background-position: 0 -2px } }
@keyframes dbe-mtn-back { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes dbe-mtn-mid { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } 100% { transform: translateY(1px) scaleX(0.99) } }
@keyframes dbe-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dbe-map { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes dbe-beam { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes dbe-dust { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(10deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 75% { transform: translateY(-8px) rotate(15deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* defence-mountains-barrier-communications – tense overcast mountain pass */
.scn-defence-mountains-barrier-communications {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%),
    radial-gradient(ellipse at 50% 30%, #5a6a6a 0%, transparent 60%);
}
.scn-defence-mountains-barrier-communications .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%);
  animation: dbc-sky 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-communications .cliff-left {
  position: absolute; bottom: 20%; left: 0; width: 25%; height: 70%;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 100%, 0% 100%);
  animation: dbc-cliff 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-communications .cliff-right {
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 65%;
  background: linear-gradient(225deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 30%, 100% 0%, 100% 100%, 0% 100%);
  animation: dbc-cliff 10s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-barrier-communications .mountain-pass {
  position: absolute; bottom: 20%; left: 25%; width: 45%; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: dbc-pass 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-communications .soldier-figure {
  position: absolute; bottom: 18%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbc-soldier 4s ease-in-out infinite;
}
.scn-defence-mountains-barrier-communications .signal-fire {
  position: absolute; bottom: 25%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ff8c40 0%, #c05a20 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,140,64,0.5);
  animation: dbc-fire 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-barrier-communications .smoke-plume {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(100,100,100,0.3) 0%, transparent 70%);
  filter: blur(6px); border-radius: 50%;
  animation: dbc-smoke 6s ease-in-out infinite;
}
.scn-defence-mountains-barrier-communications .falling-rocks {
  position: absolute; top: 15%; left: 35%; width: 8px; height: 8px;
  background: #3a3a2a; border-radius: 40%;
  box-shadow: 0 0 4px 2px rgba(0,0,0,0.3);
  animation: dbc-rock 5s linear infinite;
}
@keyframes dbc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dbc-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dbc-pass { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes dbc-soldier { 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(4px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes dbc-fire { 0% { opacity:0.8; box-shadow: 0 0 15px 5px rgba(255,140,64,0.4) } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(255,140,64,0.7) } 100% { opacity:0.9; box-shadow: 0 0 20px 8px rgba(255,140,64,0.5) } }
@keyframes dbc-smoke { 0% { transform: translateY(0) scale(0.8); opacity:0.4 } 50% { transform: translateY(-15px) scale(1.5); opacity:0.2 } 100% { transform: translateY(-25px) scale(0.6); opacity:0 } }
@keyframes dbc-rock { 0% { transform: translateY(-20px) rotate(0deg); opacity:1 } 50% { transform: translateY(80px) rotate(180deg); opacity:0.8 } 100% { transform: translateY(180px) rotate(360deg); opacity:0 } }

/* defence-mountains-concluding-reflection – calm bright study interior */
.scn-defence-mountains-concluding-reflection {
  background:
    linear-gradient(180deg, #e8d5b5 0%, #d4b896 40%, #c0a57a 100%),
    radial-gradient(ellipse at 60% 40%, #f5e6d3 0%, transparent 50%);
}
.scn-defence-mountains-concluding-reflection .study-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c0a57a 0%, #b89a6a 50%, #c0a57a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.08);
  animation: dcr-wall 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-concluding-reflection .desk {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 28%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,0.2);
  animation: dcr-desk 8s ease-in-out infinite;
}
.scn-defence-mountains-concluding-reflection .open-book {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 100%);
  border-radius: 2px; box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
  animation: dcr-book 12s ease-in-out infinite;
}
.scn-defence-mountains-concluding-reflection .candle {
  position: absolute; bottom: 14%; left: 60%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #f5e6c8 0%, #c0a57a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 6px 2px rgba(255,200,100,0.3);
  animation: dcr-candle 5s ease-in-out infinite;
}
.scn-defence-mountains-concluding-reflection .candle-glow {
  position: absolute; bottom: 18%; left: 56%; width: 16px; height: 20px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  filter: blur(6px); border-radius: 50%;
  animation: dcr-glow 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-concluding-reflection .quill {
  position: absolute; bottom: 8%; left: 65%; width: 4px; height: 26px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px 2px 50% 50% / 2px 2px 40% 40%;
  transform-origin: bottom center;
  animation: dcr-quill 4s ease-in-out infinite;
}
.scn-defence-mountains-concluding-reflection .inkwell {
  position: absolute; bottom: 6%; left: 68%; width: 12px; height: 10px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dcr-ink 6s ease-in-out infinite;
}
.scn-defence-mountains-concluding-reflection .reflection-light {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: dcr-reflection 9s ease-in-out infinite alternate;
}
@keyframes dcr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dcr-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dcr-book { 0% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(6deg) translateY(-1px) } 100% { transform: perspective(400px) rotateX(4deg) translateY(0) } }
@keyframes dcr-candle { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dcr-glow { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes dcr-quill { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes dcr-ink { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) } }
@keyframes dcr-reflection { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* defence-mountains-summary – calm bright interior with focused map */
.scn-defence-mountains-summary {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #dcc8a0 40%, #c8b088 100%),
    radial-gradient(ellipse at 50% 50%, #fff8e0 0%, transparent 60%);
}
.scn-defence-mountains-summary .map-surface {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a0 100%);
  border-radius: 4px; box-shadow: 0 8px 30px rgba(0,0,0,0.2);
  animation: dsu-map 10s ease-in-out infinite;
}
.scn-defence-mountains-summary .map-border {
  position: absolute; top: 8%; left: 8%; width: 84%; height: 84%;
  border: 6px solid #8a7a5a; border-radius: 8px;
  box-shadow: inset 0 0 0 4px #a09070;
  animation: dsu-border 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-summary .central-peak {
  position: absolute; top: 30%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #7aa5b5 0%, #527a8a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: dsu-peak 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-summary .mountain-range {
  position: absolute; top: 40%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(90deg, #5a7a6a, #3a5a4a, #5a7a6a);
  clip-path: polygon(0% 100%, 10% 20%, 25% 60%, 40% 10%, 60% 50%, 80% 5%, 90% 40%, 100% 100%);
  animation: dsu-range 15s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-summary .light-focus {
  position: absolute; top: 25%; left: 42%; width: 16%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.5) 0%, transparent 70%);
  filter: blur(8px); border-radius: 50%;
  animation: dsu-focus 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-summary .contour-lines {
  position: absolute; top: 35%; left: 30%; width: 40%; height: 30%;
  background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(0,0,0,0.05) 4px, rgba(0,0,0,0.05) 5px),
              repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(0,0,0,0.05) 4px, rgba(0,0,0,0.05) 5px);
  animation: dsu-contour 20s linear infinite;
}
.scn-defence-mountains-summary .compass-rose {
  position: absolute; top: 60%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a7a5a 0%, transparent 100%);
  border-radius: 50%; border: 2px solid #6a5a3a;
  animation: dsu-compass 14s ease-in-out infinite;
}
.scn-defence-mountains-summary .magnifier {
  position: absolute; top: 22%; left: 38%; width: 24px; height: 30px;
  background: linear-gradient(135deg, rgba(200,200,200,0.3) 0%, transparent 100%);
  border: 2px solid #8a7a5a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: dsu-magnifier 5s ease-in-out infinite;
}
@keyframes dsu-map { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dsu-border { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dsu-peak { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }
@keyframes dsu-range { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes dsu-focus { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes dsu-contour { 0% { background-position: 0 0 } 100% { background-position: 40px 40px } }
@keyframes dsu-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes dsu-magnifier { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-10deg) translate(2px,-2px) } 100% { transform: rotate(-15deg) translate(0,0) } }

/* Scene 1: Frederick 1757 – Calm, Bright Interior */
.scn-operating-against-flank-frederick-1757 {
  background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a0 40%, #a89880 100%), 
              radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-operating-against-flank-frederick-1757 .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4c4ac 0%, #b8a88c 100%);
  box-shadow: inset 0 0 60px rgba(160,120,80,0.3);
  animation: fo1-light 12s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
}
.scn-operating-against-flank-frederick-1757 .table {
  position: absolute; bottom: 22%; left: 50%; width: 200px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-operating-against-flank-frederick-1757 .map {
  position: absolute; bottom: 26%; left: 50%; width: 140px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0e0c0 0%, #e0d0a8 50%, #d0c090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fo1-map 6s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .figure-stand {
  position: absolute; bottom: 24%; left: 38%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fo1-stand 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .figure-sit {
  position: absolute; bottom: 20%; left: 56%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fo1-sit 5s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .candle {
  position: absolute; bottom: 28%; left: 46%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #a08060 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,200,120,0.6), 0 0 40px 16px rgba(240,200,120,0.3);
  animation: fo1-candle 2s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .window {
  position: absolute; top: 8%; right: 8%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #d0e8ff 0%, #a8d0f0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(200,230,255,0.8), 0 0 30px rgba(200,230,255,0.3);
  animation: fo1-window 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-frederick-1757 .cloud-outside {
  position: absolute; top: 12%; right: 12%; width: 40px; height: 10px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: fo1-cloud 25s linear infinite;
}
@keyframes fo1-light {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fo1-map {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes fo1-stand {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes fo1-sit {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes fo1-candle {
  0% { box-shadow: 0 0 15px 6px rgba(240,200,120,0.5), 0 0 30px 12px rgba(240,200,120,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 10px rgba(255,220,150,0.8), 0 0 50px 20px rgba(255,220,150,0.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 7px rgba(240,200,120,0.6), 0 0 35px 14px rgba(240,200,120,0.3); opacity: 0.95; }
}
@keyframes fo1-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(200,230,255,0.6), 0 0 20px rgba(200,230,255,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(220,240,255,0.9), 0 0 40px rgba(220,240,255,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 35px rgba(200,230,255,0.7), 0 0 25px rgba(200,230,255,0.25); }
}
@keyframes fo1-cloud {
  0% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(-20px); opacity: 0.8; }
  100% { transform: translateX(-40px); opacity: 0.5; }
}

/* Scene 2: 1813 Plan – Calm, Bright Interior */
.scn-operating-against-flank-1813-plan {
  background: linear-gradient(180deg, #d4d0c8 0%, #b8b0a0 50%, #8a8070 100%), 
              radial-gradient(ellipse at 50% 0%, #f0ece0 0%, transparent 70%);
}
.scn-operating-against-flank-1813-plan .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8c0b0 0%, #a8a090 100%);
  box-shadow: inset 0 0 80px rgba(120,100,80,0.2);
  animation: np1-light 15s ease-in-out infinite alternate;
}
.scn-operating-against-flank-1813-plan .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a7268 0%, #4a4238 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-operating-against-flank-1813-plan .table {
  position: absolute; bottom: 20%; left: 50%; width: 240px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-operating-against-flank-1813-plan .map {
  position: absolute; bottom: 24%; left: 50%; width: 180px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 50%, #d0c090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: np1-map 8s ease-in-out infinite alternate;
}
.scn-operating-against-flank-1813-plan .figure {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: np1-figure 6s ease-in-out infinite alternate;
}
.scn-operating-against-flank-1813-plan .document {
  position: absolute; bottom: 28%; left: 58%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: np1-doc 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-1813-plan .inkwell {
  position: absolute; bottom: 26%; left: 64%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: np1-ink 7s ease-in-out infinite alternate;
}
.scn-operating-against-flank-1813-plan .globe {
  position: absolute; bottom: 24%; left: 30%; width: 24px; height: 24px;
  background: radial-gradient(circle at 40% 40%, #a0b8a0 0%, #6a8a6a 40%, #4a6a4a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: np1-globe 20s ease-in-out infinite alternate;
}
@keyframes np1-light {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes np1-map {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes np1-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes np1-doc {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(2px); }
  100% { transform: rotate(-12deg) translateX(0); }
}
@keyframes np1-ink {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes np1-globe {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}

/* Scene 3: Phul Plan – Tense, Bright Interior */
.scn-operating-against-flank-phul-plan {
  background: linear-gradient(180deg, #c8c0b8 0%, #a09888 40%, #706860 100%), 
              radial-gradient(ellipse at 50% 0%, #e8e0d0 0%, transparent 50%);
}
.scn-operating-against-flank-phul-plan .bg-wall {
  position: absolute; inset: 0 0 38% 0;
  background: linear-gradient(180deg, #b8b0a0 0%, #908878 100%);
  box-shadow: inset 0 0 80px rgba(80,60,40,0.4);
  animation: pp1-light 4s ease-in-out infinite alternate;
}
.scn-operating-against-flank-phul-plan .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #605850 0%, #302820 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-operating-against-flank-phul-plan .table {
  position: absolute; bottom: 18%; left: 50%; width: 220px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 4px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-operating-against-flank-phul-plan .map {
  position: absolute; bottom: 22%; left: 50%; width: 160px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #e8dcc0 0%, #d8c8a8 50%, #c8b890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: pp1-map 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-phul-plan .figure-press {
  position: absolute; bottom: 20%; left: 44%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp1-press 2s ease-in-out infinite alternate;
}
.scn-operating-against-flank-phul-plan .figure-stand {
  position: absolute; bottom: 20%; left: 56%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp1-stand 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-phul-plan .arrow {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #c04040 0%, #a03030 100%);
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
  transform: rotate(15deg);
  animation: pp1-arrow 1.5s ease-in-out infinite alternate;
}
.scn-operating-against-flank-phul-plan .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: pp1-shadow 2s ease-in-out infinite alternate;
}
@keyframes pp1-light {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pp1-map {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes pp1-press {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(3deg); }
}
@keyframes pp1-stand {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pp1-arrow {
  0% { transform: rotate(10deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(20deg) translateX(4px); opacity: 1; }
  100% { transform: rotate(10deg) translateX(0); opacity: 0.9; }
}
@keyframes pp1-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* Scene 4: Conclusion – Calm, Bright Interior */
.scn-operating-against-flank-conclusion {
  background: linear-gradient(180deg, #e0d8d0 0%, #c8c0b0 50%, #a09888 100%), 
              radial-gradient(ellipse at 50% 0%, #f8f0e8 0%, transparent 60%);
}
.scn-operating-against-flank-conclusion .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%);
  box-shadow: inset 0 0 60px rgba(140,120,100,0.2);
  animation: co1-light 14s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conclusion .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #908878 0%, #585048 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-operating-against-flank-conclusion .desk {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-operating-against-flank-conclusion .chair {
  position: absolute; bottom: 16%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: co1-chair 8s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conclusion .figure-write {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co1-write 3s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conclusion .window {
  position: absolute; top: 6%; left: 8%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #c8e0f8 0%, #a0c8f0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(180,210,240,0.8), 0 0 30px rgba(180,210,240,0.3);
  animation: co1-window 12s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conclusion .books {
  position: absolute; bottom: 26%; right: 10%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: co1-books 10s ease-in-out infinite alternate;
}
.scn-operating-against-flank-conclusion .ink {
  position: absolute; bottom: 26%; left: 42%; width: 6px; height: 8px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: co1-ink 5s ease-in-out infinite alternate;
}
@keyframes co1-light {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes co1-chair {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes co1-write {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes co1-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(180,210,240,0.6), 0 0 20px rgba(180,210,240,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(200,220,250,0.9), 0 0 40px rgba(200,220,250,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 35px rgba(180,210,240,0.7), 0 0 25px rgba(180,210,240,0.25); }
}
@keyframes co1-books {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes co1-ink {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-1px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}

/* defence-of-streams-gain-of-time (calm, bright-interior) */
.scn-defence-of-streams-gain-of-time {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b878 40%, #c49a5c 100%), radial-gradient(ellipse at 50% 60%, #f0dbb0 0%, transparent 70%);
}
.scn-defence-of-streams-gain-of-time .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d1b87a 0%, #bca16a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.15);
  animation: dsg-wall 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-gain-of-time .window {
  position:absolute; top:8%; left:55%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 30%, #f9f2e0 0%, #b8a060 70%);
  border:4px solid #8a6e3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.6);
  animation: dsg-window 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-gain-of-time .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: dsg-desk 20s ease-in-out infinite;
}
.scn-defence-of-streams-gain-of-time .map {
  position:absolute; bottom:14%; left:26%; width:48%; height:14%;
  background: linear-gradient(135deg, #e8d4a0 0%, #c8b480 50%, #b8a470 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dsg-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-streams-gain-of-time .candle {
  position:absolute; bottom:28%; left:20%; width:6px; height:40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 60%, #7a5020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.5);
  animation: dsg-candle 4s ease-in-out infinite;
}
.scn-defence-of-streams-gain-of-time .commander {
  position:absolute; bottom:15%; left:40%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a2018 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsg-commander 6s ease-in-out infinite;
}
.scn-defence-of-streams-gain-of-time .shadow-hand {
  position:absolute; bottom:16%; left:60%; width:16px; height:30px;
  background: linear-gradient(180deg, rgba(20,15,10,0.6) 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 40% 30% 20% 30%;
  filter: blur(1px);
  animation: dsg-hand 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-gain-of-time .scroll {
  position:absolute; bottom:18%; right:15%; width:40px; height:12px;
  background: linear-gradient(180deg, #d4c090 0%, #b09860 100%);
  border-radius: 20% 20% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dsg-scroll 15s ease-in-out infinite;
}

@keyframes dsg-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dsg-window { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(1); opacity:0.85; } }
@keyframes dsg-desk { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dsg-map { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(0.3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dsg-candle { 0% { transform: scaleY(1) rotate(-1deg); } 25% { transform: scaleY(1.02) rotate(0); } 75% { transform: scaleY(0.98) rotate(1deg); } 100% { transform: scaleY(1) rotate(-0.5deg); } }
@keyframes dsg-commander { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dsg-hand { 0% { transform: translate(0,0) rotate(0); opacity:0.5; } 50% { transform: translate(5px,-2px) rotate(-5deg); opacity:0.7; } 100% { transform: translate(0,0) rotate(0); opacity:0.5; } }
@keyframes dsg-scroll { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-3px); } 100% { transform: rotate(15deg) translateX(0); } }

/* defence-of-streams-superior-force-consideration (calm, bright-interior) */
.scn-defence-of-streams-superior-force-consideration {
  background: linear-gradient(180deg, #f2e0b8 0%, #d9c498 50%, #c0ac7c 100%), radial-gradient(circle at 70% 40%, #fff2d0 0%, transparent 60%);
}
.scn-defence-of-streams-superior-force-consideration .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #cfb88a 0%, #b8a070 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  animation: dss-wall 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-superior-force-consideration .table {
  position:absolute; bottom:8%; left:5%; right:5%; height:25%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 6px;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: dss-table 20s ease-in-out infinite;
}
.scn-defence-of-streams-superior-force-consideration .map-large {
  position:absolute; bottom:12%; left:15%; width:70%; height:18%;
  background: linear-gradient(135deg, #e4c888 0%, #ccb478 50%, #b8a068 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
  animation: dss-map 25s ease-in-out infinite alternate;
}
.scn-defence-of-streams-superior-force-consideration .token-red {
  position:absolute; bottom:22%; left:30%; width:10px; height:10px;
  background: radial-gradient(circle, #c8553d 0%, #a0402a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,85,61,0.4);
  animation: dss-token-red 8s ease-in-out infinite;
}
.scn-defence-of-streams-superior-force-consideration .token-blue {
  position:absolute; bottom:24%; right:35%; width:10px; height:10px;
  background: radial-gradient(circle, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(74,106,138,0.4);
  animation: dss-token-blue 10s ease-in-out infinite reverse;
}
.scn-defence-of-streams-superior-force-consideration .compass {
  position:absolute; bottom:20%; left:8%; width:18px; height:18px;
  background: linear-gradient(45deg, #c8a870 0%, #a8884a 100%);
  border-radius: 50%;
  border:2px solid #8a6e32;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: dss-compass 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-superior-force-consideration .officer-hand {
  position:absolute; bottom:14%; left:45%; width:14px; height:28px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 35% 30% 30%;
  filter: blur(0.5px);
  animation: dss-hand 6s ease-in-out infinite;
}
.scn-defence-of-streams-superior-force-consideration .letter {
  position:absolute; bottom:26%; right:10%; width:28px; height:18px;
  background: linear-gradient(180deg, #f0e0a8 0%, #d0c088 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: dss-letter 18s ease-in-out infinite alternate;
}

@keyframes dss-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dss-table { 0% { transform: translateY(0); } 33% { transform: translateY(-1px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dss-map { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(0.2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dss-token-red { 0% { transform: translate(0,0); } 25% { transform: translate(2px,-1px); } 50% { transform: translate(0,-2px); } 75% { transform: translate(-1px,1px); } 100% { transform: translate(0,0); } }
@keyframes dss-token-blue { 0% { transform: translate(0,0); } 30% { transform: translate(-2px,1px); } 60% { transform: translate(1px,-1px); } 100% { transform: translate(0,0); } }
@keyframes dss-compass { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(15deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }
@keyframes dss-hand { 0% { transform: translate(0,0) rotate(0); } 40% { transform: translate(4px,-1px) rotate(3deg); } 80% { transform: translate(-2px,1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes dss-letter { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-6deg) translateX(-2px); } 100% { transform: rotate(-8deg) translateX(0); } }

/* defence-of-streams-no-complete-defeat (calm, bright-interior) */
.scn-defence-of-streams-no-complete-defeat {
  background: linear-gradient(180deg, #c4d4e0 0%, #9cb0c0 40%, #8a9eb0 100%), radial-gradient(ellipse at 50% 30%, #d0e0ec 0%, transparent 60%);
}
.scn-defence-of-streams-no-complete-defeat .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b8cce0 0%, #a0b8d0 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.1);
  animation: dss-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-no-complete-defeat .river {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6a8a9a 0%, #5a7a8a 50%, #4a6a7a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: dss-river 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-no-complete-defeat .far-bank {
  position:absolute; bottom:44%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%);
  border-radius: 0 0 40% 60% / 0 0 80% 80%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  animation: dss-bank 25s ease-in-out infinite alternate;
}
.scn-defence-of-streams-no-complete-defeat .redoubt {
  position:absolute; bottom:36%; left:30%; width:60px; height:40px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: dss-redoubt 10s ease-in-out infinite;
}
.scn-defence-of-streams-no-complete-defeat .flag {
  position:absolute; bottom:35%; left:32%; width:4px; height:30px;
  background: #3a2a1a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dss-flag 5s ease-in-out infinite;
}
.scn-defence-of-streams-no-complete-defeat .sentry {
  position:absolute; bottom:34%; left:45%; width:14px; height:36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dss-sentry 8s ease-in-out infinite;
}
.scn-defence-of-streams-no-complete-defeat .cannon {
  position:absolute; bottom:35%; right:28%; width:30px; height:12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dss-cannon 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-no-complete-defeat .grass {
  position:absolute; bottom:22%; left:0; right:0; height:8%;
  background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.2);
  animation: dss-grass 18s ease-in-out infinite alternate;
}

@keyframes dss-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dss-river { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dss-bank { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes dss-redoubt { 0% { transform: translateX(0); } 20% { transform: translateX(1px); } 80% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes dss-flag { 0% { transform: rotate(-3deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
@keyframes dss-sentry { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dss-cannon { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes dss-grass { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* defence-of-streams-guard-against-misapplication (tense, bright-interior) */
.scn-defence-of-streams-guard-against-misapplication {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-defence-of-streams-guard-against-misapplication .wall-close {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #4a3e32 0%, #3a2e22 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
  animation: dsm-wall 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-guard-against-misapplication .lampshade {
  position:absolute; top:20%; right:20%; width:50px; height:60px;
  background: linear-gradient(180deg, #d4a050 0%, #b08030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(200,150,50,0.6);
  animation: dsm-lamp 4s ease-in-out infinite alternate;
}
.scn-defence-of-streams-guard-against-misapplication .desk-close {
  position:absolute; bottom:5%; left:5%; right:5%; height:25%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2210 100%);
  border-radius: 8px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
  animation: dsm-desk 10s ease-in-out infinite;
}
.scn-defence-of-streams-guard-against-misapplication .map-lit {
  position:absolute; bottom:8%; left:20%; width:60%; height:18%;
  background: linear-gradient(135deg, #5a4a2a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(200,150,50,0.3), inset 0 0 10px rgba(255,200,100,0.2);
  animation: dsm-map 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-guard-against-misapplication .quill {
  position:absolute; bottom:14%; left:40%; width:4px; height:50px;
  background: linear-gradient(180deg, #c0b090 0%, #8a7a60 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: dsm-quill 3s ease-in-out infinite;
}
.scn-defence-of-streams-guard-against-misapplication .inkwell {
  position:absolute; bottom:12%; left:34%; width:14px; height:16px;
  background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dsm-inkwell 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-guard-against-misapplication .fingers {
  position:absolute; bottom:10%; left:45%; width:10px; height:20px;
  background: linear-gradient(180deg, #2a1e12 0%, #0f0a06 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  filter: blur(0.5px);
  animation: dsm-fingers 2s ease-in-out infinite;
}
.scn-defence-of-streams-guard-against-misapplication .shadow-cast {
  position:absolute; bottom:10%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%);
  animation: dsm-shadow 5s ease-in-out infinite alternate;
}

@keyframes dsm-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes dsm-lamp { 0% { transform: scaleY(1) rotate(-2deg); filter:brightness(1); } 50% { transform: scaleY(1.02) rotate(0); filter:brightness(1.2); } 100% { transform: scaleY(1) rotate(2deg); filter:brightness(0.9); } }
@keyframes dsm-desk { 0% { transform: translateY(0); } 30% { transform: translateY(-1px); } 70% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dsm-map { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.01); } 100% { opacity:0.75; transform: scale(1); } }
@keyframes dsm-quill { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(22deg) translateY(-1px); } 50% { transform: rotate(18deg) translateY(0); } 75% { transform: rotate(21deg) translateY(1px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes dsm-inkwell { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes dsm-fingers { 0% { transform: rotate(10deg) translate(0,0); } 25% { transform: rotate(12deg) translate(1px,-1px); } 50% { transform: rotate(8deg) translate(0,0); } 75% { transform: rotate(11deg) translate(-1px,1px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes dsm-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* obstinacy-fault-of-feelings */
.scn-obstinacy-fault-of-feelings {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-obstinacy-fault-of-feelings .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-obstinacy-fault-of-feelings .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 0 0 10% 10%; }
.scn-obstinacy-fault-of-feelings .window { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #d0b090 0%, #a08050 70%); border: 6px solid #3a2a1a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(200,180,150,.3); animation:ob1-window 8s ease-in-out infinite alternate; }
.scn-obstinacy-fault-of-feelings .desk { position:absolute; bottom:18%; left:35%; width:120px; height:14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4%; box-shadow:0 4px 8px rgba(0,0,0,.5); transform:perspective(400px) rotateX(30deg); }
.scn-obstinacy-fault-of-feelings .chair { position:absolute; bottom:14%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; transform:rotate(2deg); }
.scn-obstinacy-fault-of-feelings .figure { position:absolute; bottom:18%; left:32%; width:24px; height:50px; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ob1-fig 4s ease-in-out infinite; }
.scn-obstinacy-fault-of-feelings .lamp { position:absolute; bottom:22%; left:45%; width:8px; height:8px; background:#e0b080; border-radius:50%; box-shadow: 0 0 20px 6px rgba(224,176,128,.6); animation:ob1-glow 3s ease-in-out infinite alternate; }
.scn-obstinacy-fault-of-feelings .shadow { position:absolute; bottom:0; left:30%; width:100px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter:blur(6px); animation:ob1-shad 5s ease-in-out infinite; }
@keyframes ob1-window { 0% { opacity:.7; box-shadow: inset 0 0 10px rgba(200,180,150,.2) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(200,180,150,.4) } 100% { opacity:.8; box-shadow: inset 0 0 15px rgba(200,180,150,.25) } }
@keyframes ob1-fig { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.01) translateY(-2px) } 100% { transform:scaleY(1) } }
@keyframes ob1-glow { 0% { opacity:.6; box-shadow:0 0 10px 3px rgba(224,176,128,.4) } 50% { opacity:1; box-shadow:0 0 30px 10px rgba(224,176,128,.7) } 100% { opacity:.7; box-shadow:0 0 15px 5px rgba(224,176,128,.5) } }
@keyframes ob1-shad { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }

/* obstinacy-not-merely-intensified-character */
.scn-obstinacy-not-merely-intensified-character {
  background:
    linear-gradient(180deg, #3a3028 0%, #2a2018 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-obstinacy-not-merely-intensified-character .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-obstinacy-not-merely-intensified-character .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 0 0 5% 5%; }
.scn-obstinacy-not-merely-intensified-character .bookshelf { position:absolute; top:12%; left:10%; width:30%; height:60%; background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 4px, #3a2a1a 4px, #3a2a1a 8px); border: 4px solid #3a2a20; border-radius:2%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); }
.scn-obstinacy-not-merely-intensified-character .figure { position:absolute; bottom:15%; left:55%; width:28px; height:66px; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ob2-fig 6s ease-in-out infinite; }
.scn-obstinacy-not-merely-intensified-character .candle { position:absolute; bottom:22%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%); border-radius: 20% 20% 10% 10%; }
.scn-obstinacy-not-merely-intensified-character .flame { position:absolute; bottom:36%; left:48.5%; width:6px; height:10px; background: radial-gradient(circle, #ffd080 0%, #e08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.6); animation:ob2-flame 2s ease-in-out infinite alternate; }
.scn-obstinacy-not-merely-intensified-character .shadow { position:absolute; bottom:0; left:50%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter:blur(8px); animation:ob2-shad 5s ease-in-out infinite; }
@keyframes ob2-fig { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) translateY(-3px) } }
@keyframes ob2-flame { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.3); opacity:1 } 100% { transform:scaleY(.9); opacity:.7 } }
@keyframes ob2-shad { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.1) } 100% { transform:scaleX(1) } }

/* connection-war-country-ground */
.scn-connection-war-country-ground {
  background:
    linear-gradient(180deg, #2a2018 0%, #1a1008 60%, #0a0502 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-connection-war-country-ground .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-connection-war-country-ground .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 0 0 8% 8%; }
.scn-connection-war-country-ground .table { position:absolute; bottom:12%; left:20%; width:60%; height:10px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,.6); transform:perspective(400px) rotateX(20deg); }
.scn-connection-war-country-ground .map { position:absolute; bottom:14%; left:25%; width:50%; height:40%; background: repeating-linear-gradient(0deg, #8a7050 0px, #8a7050 2px, #6a5040 2px, #6a5040 3px); border:2px solid #4a3020; border-radius:2%; transform:perspective(600px) rotateX(40deg) scaleY(.8); animation:cw1-map 12s ease-in-out infinite alternate; }
.scn-connection-war-country-ground .relief { position:absolute; bottom:18%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse at 30% 50%, #6a5030 0%, transparent 60%), radial-gradient(ellipse at 70% 40%, #5a4020 0%, transparent 50%); border-radius: 40% 60% 50% 50%; filter:blur(4px); }
.scn-connection-war-country-ground .figure { position:absolute; bottom:23%; left:30%; width:22px; height:55px; background: linear-gradient(180deg, #0a0502 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cw1-fig 5s ease-in-out infinite; }
.scn-connection-war-country-ground .lamp { position:absolute; bottom:30%; left:70%; width:8px; height:8px; background:#d0a060; border-radius:50%; box-shadow: 0 0 25px 8px rgba(208,160,96,.5); animation:cw1-glow 4s ease-in-out infinite alternate; }
.scn-connection-war-country-ground .shadow { position:absolute; bottom:0; left:25%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(8px); animation:cw1-shad 5s ease-in-out infinite; }
@keyframes cw1-map { 0% { transform:perspective(600px) rotateX(40deg) scaleY(.8) translateX(0) } 50% { transform:perspective(600px) rotateX(38deg) scaleY(.82) translateX(2px) } 100% { transform:perspective(600px) rotateX(40deg) scaleY(.8) translateX(0) } }
@keyframes cw1-fig { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.01) translateY(-2px) } }
@keyframes cw1-glow { 0% { opacity:.5; box-shadow:0 0 10px 3px rgba(208,160,96,.3) } 50% { opacity:1; box-shadow:0 0 30px 10px rgba(208,160,96,.6) } 100% { opacity:.6; box-shadow:0 0 15px 5px rgba(208,160,96,.4) } }
@keyframes cw1-shad { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.08) } 100% { transform:scaleX(1) } }

/* country-ground-permanent-condition */
.scn-country-ground-permanent-condition {
  background:
    linear-gradient(180deg, #3a3028 0%, #2a2018 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 25%, #4a3a2a 0%, transparent 70%);
}
.scn-country-ground-permanent-condition .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-country-ground-permanent-condition .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 0 0 6% 6%; }
.scn-country-ground-permanent-condition .table { position:absolute; bottom:10%; left:30%; width:40%; height:8px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,.5); }
.scn-country-ground-permanent-condition .globe { position:absolute; bottom:15%; left:45%; width:60px; height:60px; background: radial-gradient(circle at 30% 30%, #8a7050 0%, #5a4020 80%, #3a2818 100%); border-radius:50%; box-shadow:0 0 15px rgba(0,0,0,.4), inset -4px -4px 8px rgba(0,0,0,.3); transform:rotateY(0deg); animation:cg1-globe 20s linear infinite; }
.scn-country-ground-permanent-condition .lamp { position:absolute; bottom:20%; left:55%; width:6px; height:6px; background:#d0a060; border-radius:50%; box-shadow: 0 0 20px 6px rgba(208,160,96,.5); }
.scn-country-ground-permanent-condition .flame { position:absolute; bottom:23%; left:55%; width:5px; height:8px; background: radial-gradient(circle, #ffd080 0%, #e08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.6); animation:cg1-flame 2s ease-in-out infinite alternate; }
.scn-country-ground-permanent-condition .figure { position:absolute; bottom:18%; left:38%; width:26px; height:60px; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cg1-fig 6s ease-in-out infinite; }
.scn-country-ground-permanent-condition .shadow { position:absolute; bottom:0; left:35%; width:80px; height:35px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); filter:blur(8px); animation:cg1-shad 5s ease-in-out infinite; }
@keyframes cg1-globe { 0% { transform:rotateY(0deg) } 100% { transform:rotateY(360deg) } }
@keyframes cg1-flame { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.25); opacity:1 } 100% { transform:scaleY(.85); opacity:.7 } }
@keyframes cg1-fig { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) translateY(-2px) } }
@keyframes cg1-shad { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.06) } 100% { transform:scaleX(1) } }

/* battle-importance-troops-success */
.scn-battle-importance-troops-success {
  background:
    linear-gradient(180deg, #1e1814 0%, #2a1f1a 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 80%, #4a3528 0%, transparent 70%);
}
.scn-battle-importance-troops-success .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2e241e 0%, #1a1410 100%);
  animation: bi-wall 12s ease-in-out infinite alternate;
}
.scn-battle-importance-troops-success .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1f1a 100%);
}
.scn-battle-importance-troops-success .table {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a3d2a 0%, #3a281a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bi-table 8s ease-in-out infinite;
}
.scn-battle-importance-troops-success .map {
  position: absolute; bottom: 38%; left: 28%; width: 44%; height: 16%;
  background: linear-gradient(135deg, #c8a060 0%, #a88040 50%, #c8a060 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
  animation: bi-map 15s ease-in-out infinite alternate;
}
.scn-battle-importance-troops-success .candle {
  position: absolute; bottom: 46%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.6), 0 0 40px 16px rgba(200,160,80,0.3);
  animation: bi-candle 3s ease-in-out infinite alternate;
}
.scn-battle-importance-troops-success .scale {
  position: absolute; bottom: 36%; left: 60%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-scale 6s ease-in-out infinite;
}
.scn-battle-importance-troops-success .figure {
  position: absolute; bottom: 36%; left: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bi-figure 5s ease-in-out infinite;
}
@keyframes bi-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bi-table {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes bi-map {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.3deg); }
}
@keyframes bi-candle {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 16px 6px rgba(200,160,80,0.5); }
  50% { transform: translateX(-50%) scaleY(1.05); box-shadow: 0 0 28px 10px rgba(200,160,80,0.7); }
  100% { transform: translateX(-50%) scaleY(0.95); box-shadow: 0 0 20px 8px rgba(200,160,80,0.6); }
}
@keyframes bi-scale {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes bi-figure {
  0% { transform: translateX(0); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0); }
}

/* victory-effectiveness-four-points */
.scn-victory-effectiveness-four-points {
  background:
    linear-gradient(180deg, #1a1816 0%, #2a221e 50%, #3a2e28 100%),
    radial-gradient(ellipse at 50% 70%, #3a2e28 0%, transparent 60%);
}
.scn-victory-effectiveness-four-points .desk {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.7);
  animation: ve4-desk 10s ease-in-out infinite alternate;
}
.scn-victory-effectiveness-four-points .point1 {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: ve4-point1 6s ease-in-out infinite;
}
.scn-victory-effectiveness-four-points .point2 {
  position: absolute; bottom: 38%; left: 35%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: ve4-point2 7s ease-in-out infinite alternate;
}
.scn-victory-effectiveness-four-points .point3 {
  position: absolute; bottom: 39%; left: 50%; width: 24px; height: 10px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  animation: ve4-point3 8s ease-in-out infinite;
}
.scn-victory-effectiveness-four-points .point4 {
  position: absolute; bottom: 37%; left: 65%; width: 16px; height: 16px;
  background: radial-gradient(circle, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ve4-point4 5s ease-in-out infinite alternate;
}
.scn-victory-effectiveness-four-points .commander-silhouette {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ve4-commander 9s ease-in-out infinite;
}
.scn-victory-effectiveness-four-points .candle {
  position: absolute; bottom: 46%; left: 75%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 18px 6px rgba(200,160,80,0.5), 0 0 36px 12px rgba(200,160,80,0.25);
  animation: ve4-candle 3s ease-in-out infinite alternate;
}
@keyframes ve4-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1.02); }
}
@keyframes ve4-point1 {
  0% { transform: rotate(-22deg) scale(1); }
  50% { transform: rotate(-18deg) scale(1.05); }
  100% { transform: rotate(-20deg) scale(0.95); }
}
@keyframes ve4-point2 {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-1px); }
  100% { transform: scale(0.97) translateY(0); }
}
@keyframes ve4-point3 {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ve4-point4 {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); }
  100% { transform: scale(0.94); }
}
@keyframes ve4-commander {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(1deg); }
  60% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ve4-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 16px 5px rgba(200,160,80,0.4); }
  50% { transform: scaleY(1.08); box-shadow: 0 0 24px 8px rgba(200,160,80,0.6); }
  100% { transform: scaleY(0.92); box-shadow: 0 0 20px 6px rgba(200,160,80,0.5); }
}

/* item-cavalry-pursuit-effect */
.scn-item-cavalry-pursuit-effect {
  background:
    linear-gradient(180deg, #1c1814 0%, #2a201a 40%, #382a20 100%),
    radial-gradient(ellipse at 30% 60%, #382a20 0%, transparent 70%);
}
.scn-item-cavalry-pursuit-effect .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #241e18 0%, #1a1410 100%);
  animation: icp-wall 14s ease-in-out infinite alternate;
}
.scn-item-cavalry-pursuit-effect .table {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: icp-table 11s ease-in-out infinite;
}
.scn-item-cavalry-pursuit-effect .cavalry-fig {
  position: absolute; bottom: 37%; left: 50%; width: 20px; height: 18px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: icp-cavalry 4s ease-in-out infinite;
}
.scn-item-cavalry-pursuit-effect .horse-shadow {
  position: absolute; bottom: 48%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #0f0c08 0%, rgba(15,12,8,0.3) 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  filter: blur(4px);
  animation: icp-shadow 6s ease-in-out infinite alternate;
}
.scn-item-cavalry-pursuit-effect .candle {
  position: absolute; bottom: 44%; left: 20%; width: 5px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 14px 5px rgba(200,160,80,0.5), 0 0 28px 10px rgba(200,160,80,0.25);
  animation: icp-candle 3s ease-in-out infinite alternate;
}
.scn-item-cavalry-pursuit-effect .pursuit-arrow {
  position: absolute; bottom: 35%; left: 65%; width: 24px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #6a4a30 40%, #8a6a40 100%);
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
  animation: icp-arrow 5s ease-in-out infinite;
}
.scn-item-cavalry-pursuit-effect .map {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #c8a060 0%, #a88040 50%, #c8a060 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  animation: icp-map 18s ease-in-out infinite alternate;
}
@keyframes icp-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes icp-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.96); }
  100% { transform: scaleY(1.03); }
}
@keyframes icp-cavalry {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(-1deg); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes icp-shadow {
  0% { transform: scale(1) translateX(0); opacity: 0.6; }
  50% { transform: scale(1.05) translateX(4px); opacity: 0.8; }
  100% { transform: scale(0.95) translateX(-2px); opacity: 0.5; }
}
@keyframes icp-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 12px 4px rgba(200,160,80,0.4); }
  50% { transform: scaleY(1.06); box-shadow: 0 0 20px 7px rgba(200,160,80,0.6); }
  100% { transform: scaleY(0.94); box-shadow: 0 0 16px 5px rgba(200,160,80,0.5); }
}
@keyframes icp-arrow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(0.9); }
}
@keyframes icp-map {
  0% { transform: rotate(-0.3deg); }
  50% { transform: rotate(0.3deg); }
  100% { transform: rotate(-0.2deg); }
}

/* commander-means-decisive-character */
.scn-commander-means-decisive-character {
  background:
    linear-gradient(180deg, #1e1612 0%, #2a1e18 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 60%, #5a4028 0%, transparent 70%);
}
.scn-commander-means-decisive-character .bg-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  animation: cmd-wall 16s ease-in-out infinite alternate;
}
.scn-commander-means-decisive-character .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #5a3d2a 0%, #3a281a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.7);
  animation: cmd-table 10s ease-in-out infinite;
}
.scn-commander-means-decisive-character .map {
  position: absolute; bottom: 35%; left: 28%; width: 44%; height: 14%;
  background: linear-gradient(135deg, #c8a060 0%, #a88040 50%, #c8a060 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: cmd-map 14s ease-in-out infinite alternate;
}
.scn-commander-means-decisive-character .candle {
  position: absolute; bottom: 48%; left: 75%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.6), 0 0 40px 16px rgba(200,160,80,0.3);
  animation: cmd-candle 3.5s ease-in-out infinite alternate;
}
.scn-commander-means-decisive-character .commander {
  position: absolute; bottom: 32%; left: 15%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmd-commander 8s ease-in-out infinite;
}
.scn-commander-means-decisive-character .hand {
  position: absolute; bottom: 58%; left: 18%; width: 8px; height: 6px;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  animation: cmd-hand 4s ease-in-out infinite alternate;
}
.scn-commander-means-decisive-character .shadow {
  position: absolute; bottom: 32%; right: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(15,12,8,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: cmd-shadow 12s ease-in-out infinite alternate;
}
@keyframes cmd-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cmd-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1.02); }
}
@keyframes cmd-map {
  0% { transform: rotate(-0.4deg); }
  50% { transform: rotate(0.4deg) scale(1.01); }
  100% { transform: rotate(-0.2deg); }
}
@keyframes cmd-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 16px 6px rgba(200,160,80,0.5); }
  50% { transform: scaleY(1.06); box-shadow: 0 0 28px 10px rgba(200,160,80,0.7); }
  100% { transform: scaleY(0.94); box-shadow: 0 0 20px 8px rgba(200,160,80,0.6); }
}
@keyframes cmd-commander {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(4px) rotate(1deg); }
  60% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes cmd-hand {
  0% { transform: rotate(25deg) scale(1); }
  50% { transform: rotate(35deg) scale(1.05); }
  100% { transform: rotate(30deg) scale(0.95); }
}
@keyframes cmd-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(5px); opacity: 0.7; }
  100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.4; }
}

/* Scene 1: Watch and Detach (calm, bright interior) */
.scn-defence-of-streams-watch-and-detach {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #d9c2a3 50%, #b89a7f 100%),
    radial-gradient(ellipse at 60% 30%, #fff7eb 0%, transparent 70%);
}
.scn-defence-of-streams-watch-and-detach .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d9c4 0%, #c7af96 100%);
}
.scn-defence-of-streams-watch-and-detach .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8b6f52 0%, #5e4a36 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-watch-and-detach .window {
  position: absolute; top: 12%; left: 18%; width: 32%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #b0d0ff 0%, #8ab0e0 60%, #5a7fa0 100%);
  border: 6px solid #4a3a2a; border-radius: 8px 8px 12px 12px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3), 0 8px 20px rgba(0,0,0,0.4);
  animation: dwa-glow-window 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-watch-and-detach .guard {
  position: absolute; bottom: 26%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dwa-guard 12s ease-in-out infinite;
}
.scn-defence-of-streams-watch-and-detach .table {
  position: absolute; bottom: 20%; left: 55%; width: 28%; height: 14%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3525 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dwa-table-bob 8s ease-in-out infinite;
}
.scn-defence-of-streams-watch-and-detach .map {
  position: absolute; bottom: 22%; left: 60%; width: 18%; height: 10%;
  background: linear-gradient(135deg, #e8d8b0 0%, #c8b890 50%, #a89870 100%);
  border-radius: 2px; transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dwa-map-shift 14s ease-in-out infinite;
}
.scn-defence-of-streams-watch-and-detach .lantern {
  position: absolute; bottom: 38%; left: 48%; width: 5%; height: 7%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50%; 
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 20px rgba(192,128,64,0.4);
  animation: dwa-lantern-glow 3s ease-in-out infinite alternate;
}
@keyframes dwa-glow-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,255,200,0.2), 0 8px 20px rgba(0,0,0,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,220,0.5), 0 8px 30px rgba(0,0,0,0.3); }
  100% { opacity: 0.85; box-shadow: inset 0 0 35px rgba(255,255,200,0.3), 0 8px 20px rgba(0,0,0,0.4); }
}
@keyframes dwa-guard {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2%) rotate(1deg); }
  66% { transform: translateX(-1%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dwa-table-bob {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dwa-map-shift {
  0%,100% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
}
@keyframes dwa-lantern-glow {
  0% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #ffc060, 0 0 80px 24px rgba(255,192,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity: 0.85; }
}

/* Scene 2: Danger of Advance (tense, overcast) */
.scn-defence-of-streams-danger-of-advance {
  background:
    linear-gradient(180deg, #4b5563 0%, #2d3748 40%, #1a202c 100%),
    radial-gradient(ellipse at 50% 100%, #2d3748 0%, transparent 60%);
}
.scn-defence-of-streams-danger-of-advance .sky {
  position: absolute; inset: 0 0 55% 0; 
  background: linear-gradient(180deg, #6b7a8a 0%, #4b5563 80%, transparent 100%);
  animation: dda-sky 20s linear infinite;
}
.scn-defence-of-streams-danger-of-advance .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.6);
  animation: dda-hills 14s ease-in-out infinite alternate;
}
.scn-defence-of-streams-danger-of-advance .troops-fore {
  position: absolute; bottom: 28%; left: 20%; 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: dda-troops 4s ease-in-out infinite;
}
.scn-defence-of-streams-danger-of-advance .troops-back {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dda-troops 4.5s ease-in-out infinite 0.5s;
  filter: blur(1px);
}
.scn-defence-of-streams-danger-of-advance .flags {
  position: absolute; bottom: 42%; left: 30%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 2px;
  animation: dda-flag-wag 3s ease-in-out infinite;
}
.scn-defence-of-streams-danger-of-advance .flags::before {
  content: ''; position: absolute; top: 0; left: -50%; width: 200%; height: 100%;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%);
  clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%);
  animation: dda-flag-wave 2s ease-in-out infinite alternate;
}
.scn-defence-of-streams-danger-of-advance .rocks {
  position: absolute; bottom: 30%; left: 55%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
}
.scn-defence-of-streams-danger-of-advance .mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(100,110,120,0.6) 0%, transparent 100%);
  filter: blur(15px);
  animation: dda-mist 12s ease-in-out infinite alternate;
}
@keyframes dda-sky {
  0% { background-position: 0 0; }
  100% { background-position: 0 100px; }
}
@keyframes dda-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes dda-troops {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes dda-flag-wag {
  0%,100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}
@keyframes dda-flag-wave {
  0% { transform: skewX(-5deg); }
  100% { transform: skewX(5deg); }
}
@keyframes dda-mist {
  0% { opacity: 0.4; transform: translateX(-5%); }
  50% { opacity: 0.7; transform: translateX(5%); }
  100% { opacity: 0.4; transform: translateX(-5%); }
}

/* Scene 3: Deep Valley, Not Mountain (calm, bright interior - canyon) */
.scn-defence-of-streams-deep-valley-not-mountain {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0d4f1 30%, #d6eaf8 60%, #a9cce3 100%),
    radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 60%);
}
.scn-defence-of-streams-deep-valley-not-mountain .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, #d6eaf8 70%, transparent 100%);
  animation: dsv-sky 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-deep-valley-not-mountain .cliff-left {
  position: absolute; bottom: 0; left: 0; width: 25%; height: 80%;
  background: linear-gradient(180deg, #6b7a5a 0%, #4a5a3a 50%, #2a3a1a 100%);
  border-radius: 0 40% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.3);
  animation: dsv-cliff-left 30s ease-in-out infinite alternate;
}
.scn-defence-of-streams-deep-valley-not-mountain .cliff-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 75%;
  background: linear-gradient(180deg, #5a6b4a 0%, #3a4a2a 60%, #1a2a0a 100%);
  border-radius: 30% 0 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.3);
  animation: dsv-cliff-right 35s ease-in-out infinite alternate;
}
.scn-defence-of-streams-deep-valley-not-mountain .river {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a7a8a 0%, #2a5a6a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: dsv-river 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-deep-valley-not-mountain .trees {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: dsv-trees 12s ease-in-out infinite;
}
.scn-defence-of-streams-deep-valley-not-mountain .light-beams {
  position: absolute; top: 0; left: 20%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.3) 0%, transparent 60%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: dsv-beams 8s ease-in-out infinite alternate;
}
@keyframes dsv-sky {
  0% { background-position: 0 0; }
  50% { background-position: 0 20px; }
  100% { background-position: 0 0; }
}
@keyframes dsv-cliff-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes dsv-cliff-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes dsv-river {
  0% { background-position: 0 0; }
  50% { background-position: 0 5px; }
  100% { background-position: 0 0; }
}
@keyframes dsv-trees {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
}
@keyframes dsv-beams {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* Scene 4: Defect Overextension (tense, bright interior) */
.scn-defence-of-streams-defect-overextension {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a890 100%),
    radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 70%);
}
.scn-defence-of-streams-defect-overextension .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
}
.scn-defence-of-streams-defect-overextension .table {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3525 100%);
  border-radius: 8px; box-shadow: 0 6px 15px rgba(0,0,0,0.5);
  animation: doe-table-bob 6s ease-in-out infinite;
}
.scn-defence-of-streams-defect-overextension .officer-1 {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doe-officer 4s ease-in-out infinite;
}
.scn-defence-of-streams-defect-overextension .officer-2 {
  position: absolute; bottom: 30%; left: 70%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doe-officer 4.5s ease-in-out infinite 0.5s;
}
.scn-defence-of-streams-defect-overextension .candles {
  position: absolute; bottom: 33%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #8b6f52 0%, #5e4a36 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 10px rgba(255,200,100,0.6);
  animation: doe-candle-glow 2s ease-in-out infinite alternate;
}
.scn-defence-of-streams-defect-overextension .papers {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(3deg);
  animation: doe-papers 8s ease-in-out infinite;
}
@keyframes doe-table-bob {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes doe-officer {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(2deg); }
  70% { transform: translateX(-3px) rotate(-3deg); }
}
@keyframes doe-candle-glow {
  0% { box-shadow: 0 -4px 8px rgba(255,200,100,0.4); opacity: 0.8; }
  50% { box-shadow: 0 -4px 20px rgba(255,200,100,0.9); opacity: 1; }
  100% { box-shadow: 0 -4px 10px rgba(255,200,100,0.5); opacity: 0.85; }
}
@keyframes doe-papers {
  0%,100% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
}

.scn-presence-of-mind-origin { background: linear-gradient(180deg, #2a1e14 0%, #1f150d 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 80%); }
.scn-presence-of-mind-origin .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%); }
.scn-presence-of-mind-origin .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a110a 0%, #12100e 100%); box-shadow: inset 0 15px 20px rgba(0,0,0,.6); }
.scn-presence-of-mind-origin .armchair { position:absolute; bottom:18%; left:30%; width:120px; height:130px; background: linear-gradient(135deg, #3a4a2a 0%, #2a3a1a 100%); border-radius:20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 8px 18px rgba(0,0,0,.7), inset 0 4px 8px rgba(255,255,255,.05); }
.scn-presence-of-mind-origin .figure { position:absolute; bottom:28%; left:42%; width:38px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmo-figure 6s ease-in-out infinite; }
.scn-presence-of-mind-origin .lamp { position:absolute; bottom:45%; left:55%; width:20px; height:30px; background: radial-gradient(circle at 50% 20%, #f0c06a 0%, #b08040 100%); border-radius:20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 0 40px 12px rgba(176,128,64,.5), 0 0 80px 24px rgba(176,128,64,.2); animation: pmo-lamp 4s ease-in-out infinite alternate; }
.scn-presence-of-mind-origin .book { position:absolute; bottom:30%; left:35%; width:30px; height:22px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; transform: rotate(-10deg); animation: pmo-book 8s ease-in-out infinite; }
.scn-presence-of-mind-origin .mote-a, .scn-presence-of-mind-origin .mote-b { position:absolute; width:4px; height:4px; background: rgba(200,180,100,.6); border-radius:50%; filter:blur(2px); }
.scn-presence-of-mind-origin .mote-a { top:35%; left:20%; animation: pmo-mote 12s linear infinite; }
.scn-presence-of-mind-origin .mote-b { top:40%; left:70%; animation: pmo-mote 15s linear infinite 4s; }
@keyframes pmo-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pmo-lamp { 0% { box-shadow: 0 0 30px 8px rgba(176,128,64,.4), 0 0 60px 16px rgba(176,128,64,.15); opacity:.9; } 50% { box-shadow: 0 0 50px 16px rgba(200,160,80,.6), 0 0 100px 32px rgba(200,160,80,.3); opacity:1; } 100% { box-shadow: 0 0 40px 10px rgba(176,128,64,.5), 0 0 80px 20px rgba(176,128,64,.2); opacity:.95; } }
@keyframes pmo-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes pmo-mote { 0% { transform: translate(0,0); opacity:.3; } 25% { transform: translate(30px, -15px); opacity:.6; } 50% { transform: translate(60px, -30px); opacity:.2; } 75% { transform: translate(90px, -10px); opacity:.5; } 100% { transform: translate(120px, 0); opacity:.3; } }

.scn-four-elements-atmosphere { background: linear-gradient(180deg, #1e1a22 0%, #2c2434 100%), radial-gradient(ellipse at 50% 100%, #2c2434 0%, transparent 80%); }
.scn-four-elements-atmosphere .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2c2434 0%, #1a1620 100%); }
.scn-four-elements-atmosphere .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-four-elements-atmosphere .table { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-four-elements-atmosphere .figure { position:absolute; bottom:25%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fea-figure 6s ease-in-out infinite; }
.scn-four-elements-atmosphere .flame { position:absolute; bottom:22%; left:25%; width:16px; height:24px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 30px 10px rgba(192,128,64,.5); animation: fea-flame 2s ease-in-out infinite alternate; }
.scn-four-elements-atmosphere .water { position:absolute; bottom:22%; left:38%; width:24px; height:18px; background: radial-gradient(ellipse, #4a8ab0 0%, #2a6a8a 100%); border-radius:50%; box-shadow: inset 0 2px 6px rgba(255,255,255,.2); animation: fea-water 5s ease-in-out infinite alternate; }
.scn-four-elements-atmosphere .earth { position:absolute; bottom:22%; left:55%; width:28px; height:28px; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: fea-earth 8s ease-in-out infinite; }
.scn-four-elements-atmosphere .air { position:absolute; bottom:20%; left:70%; width:30px; height:15px; background: rgba(180,200,220,.15); border-radius:50%; filter:blur(4px); animation: fea-air 9s linear infinite; }
@keyframes fea-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fea-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9; } 50% { transform: scaleY(1.15) translateY(-3px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.8; } }
@keyframes fea-water { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(.95); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes fea-earth { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes fea-air { 0% { transform: translateX(0) scaleX(1); opacity:.4; } 25% { transform: translateX(8px) scaleX(1.2); opacity:.6; } 50% { transform: translateX(0) scaleX(1); opacity:.3; } 75% { transform: translateX(-8px) scaleX(1.1); opacity:.5; } 100% { transform: translateX(0) scaleX(1); opacity:.4; } }

.scn-weight-on-commander-not-directly-enemy { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 80%); }
.scn-weight-on-commander-not-directly-enemy .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-weight-on-commander-not-directly-enemy .pillar-left, .scn-weight-on-commander-not-directly-enemy .pillar-right { position:absolute; bottom:30%; width:20px; height:60%; background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:4px; }
.scn-weight-on-commander-not-directly-enemy .pillar-left { left:15%; }
.scn-weight-on-commander-not-directly-enemy .pillar-right { right:15%; }
.scn-weight-on-commander-not-directly-enemy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #12121a 0%, #0a0a10 100%); box-shadow: inset 0 15px 20px rgba(0,0,0,.7); }
.scn-weight-on-commander-not-directly-enemy .figure { position:absolute; bottom:28%; left:45%; width:34px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: woc-figure 5s ease-in-out infinite; }
.scn-weight-on-commander-not-directly-enemy .sphere { position:absolute; bottom:50%; left:46%; width:50px; height:50px; background: radial-gradient(circle, #4a4a5a 0%, #2a2a3a 100%); border-radius:50%; box-shadow: 0 10px 40px rgba(0,0,0,.7); animation: woc-sphere 4s ease-in-out infinite; }
.scn-weight-on-commander-not-directly-enemy .light-beam { position:absolute; top:5%; left:44%; width:24px; height:70%; background: linear-gradient(180deg, rgba(200,180,150,.15) 0%, rgba(200,180,150,0) 100%); filter:blur(6px); animation: woc-beam 6s ease-in-out infinite alternate; }
@keyframes woc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes woc-sphere { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes woc-beam { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-loss-of-means-responsibility { background: linear-gradient(180deg, #1a1a1a 0%, #2a1f15 100%), radial-gradient(ellipse at 60% 80%, #3a2a20 0%, transparent 70%); }
.scn-loss-of-means-responsibility .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%); }
.scn-loss-of-means-responsibility .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #14100e 0%, #0e0c0a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-loss-of-means-responsibility .figure { position:absolute; bottom:22%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lom-figure 7s ease-in-out infinite; }
.scn-loss-of-means-responsibility .rubble-a, .scn-loss-of-means-responsibility .rubble-b, .scn-loss-of-means-responsibility .rubble-c { position:absolute; bottom:15%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius:6px; box-shadow: inset 0 2px 4px rgba(255,255,255,.05); }
.scn-loss-of-means-responsibility .rubble-a { left:55%; width:30px; height:20px; transform: rotate(15deg); animation: lom-rubble 8s ease-in-out infinite; }
.scn-loss-of-means-responsibility .rubble-b { left:65%; width:20px; height:25px; transform: rotate(-20deg); animation: lom-rubble 10s ease-in-out infinite 2s; }
.scn-loss-of-means-responsibility .rubble-c { left:78%; width:25px; height:18px; transform: rotate(45deg); animation: lom-rubble 9s ease-in-out infinite 4s; }
.scn-loss-of-means-responsibility .mote { position:absolute; top:30%; left:40%; width:3px; height:3px; background: rgba(200,180,140,.3); border-radius:50%; filter:blur(1px); animation: lom-mote 15s linear infinite; }
@keyframes lom-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lom-rubble { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes lom-mote { 0% { transform: translate(0,0); opacity:.2; } 25% { transform: translate(30px, -20px); opacity:.5; } 50% { transform: translate(60px, -40px); opacity:.1; } 75% { transform: translate(90px, -15px); opacity:.4; } 100% { transform: translate(120px, 0); opacity:.2; } }

/* scene 1: the-cordon-mistake-not-system */
.scn-the-cordon-mistake-not-system {
  background: linear-gradient(135deg, #f5e9d8 0%, #e0d0b8 50%, #d4bfa0 100%),
              radial-gradient(ellipse at 20% 40%, #fcf5e8 0%, transparent 60%);
}
.scn-the-cordon-mistake-not-system .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #faf0e0 0%, #e8dcc8 50%, #d4c4a8 100%);
  animation: cmn-bg 30s ease-in-out infinite alternate;
}
.scn-the-cordon-mistake-not-system .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #b8976a 0%, #9a7b4a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -8px 12px rgba(0,0,0,0.15);
}
.scn-the-cordon-mistake-not-system .map {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d8c8a0 50%, #c0b080 100%);
  border-radius: 2px; transform: rotate(2deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: cmn-map 20s ease-in-out infinite alternate;
}
.scn-the-cordon-mistake-not-system .commander {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2e1a 0%, #1a1400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: cmn-commander 8s ease-in-out infinite;
}
.scn-the-cordon-mistake-not-system .lantern {
  position: absolute; bottom: 38%; right: 30%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #ffd680 0%, #c89440 70%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 8px rgba(200,148,64,0.6), 0 0 40px 16px rgba(200,148,64,0.3);
  animation: cmn-lantern 4s ease-in-out infinite alternate;
}
.scn-the-cordon-mistake-not-system .marker {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 4px;
  background: #a03a1a; border-radius: 50%; box-shadow: 0 0 6px 2px #a03a1a;
  animation: cmn-marker 3s ease-in-out infinite;
}
.scn-the-cordon-mistake-not-system .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(0deg, rgba(30,20,10,0.15) 0%, transparent 100%);
  border-radius: 50%; transform: scaleX(1.5); animation: cmn-shadow 10s ease-in-out infinite;
}
@keyframes cmn-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes cmn-map { 0% { transform: rotate(2deg) translate(0,0) scale(1) } 50% { transform: rotate(0deg) translate(1px,-1px) scale(1.01) } 100% { transform: rotate(-1deg) translate(0,0) scale(1) } }
@keyframes cmn-commander { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translate(2px, -1px) } }
@keyframes cmn-lantern { 0% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(200,148,64,0.5), 0 0 24px 8px rgba(200,148,64,0.2) } 50% { opacity: 1; box-shadow: 0 0 24px 10px rgba(200,148,64,0.7), 0 0 48px 18px rgba(200,148,64,0.4) } 100% { opacity: 0.9; box-shadow: 0 0 16px 6px rgba(200,148,64,0.6), 0 0 32px 12px rgba(200,148,64,0.3) } }
@keyframes cmn-marker { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes cmn-shadow { 0%,100% { opacity: 0.1 } 50% { opacity: 0.2 } }

/* scene 2: the-cordon-prince-henry */
.scn-the-cordon-prince-henry {
  background: linear-gradient(180deg, #f0e8d8 0%, #dcd0b8 50%, #c8b898 100%),
              radial-gradient(ellipse at 80% 20%, #fcf8f0 0%, transparent 60%);
}
.scn-the-cordon-prince-henry .bg-light {
  position: absolute; inset: 0; background: linear-gradient(135deg, #faf3e8 0%, #e8dcc8 50%, #d4c4a8 100%);
  animation: cph-bg 40s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry .window {
  position: absolute; top: 5%; left: 70%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #c0d8e0 0%, #a0c0d0 50%, #80b0c0 100%);
  border: 6px solid #6a5a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.3);
  animation: cph-window 12s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(0deg, #8a6b40 0%, #a07c48 40%, #b08c54 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 10px rgba(0,0,0,0.12);
}
.scn-the-cordon-prince-henry .prince-horse {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2e1a 0%, #1a1400 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(-5deg); animation: cph-horse 6s ease-in-out infinite;
}
.scn-the-cordon-prince-henry .prince-rider {
  position: absolute; bottom: 32%; left: 36%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a2010 0%, #0a0800 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: cph-rider 6s ease-in-out infinite;
}
.scn-the-cordon-prince-henry .candle {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 20px;
  background: linear-gradient(0deg, #b06820 0%, #d09830 60%, #ffd060 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 18px 6px rgba(255,208,96,0.5);
  animation: cph-candle 4s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry .map-roll {
  position: absolute; bottom: 15%; left: 45%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #d8c8a0 0%, #f0e0c0 50%, #d8c8a0 100%);
  border-radius: 20px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cph-maproll 25s ease-in-out infinite alternate;
}
@keyframes cph-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes cph-window { 0% { opacity: 0.6; background-position: 0 0 } 50% { opacity: 0.8; background-position: 0 -5px } 100% { opacity: 0.7; background-position: 0 0 } }
@keyframes cph-horse { 0%,100% { transform: rotate(-5deg) translate(0,0) } 50% { transform: rotate(-2deg) translate(3px, -2px) } }
@keyframes cph-rider { 0%,100% { transform: rotate(0deg) translate(0,0) } 50% { transform: rotate(2deg) translate(1px, -1px) } }
@keyframes cph-candle { 0% { opacity: 0.9; box-shadow: 0 0 12px 4px rgba(255,208,96,0.4) } 50% { opacity: 1; box-shadow: 0 0 22px 8px rgba(255,208,96,0.7) } 100% { opacity: 0.95; box-shadow: 0 0 16px 5px rgba(255,208,96,0.5) } }
@keyframes cph-maproll { 0% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(8deg) translate(2px,-1px) } 100% { transform: rotate(12deg) translate(0,0) } }

/* scene 3: the-cordon-prince-henry-justification */
.scn-the-cordon-prince-henry-justification {
  background: linear-gradient(180deg, #f2e9da 0%, #dfd2be 50%, #cdbd9e 100%),
              radial-gradient(ellipse at 30% 60%, #faf2e6 0%, transparent 70%);
}
.scn-the-cordon-prince-henry-justification .bg-soft {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f8efe2 0%, #e2d4be 50%, #ccbca0 100%);
  animation: cpj-bg 35s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry-justification .cobweb {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, transparent 30%, rgba(180,160,130,0.15) 32%, transparent 33%),
              radial-gradient(circle, transparent 45%, rgba(180,160,130,0.1) 47%, transparent 48%),
              radial-gradient(circle, transparent 60%, rgba(180,160,130,0.08) 62%, transparent 63%);
  border-radius: 50%; transform: translateX(-50%);
  animation: cpj-cobweb 30s linear infinite;
}
.scn-the-cordon-prince-henry-justification .prince-figure {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2e2210 0%, #0e0800 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: cpj-figure 7s ease-in-out infinite;
}
.scn-the-cordon-prince-henry-justification .magnifier {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0e8d8 0%, #b0a898 60%, transparent 65%);
  border: 2px solid #6a5a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg); animation: cpj-magnifier 9s ease-in-out infinite;
}
.scn-the-cordon-prince-henry-justification .map-detail {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(135deg, #e8d8b8 0%, #d0c0a0 50%, #b8a888 100%);
  border-radius: 2px; transform: rotate(-3deg); box-shadow: 1px 1px 6px rgba(0,0,0,0.15);
  animation: cpj-map 22s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry-justification .candle-two {
  position: absolute; bottom: 28%; left: 20%; width: 8px; height: 22px;
  background: linear-gradient(0deg, #a06020 0%, #c88830 60%, #f0b040 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 14px 5px rgba(200,136,48,0.5);
  animation: cpj-candle2 5s ease-in-out infinite alternate;
}
.scn-the-cordon-prince-henry-justification .shadow-cast {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(0deg, rgba(30,20,10,0.12) 0%, transparent 100%);
  border-radius: 50%; transform: scaleX(1.3); animation: cpj-shadow 12s ease-in-out infinite;
}
@keyframes cpj-bg { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes cpj-cobweb { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(180deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes cpj-figure { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translate(4px, -2px) } }
@keyframes cpj-magnifier { 0%,100% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.05) } }
@keyframes cpj-map { 0% { transform: rotate(-3deg) translate(0,0) } 50% { transform: rotate(0deg) translate(2px,-1px) } 100% { transform: rotate(-2deg) translate(0,0) } }
@keyframes cpj-candle2 { 0% { opacity: 0.9; box-shadow: 0 0 10px 3px rgba(200,136,48,0.4) } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(200,136,48,0.7) } 100% { opacity: 0.95; box-shadow: 0 0 14px 5px rgba(200,136,48,0.5) } }
@keyframes cpj-shadow { 0%,100% { opacity: 0.1 } 50% { opacity: 0.2 } }

/* scene 4: key-to-the-country-intro */
.scn-key-to-the-country-intro {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c0b088 100%),
              radial-gradient(ellipse at 50% 30%, #fcf5e8 0%, transparent 70%);
}
.scn-key-to-the-country-intro .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e4d0 0%, #d8c8ac 50%, #c0ac88 100%);
  animation: ktc-bg 45s ease-in-out infinite alternate;
}
.scn-key-to-the-country-intro .map-backdrop {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #d8c8a0 0%, #c8b890 50%, #b8a078 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: ktc-mapback 20s ease-in-out infinite alternate;
}
.scn-key-to-the-country-intro .key-shape {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #d4a030 0%, #b88020 50%, #a06810 100%);
  /* key shape using border-radius */
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(180,128,32,0.3);
  transform: rotate(10deg); animation: ktc-key 10s ease-in-out infinite;
}
.scn-key-to-the-country-intro .compass {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8b090 0%, #a08868 50%, #706050 100%);
  border-radius: 50%; border: 2px solid #6a5a3a;
  animation: ktc-compass 15s linear infinite;
}
.scn-key-to-the-country-intro .horse-head {
  position: absolute; bottom: 38%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2e1a 0%, #1a1400 100%);
  border-radius: 60% 40% 20% 20% / 80% 60% 20% 20%;
  transform: rotate(15deg); animation: ktc-horse 8s ease-in-out infinite;
}
.scn-key-to-the-country-intro .glow-spot {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  transform: translateX(-50%); filter: blur(8px);
  animation: ktc-glow 6s ease-in-out infinite alternate;
}
.scn-key-to-the-country-intro .border-ornament {
  position: absolute; top: 5%; left: 5%; right: 5%; bottom: 5%;
  border: 2px solid rgba(100,80,50,0.15); border-radius: 12px;
  animation: ktc-border 25s ease-in-out infinite alternate;
}
@keyframes ktc-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes ktc-mapback { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.02) translate(2px,-1px) } 100% { transform: scale(1) translate(0,0) } }
@keyframes ktc-key { 0%,100% { transform: rotate(10deg) translate(0,0) } 50% { transform: rotate(15deg) translate(2px,-2px) } }
@keyframes ktc-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes ktc-horse { 0%,100% { transform: rotate(15deg) translate(0,0) } 50% { transform: rotate(20deg) translate(3px,-1px) } }
@keyframes ktc-glow { 0% { opacity: 0.3; transform: translateX(-50%) scale(1) } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.2) } 100% { opacity: 0.4; transform: translateX(-50%) scale(1) } }
@keyframes ktc-border { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-item-reserve-moral-effect {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 60%, #8a5a2a 0%, transparent 70%);
}
.scn-item-reserve-moral-effect .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 70%, #1a0a00 100%);
  animation: irm-wall 30s ease-in-out infinite alternate;
}
.scn-item-reserve-moral-effect .window {
  position: absolute; top: 12%; right: 20%; width: 40%; height: 38%;
  background: radial-gradient(ellipse at 50% 50%, #d4a050 0%, #a07030 60%, transparent 100%);
  border-radius: 50%; filter: blur(2px); opacity: 0.6;
  animation: irm-window-glow 6s ease-in-out infinite alternate;
}
.scn-item-reserve-moral-effect .figure {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: irm-figure 5s ease-in-out infinite;
}
.scn-item-reserve-moral-effect .lamp {
  position: absolute; bottom: 20%; left: 45%; width: 3%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #c08030 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,130,50,0.6), 0 0 60px 20px rgba(200,130,50,0.3);
  animation: irm-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-item-reserve-moral-effect .desk {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -3px 6px rgba(0,0,0,0.6);
}
.scn-item-reserve-moral-effect .map {
  position: absolute; bottom: 17%; left: 30%; width: 30%; height: 8%;
  background: linear-gradient(135deg, #d4b080 0%, #b09060 50%, #907040 100%);
  border-radius: 2px; transform: rotate(-5deg); opacity: 0.8;
  animation: irm-map 12s ease-in-out infinite alternate;
}
@keyframes irm-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes irm-window-glow {
  0% { opacity: 0.4; transform: scale(1); box-shadow: 0 0 20px 5px #a07030; }
  50% { opacity: 0.7; transform: scale(1.02); box-shadow: 0 0 40px 15px #d4a050; }
  100% { opacity: 0.5; transform: scale(1); box-shadow: 0 0 25px 8px #a07030; }
}
@keyframes irm-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(4px) translateY(0) rotate(1deg); }
  75% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes irm-lamp-flicker {
  0% { box-shadow: 0 0 20px 5px rgba(200,130,50,0.4), 0 0 40px 15px rgba(200,130,50,0.2); opacity: 0.7; }
  30% { box-shadow: 0 0 40px 15px rgba(255,200,100,0.7), 0 0 80px 30px rgba(255,200,100,0.4); opacity: 1; }
  60% { box-shadow: 0 0 25px 8px rgba(200,130,50,0.5), 0 0 50px 20px rgba(200,130,50,0.3); opacity: 0.85; }
  100% { box-shadow: 0 0 15px 4px rgba(200,130,50,0.3), 0 0 30px 10px rgba(200,130,50,0.15); opacity: 0.7; }
}
@keyframes irm-map {
  0% { transform: rotate(-5deg) scale(1); opacity: 0.75; }
  50% { transform: rotate(-3deg) scale(1.01); opacity: 0.85; }
  100% { transform: rotate(-5deg) scale(1); opacity: 0.75; }
}

.scn-night-wooded-crisis-effect {
  background: linear-gradient(180deg, #0a0a2a 0%, #0a0a1a 60%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 120%, #0a0a2a 0%, transparent 80%);
}
.scn-night-wooded-crisis-effect .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #0e0e3e 0%, #0a0a2a 100%);
  animation: nwc-sky 20s ease-in-out infinite alternate;
}
.scn-night-wooded-crisis-effect .moon {
  position: absolute; top: 8%; left: 60%; width: 8%; height: 8%;
  background: radial-gradient(circle, #c0c8e0 0%, #8088a0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(192,200,224,0.3), 0 0 120px 40px rgba(192,200,224,0.1);
  animation: nwc-moon 15s ease-in-out infinite alternate;
}
.scn-night-wooded-crisis-effect .tree-back {
  position: absolute; bottom: 22%; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #0a0a0a 100%);
  clip-path: polygon(10% 0%, 20% 100%, 30% 0%, 40% 100%, 50% 0%, 60% 100%, 70% 0%, 80% 100%, 90% 0%, 100% 100%, 0% 100%);
  animation: nwc-tree-back 25s ease-in-out infinite alternate;
}
.scn-night-wooded-crisis-effect .tree-front {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  clip-path: polygon(15% 0%, 25% 100%, 35% 0%, 45% 100%, 55% 0%, 65% 100%, 75% 0%, 85% 100%, 95% 0%, 100% 100%, 0% 100%);
  animation: nwc-tree-front 18s ease-in-out infinite alternate;
}
.scn-night-wooded-crisis-effect .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a0a0a 0%, #0e0e0e 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-night-wooded-crisis-effect .figure {
  position: absolute; bottom: 12%; left: 40%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #050505 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nwc-figure 6s ease-in-out infinite;
}
.scn-night-wooded-crisis-effect .fog {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, rgba(10,10,30,0.4) 0%, rgba(10,10,30,0.1) 50%, rgba(10,10,30,0.4) 100%);
  filter: blur(10px); border-radius: 40%;
  animation: nwc-fog 30s linear infinite;
}
@keyframes nwc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes nwc-moon {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(10px) scale(1.05); opacity: 0.9; }
  100% { transform: translateX(0) scale(1); opacity: 0.7; }
}
@keyframes nwc-tree-back {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nwc-tree-front {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-4px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes nwc-figure {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(3px) translateY(-1px); }
  50% { transform: translateX(6px) translateY(0); }
  75% { transform: translateX(3px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes nwc-fog {
  0% { transform: translateX(-20%); }
  50% { transform: translateX(20%); }
  100% { transform: translateX(-20%); }
}

.scn-assistance-flank-rear-effect {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #0a0500 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
}
.scn-assistance-flank-rear-effect .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0500 0%, #1a0a00 70%, #0a0000 100%);
  animation: afr-wall 20s ease-in-out infinite alternate;
}
.scn-assistance-flank-rear-effect .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.7);
}
.scn-assistance-flank-rear-effect .map {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 50%, #4a2a1a 100%);
  border-radius: 2px; transform: rotate(3deg);
  animation: afr-map 15s ease-in-out infinite alternate;
}
.scn-assistance-flank-rear-effect .candle {
  position: absolute; bottom: 20%; left: 42%; width: 1.5%; height: 6%;
  background: linear-gradient(180deg, #806040 0%, #4a2a1a 100%);
  border-radius: 2px 2px 10% 10%;
}
.scn-assistance-flank-rear-effect .candle::before {
  content: ''; position: absolute; bottom: 100%; left: -50%; width: 200%; height: 100%;
  background: radial-gradient(circle at 50% 0%, #ffa030 0%, #e07020 60%, transparent 100%);
  border-radius: 50%; opacity: 0.8;
  animation: afr-flame 0.8s ease-in-out infinite alternate;
}
.scn-assistance-flank-rear-effect .figure-officer {
  position: absolute; bottom: 14%; left: 25%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: afr-officer 4s ease-in-out infinite;
}
.scn-assistance-flank-rear-effect .figure-messenger {
  position: absolute; bottom: 14%; right: 20%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: afr-messenger 6s ease-in-out infinite;
}
.scn-assistance-flank-rear-effect .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(6px);
  animation: afr-shadow 8s ease-in-out infinite alternate;
}
@keyframes afr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes afr-map {
  0% { transform: rotate(3deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(3deg) scale(1); }
}
@keyframes afr-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.7; }
  50% { transform: scaleY(1.2) scaleX(0.8); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
}
@keyframes afr-officer {
  0% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(4px) translateY(0) rotate(0.5deg); }
  75% { transform: translateX(2px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
}
@keyframes afr-messenger {
  0% { transform: translateX(0) translateY(0); }
  30% { transform: translateX(-10px) translateY(-1px); }
  60% { transform: translateX(-20px) translateY(0); }
  100% { transform: translateX(-30px) translateY(-1px); }
}
@keyframes afr-shadow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}

.scn-flank-rear-intensity-variable {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 60% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-flank-rear-intensity-variable .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 70%, #1a0a00 100%);
  animation: fiv-wall 40s ease-in-out infinite alternate;
}
.scn-flank-rear-intensity-variable .window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-flank-rear-intensity-variable .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: fiv-shelf 15s ease-in-out infinite alternate;
}
.scn-flank-rear-intensity-variable .figure-reading {
  position: absolute; bottom: 12%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fiv-figure 8s ease-in-out infinite;
}
.scn-flank-rear-intensity-variable .lamp {
  position: absolute; bottom: 22%; left: 50%; width: 3%; height: 5%;
  background: radial-gradient(circle, #d0a070 0%, #a07040 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,112,64,0.4), 0 0 60px 20px rgba(160,112,64,0.2);
  animation: fiv-lamp 6s ease-in-out infinite alternate;
}
.scn-flank-rear-intensity-variable .book {
  position: absolute; bottom: 16%; left: 33%; width: 6%; height: 4%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 2px; transform: rotate(-10deg);
  animation: fiv-book 10s ease-in-out infinite alternate;
}
.scn-flank-rear-intensity-variable .candle {
  position: absolute; bottom: 20%; left: 55%; width: 1%; height: 5%;
  background: linear-gradient(180deg, #806040 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-flank-rear-intensity-variable .candle::before {
  content: ''; position: absolute; bottom: 100%; left: -100%; width: 300%; height: 50%;
  background: radial-gradient(circle at 50% 0%, #d08050 0%, #b06030 60%, transparent 100%);
  border-radius: 50%; opacity: 0.6;
  animation: fiv-candle-flame 3s ease-in-out infinite alternate;
}
@keyframes fiv-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fiv-shelf {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes fiv-figure {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-1px) scale(1.005); }
  60% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-0.5px) scale(1); }
}
@keyframes fiv-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(160,112,64,0.3), 0 0 40px 10px rgba(160,112,64,0.15); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px rgba(200,150,80,0.6), 0 0 80px 30px rgba(200,150,80,0.3); opacity: 0.9; }
  100% { box-shadow: 0 0 25px 8px rgba(160,112,64,0.35), 0 0 50px 15px rgba(160,112,64,0.2); opacity: 0.75; }
}
@keyframes fiv-book {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.01); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes fiv-candle-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.4; }
  50% { transform: scaleY(1.1) scaleX(0.8); opacity: 0.7; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.5; }
}

.scn-retreat-into-interior-pursuit-no-defeat {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b89a72 70%, #8a6f50 100%), radial-gradient(ellipse at 50% 30%, #fdf4dc 0%, transparent 60%);
}
.scn-retreat-into-interior-pursuit-no-defeat .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d6b8 0%, #c8b090 100%); border-bottom: 2px solid #9a7a5a; }
.scn-retreat-into-interior-pursuit-no-defeat .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%); }
.scn-retreat-into-interior-pursuit-no-defeat .window { position:absolute; top:15%; left:30%; width:30%; height:40%; background: linear-gradient(180deg, #e0f0ff 0%, #b0d0e8 100%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.5); }
.scn-retreat-into-interior-pursuit-no-defeat .curtain-l { position:absolute; top:10%; left:28%; width:8%; height:50%; background: linear-gradient(90deg, #8a6a4a 0%, #c8a880 50%, #8a6a4a 100%); border-radius: 0 0 40% 0; animation: ri1-curtain 8s ease-in-out infinite alternate; transform-origin: top left; }
.scn-retreat-into-interior-pursuit-no-defeat .curtain-r { position:absolute; top:10%; right:28%; width:8%; height:50%; background: linear-gradient(90deg, #8a6a4a 0%, #c8a880 50%, #8a6a4a 100%); border-radius: 0 0 0 40%; animation: ri1-curtain 8s ease-in-out infinite alternate; transform-origin: top right; }
.scn-retreat-into-interior-pursuit-no-defeat .figure { position:absolute; bottom:30%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri1-figure 12s ease-in-out infinite; }
.scn-retreat-into-interior-pursuit-no-defeat .lamp { position:absolute; bottom:38%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, #5a2a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px rgba(255,208,128,0.6); animation: ri1-lamp 4s ease-in-out infinite alternate; }
.scn-retreat-into-interior-pursuit-no-defeat .glow { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 20% 40%, rgba(255,224,160,0.15) 0%, transparent 60%); animation: ri1-glow 6s ease-in-out infinite alternate; }
@keyframes ri1-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.06); } 100% { transform: scaleX(1); } }
@keyframes ri1-figure { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes ri1-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,208,128,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 12px rgba(255,208,128,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 6px rgba(255,208,128,0.5); opacity: 0.95; } }
@keyframes ri1-glow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-retreat-into-interior-direction {
  background: linear-gradient(180deg, #f0dfc8 0%, #c8b090 30%, #a08060 60%, #7a5a3a 100%), radial-gradient(circle at 70% 50%, #fdf4dc 0%, transparent 60%);
}
.scn-retreat-into-interior-direction .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%); border-bottom: 2px solid #9a7a5a; }
.scn-retreat-into-interior-direction .table { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-retreat-into-interior-direction .map { position:absolute; bottom:18%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, #d0b070 80%, #a08050 100%); border-radius: 4px; border: 2px solid #6a4a2a; box-shadow: inset 0 0 10px rgba(0,0,0,0.2); animation: ri2-map 20s ease-in-out infinite alternate; }
.scn-retreat-into-interior-direction .hand { position:absolute; bottom:22%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: 50% 90%; animation: ri2-hand 6s ease-in-out infinite; }
.scn-retreat-into-interior-direction .candle { position:absolute; bottom:22%; left:25%; width:8px; height:24px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%); border-radius: 2px; }
.scn-retreat-into-interior-direction .flame { position:absolute; bottom:44%; left:25%; width:6px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, #802000 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(255,160,64,0.6); animation: ri2-flame 2s ease-in-out infinite alternate; }
.scn-retreat-into-interior-direction .inkwell { position:absolute; bottom:18%; left:70%; width:12px; height:14px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; border: 2px solid #4a3a2a; animation: ri2-ink 10s ease-in-out infinite alternate; }
@keyframes ri2-map { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ri2-hand { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } }
@keyframes ri2-flame { 0% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(1.2) rotate(5deg); } 50% { transform: scaleY(0.9) rotate(-3deg); } 75% { transform: scaleY(1.15) rotate(2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes ri2-ink { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }

.scn-retreat-into-interior-choose-point {
  background: linear-gradient(180deg, #f5ecd8 0%, #d4c4a8 30%, #b09c80 60%, #8a7450 100%), radial-gradient(ellipse at 40% 60%, #fdf4dc 0%, transparent 70%);
}
.scn-retreat-into-interior-choose-point .desk { position:absolute; bottom:8%; left:5%; right:5%; height:32%; background: linear-gradient(180deg, #9a7a5a 0%, #5a3a1a 100%); border-radius: 6px; }
.scn-retreat-into-interior-choose-point .map { position:absolute; bottom:15%; left:15%; right:15%; height:18%; background: radial-gradient(ellipse at 50% 50%, #f0d8a0 0%, #d0b070 80%, #a08050 100%); border: 2px solid #6a4a2a; border-radius: 3px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: ri3-map 15s ease-in-out infinite alternate; }
.scn-retreat-into-interior-choose-point .finger { position:absolute; bottom:22%; left:48%; width:8px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); transform-origin: 50% 100%; animation: ri3-finger 5s ease-in-out infinite; }
.scn-retreat-into-interior-choose-point .lens { position:absolute; bottom:20%; left:60%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, rgba(200,200,220,0.1) 60%, transparent 70%); border: 2px solid #7a6a4a; border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: ri3-lens 12s ease-in-out infinite alternate; }
.scn-retreat-into-interior-choose-point .paper { position:absolute; bottom:12%; left:30%; width:40px; height:6px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 1px; transform: rotate(5deg); animation: ri3-paper 8s ease-in-out infinite alternate; }
.scn-retreat-into-interior-choose-point .lamp { position:absolute; bottom:28%; left:10%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, #5a2a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.5); animation: ri3-lamp 4s ease-in-out infinite alternate; }
.scn-retreat-into-interior-choose-point .glow { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 30% 50%, rgba(255,224,160,0.12) 0%, transparent 60%); animation: ri3-glow 6s ease-in-out infinite alternate; }
@keyframes ri3-map { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes ri3-finger { 0%,100% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(1px); } }
@keyframes ri3-lens { 0% { transform: scale(1); } 50% { transform: scale(1.04); } 100% { transform: scale(1); } }
@keyframes ri3-paper { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ri3-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.7); } 100% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.5); } }
@keyframes ri3-glow { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-retreat-into-interior-moscow-possible {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4c0a0 30%, #b09070 60%, #8a6a4a 100%), radial-gradient(circle at 60% 30%, #fdf4dc 0%, transparent 60%);
}
.scn-retreat-into-interior-moscow-possible .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%); border-bottom: 2px solid #9a7a5a; }
.scn-retreat-into-interior-moscow-possible .window { position:absolute; top:12%; left:35%; width:25%; height:35%; background: linear-gradient(180deg, #d0e0f0 0%, #a0c0d8 100%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.4); }
.scn-retreat-into-interior-moscow-possible .globe { position:absolute; bottom:18%; left:38%; width:30px; height:30px; background: radial-gradient(circle at 40% 30%, #b0d0a0 0%, #60a060 40%, #3a6a3a 100%); border-radius: 50%; box-shadow: 0 0 12px rgba(0,0,0,0.3); animation: ri4-globe 20s linear infinite; transform-origin: center center; }
.scn-retreat-into-interior-moscow-possible .stand { position:absolute; bottom:8%; left:42%; width:8px; height:14px; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%); border-radius: 2px; }
.scn-retreat-into-interior-moscow-possible .figure { position:absolute; bottom:28%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri4-figure 14s ease-in-out infinite; }
.scn-retreat-into-interior-moscow-possible .lamp { position:absolute; bottom:35%; left:18%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, #5a2a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 25px 6px rgba(255,208,128,0.5); animation: ri4-lamp 5s ease-in-out infinite alternate; }
.scn-retreat-into-interior-moscow-possible .shadow { position:absolute; bottom:0; left:40%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.15) 0%, transparent 100%); animation: ri4-shadow 10s ease-in-out infinite alternate; }
@keyframes ri4-globe { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(360deg); } }
@keyframes ri4-figure { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } }
@keyframes ri4-lamp { 0% { box-shadow: 0 0 20px 4px rgba(255,208,128,0.4); } 50% { box-shadow: 0 0 35px 10px rgba(255,208,128,0.7); } 100% { box-shadow: 0 0 25px 5px rgba(255,208,128,0.5); } }
@keyframes ri4-shadow { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(1); } }

.scn-the-cordon-wall-of-china {
  background: linear-gradient(180deg, #fce4b8 0%, #e2c792 30%, #b8925e 70%, #6a4e2e 100%), 
              radial-gradient(ellipse at 50% 100%, #f0d8a8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-the-cordon-wall-of-china .sky-cw {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe4b5 0%, #f4c87a 50%, #e0a860 100%);
  animation: sky-cw 12s ease-in-out infinite alternate;
}
.scn-the-cordon-wall-of-china .hills-cw {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 60% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: hills-cw 18s ease-in-out infinite alternate;
}
.scn-the-cordon-wall-of-china .wall-cw {
  position: absolute; bottom: 32%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #b08050 0%, #d4a060 40%, #c09050 60%, #a07040 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: wall-cw 8s ease-in-out infinite alternate;
}
.scn-the-cordon-wall-of-china .tower-cw {
  position: absolute; bottom: 36%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: tower-cw 6s ease-in-out infinite;
}
.scn-the-cordon-wall-of-china .sun-cw {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe680 0%, #f0b040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sun-cw 20s ease-in-out infinite alternate;
}
.scn-the-cordon-wall-of-china .cloud-cw-a {
  position: absolute; top: 18%; left: 5%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: drift-cw-a 40s linear infinite;
}
.scn-the-cordon-wall-of-china .cloud-cw-b {
  position: absolute; top: 24%; right: 10%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: drift-cw-b 55s linear infinite reverse;
}
@keyframes sky-cw {
  0% { opacity: 0.9; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.85; background-position: 0% 5%; }
}
@keyframes hills-cw {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes wall-cw {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.95; }
}
@keyframes tower-cw {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
}
@keyframes sun-cw {
  0% { transform: scale(0.95) translate(0, 0); opacity: 0.8; }
  50% { transform: scale(1.05) translate(5px, -3px); opacity: 1; }
  100% { transform: scale(0.98) translate(-2px, 2px); opacity: 0.9; }
}
@keyframes drift-cw-a {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}
@keyframes drift-cw-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-the-cordon-modern-european {
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a87a 30%, #8a7a5a 70%, #5a4a2e 100%),
              radial-gradient(ellipse at 50% 0%, #e6d8b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-the-cordon-modern-european .ground-me {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: ground-me 15s ease-in-out infinite alternate;
}
.scn-the-cordon-modern-european .bastion-me {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  clip-path: polygon(0% 0%, 20% 100%, 80% 100%, 100% 0%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: bastion-me 10s ease-in-out infinite;
}
.scn-the-cordon-modern-european .moat-me {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, #4a7a7a 0%, #6a9a9a 50%, #3a6a6a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: moat-me 6s ease-in-out infinite alternate;
}
.scn-the-cordon-modern-european .gate-me {
  position: absolute; bottom: 37%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 10px #000;
  animation: gate-me 4s ease-in-out infinite;
}
.scn-the-cordon-modern-european .sentinel-me-a {
  position: absolute; bottom: 33%; left: 44%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sentinel-me-a 5s ease-in-out infinite;
}
.scn-the-cordon-modern-european .sentinel-me-b {
  position: absolute; bottom: 33%; left: 54%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sentinel-me-b 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-the-cordon-modern-european .banner-me {
  position: absolute; bottom: 46%; left: 50%; width: 6px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 8px rgba(200,85,61,0.6);
  animation: banner-me 3s ease-in-out infinite alternate;
}
@keyframes ground-me {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bastion-me {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) rotate(0.5deg); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes moat-me {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.3); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes gate-me {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-1px); }
}
@keyframes sentinel-me-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(4px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(6px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(8px) translateY(0) rotate(0deg); }
}
@keyframes sentinel-me-b {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(-4px) translateY(0) rotate(1deg); }
  75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-8px) translateY(0) rotate(0deg); }
}
@keyframes banner-me {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}

.scn-the-cordon-pernicious {
  background: linear-gradient(180deg, #e8dccc 0%, #c8b8a0 30%, #8a7a5a 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 70% 40%, #ffe0a0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-the-cordon-pernicious .wall-bg-pn {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 0% 80%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: wall-bg-pn 8s ease-in-out infinite alternate;
}
.scn-the-cordon-pernicious .crack-pn {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #1a0a00 100%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  animation: crack-pn 4s ease-in-out infinite alternate;
}
.scn-the-cordon-pernicious .creature-pn {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: creature-pn 6s ease-in-out infinite;
}
.scn-the-cordon-pernicious .lantern-pn {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: lantern-pn 3s ease-in-out infinite alternate;
}
.scn-the-cordon-pernicious .shadow-pn {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: shadow-pn 6s ease-in-out infinite;
}
.scn-the-cordon-pernicious .dust-pn {
  position: absolute; top: 20%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: dust-pn 15s ease-in-out infinite alternate;
}
@keyframes wall-bg-pn {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes crack-pn {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes creature-pn {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
}
@keyframes lantern-pn {
  0% { box-shadow: 0 0 16px 4px #c08040; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.9; }
}
@keyframes shadow-pn {
  0% { transform: scaleX(0.8); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.6; }
}
@keyframes dust-pn {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(-10px, -15px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(5px, -5px) scale(0.9); opacity: 0.2; }
}

.scn-the-cordon-outpost-lines {
  background: linear-gradient(180deg, #e6d8b0 0%, #c8b88a 30%, #a09060 70%, #6a5a3a 100%),
              radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-the-cordon-outpost-lines .sky-ol {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #e8d0a0 60%, #d4b880 100%);
  animation: sky-ol 12s ease-in-out infinite alternate;
}
.scn-the-cordon-outpost-lines .ground-ol {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: ground-ol 20s ease-in-out infinite alternate;
}
.scn-the-cordon-outpost-lines .outpost-ol-fore {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: outpost-ol-f 8s ease-in-out infinite;
}
.scn-the-cordon-outpost-lines .outpost-ol-mid {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #907048 0%, #604028 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 3px 8px rgba(0,0,0,0.4);
  animation: outpost-ol-m 10s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-the-cordon-outpost-lines .outpost-ol-back {
  position: absolute; bottom: 26%; left: 70%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #806040 0%, #503020 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: outpost-ol-b 12s ease-in-out infinite;
  animation-delay: -7s;
}
.scn-the-cordon-outpost-lines .path-ol {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 4px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 30%, #4a3a2a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: path-ol 15s ease-in-out infinite alternate;
}
.scn-the-cordon-outpost-lines .tree-ol {
  position: absolute; bottom: 36%; left: 80%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tree-ol 7s ease-in-out infinite alternate;
}
@keyframes sky-ol {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ground-ol {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes outpost-ol-f {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes outpost-ol-m {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes outpost-ol-b {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes path-ol {
  0% { transform: scaleX(0.9); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.9; }
  100% { transform: scaleX(0.95); opacity: 0.7; }
}
@keyframes tree-ol {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* defence-of-streams-feints-more-dangerous (df1) */
.scn-defence-of-streams-feints-more-dangerous {
  background:
    linear-gradient(135deg, #8c6b4a 0%, #5a3d2e 40%, #3b2115 100%),
    radial-gradient(ellipse at 30% 40%, #a87f5a 0%, transparent 70%);
}
.scn-defence-of-streams-feints-more-dangerous .room {
  position:absolute; inset:0; background: linear-gradient(180deg, #9e7f5a 0%, #4a3020 100%); opacity:0.8;
}
.scn-defence-of-streams-feints-more-dangerous .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a4a30 0%, #3a2210 100%); border-radius:8px; box-shadow:0 -4px 12px rgba(0,0,0,0.5);
}
.scn-defence-of-streams-feints-more-dangerous .map {
  position:absolute; bottom:22%; left:28%; right:28%; height:6%; background: #c8a878; border-radius:4px; box-shadow:inset 0 2px 6px rgba(0,0,0,0.2); animation: df1-map 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-feints-more-dangerous .lantern {
  position:absolute; top:30%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #c08050 0%, #805020 100%); border-radius:30% 30% 20% 20%; box-shadow:0 0 10px 4px #ffc060; animation: df1-lantern 3s ease-in-out infinite;
}
.scn-defence-of-streams-feints-more-dangerous .lantern-glow {
  position:absolute; top:28%; left:50%; width:60px; height:60px; transform:translateX(-50%) scale(0.6); background: radial-gradient(circle, rgba(255,192,96,0.3) 0%, transparent 70%); border-radius:50%; animation: df1-glow 3s ease-in-out infinite;
}
.scn-defence-of-streams-feints-more-dangerous .figure-left {
  position:absolute; bottom:20%; left:24%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df1-figL 4s ease-in-out infinite;
}
.scn-defence-of-streams-feints-more-dangerous .figure-right {
  position:absolute; bottom:20%; right:24%; width:22px; height:42px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df1-figR 4.5s ease-in-out infinite;
}
.scn-defence-of-streams-feints-more-dangerous .shadow {
  position:absolute; bottom:18%; left:22%; right:22%; height:6%; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation: df1-shadow 6s ease-in-out infinite alternate;
}

@keyframes df1-map {
  0% { opacity:0.7; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.8; transform:scale(0.98); }
}
@keyframes df1-lantern {
  0% { transform:translateX(-50%) rotate(-2deg); }
  50% { transform:translateX(-50%) rotate(2deg); }
  100% { transform:translateX(-50%) rotate(-1deg); }
}
@keyframes df1-glow {
  0% { opacity:0.5; transform:translateX(-50%) scale(0.6); }
  50% { opacity:1; transform:translateX(-50%) scale(0.8); }
  100% { opacity:0.6; transform:translateX(-50%) scale(0.65); }
}
@keyframes df1-figL {
  0% { transform:translate(0,0) rotate(-3deg); }
  50% { transform:translate(2px,-2px) rotate(1deg); }
  100% { transform:translate(0,0) rotate(-2deg); }
}
@keyframes df1-figR {
  0% { transform:translate(0,0) rotate(2deg); }
  50% { transform:translate(-3px,-1px) rotate(-1deg); }
  100% { transform:translate(0,0) rotate(1deg); }
}
@keyframes df1-shadow {
  0% { transform:scaleX(1); opacity:0.3; }
  50% { transform:scaleX(1.1); opacity:0.5; }
  100% { transform:scaleX(0.9); opacity:0.2; }
}

/* defence-of-streams-haste-preparation (df2) */
.scn-defence-of-streams-haste-preparation {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 30%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 100%, #8a9aaa 0%, transparent 80%);
}
.scn-defence-of-streams-haste-preparation .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 100%); animation: df2-sky 20s ease-in-out infinite alternate;
}
.scn-defence-of-streams-haste-preparation .clouds {
  position:absolute; top:6%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, rgba(220,230,240,0.2) 0px, transparent 60px, rgba(220,230,240,0.1) 120px); animation: df2-clouds 40s linear infinite;
}
.scn-defence-of-streams-haste-preparation .river {
  position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; animation: df2-river 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-haste-preparation .bank {
  position:absolute; bottom:24%; left:40%; right:30%; height:8%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 30% 30% 0 0;
}
.scn-defence-of-streams-haste-preparation .bridge {
  position:absolute; bottom:22%; left:35%; right:45%; height:6%; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-defence-of-streams-haste-preparation .troops {
  position:absolute; bottom:22%; left:38%; width:30%; height:4%; background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 4px, transparent 4px, transparent 6px); animation: df2-troops 6s linear infinite;
}
.scn-defence-of-streams-haste-preparation .tree {
  position:absolute; bottom:24%; left:60%; width:8px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: df2-tree 5s ease-in-out infinite alternate;
}

@keyframes df2-sky {
  0% { opacity:0.6; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes df2-clouds {
  0% { transform:translateX(0); }
  100% { transform:translateX(-200px); }
}
@keyframes df2-river {
  0% { opacity:0.8; background-position: 0 0; }
  50% { opacity:1; background-position: 0 5px; }
  100% { opacity:0.8; background-position: 0 0; }
}
@keyframes df2-troops {
  0% { transform:translateX(0); opacity:0.6; }
  50% { transform:translateX(20px); opacity:1; }
  100% { transform:translateX(40px); opacity:0.5; }
}
@keyframes df2-tree {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(4deg); }
  100% { transform:rotate(-2deg); }
}

/* defence-of-streams-third-form (df3) */
.scn-defence-of-streams-third-form {
  background:
    linear-gradient(180deg, #b8c8d8 0%, #8a9aaa 50%, #6a7a8a 100%),
    radial-gradient(ellipse at 70% 20%, #d8e8f0 0%, transparent 60%);
}
.scn-defence-of-streams-third-form .wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #c8d0d8 0%, #e0e8f0 100%); opacity:0.6;
}
.scn-defence-of-streams-third-form .window-frame {
  position:absolute; top:15%; left:30%; right:30%; bottom:40%; border: 8px solid #6a5a4a; border-radius: 4px; background: transparent;
}
.scn-defence-of-streams-third-form .landscape {
  position:absolute; top:17%; left:33%; right:33%; bottom:42%; background: linear-gradient(180deg, #8aaa8a 0%, #5a7a5a 100%); border-radius: 2px;
}
.scn-defence-of-streams-third-form .river-outside {
  position:absolute; top:55%; left:33%; right:33%; bottom:42%; background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 100%); border-radius: 0 0 4px 4px; animation: df3-river 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-third-form .figure {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df3-fig 6s ease-in-out infinite;
}
.scn-defence-of-streams-third-form .desk {
  position:absolute; bottom:20%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 6px; box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-third-form .sunlight {
  position:absolute; top:16%; left:30%; right:30%; bottom:45%; background: linear-gradient(135deg, rgba(255,255,230,0.4) 0%, transparent 80%); animation: df3-sun 9s ease-in-out infinite alternate;
}
.scn-defence-of-streams-third-form .cloud-outside {
  position:absolute; top:20%; left:34%; width:40px; height:10px; background: rgba(255,255,255,0.3); border-radius: 50%; filter: blur(3px); animation: df3-cloud 25s linear infinite;
}

@keyframes df3-river {
  0% { opacity:0.7; background-position: 0 0; }
  50% { opacity:1; background-position: 0 4px; }
  100% { opacity:0.8; background-position: 0 0; }
}
@keyframes df3-fig {
  0% { transform:translate(0,0) rotate(-2deg); }
  50% { transform:translate(2px,-1px) rotate(1deg); }
  100% { transform:translate(0,0) rotate(-1deg); }
}
@keyframes df3-sun {
  0% { opacity:0.3; transform:scale(1); }
  50% { opacity:0.7; transform:scale(1.03); }
  100% { opacity:0.4; transform:scale(0.98); }
}
@keyframes df3-cloud {
  0% { transform:translateX(0); }
  100% { transform:translateX(60px); opacity:0.5; }
}

/* defence-of-streams-third-form-communications (df4) */
.scn-defence-of-streams-third-form-communications {
  background:
    linear-gradient(180deg, #d0c8b8 0%, #b8a898 50%, #a09080 100%),
    radial-gradient(ellipse at 50% 30%, #e0d8c8 0%, transparent 70%);
}
.scn-defence-of-streams-third-form-communications .table {
  position:absolute; inset:20% 10% 15% 10%; background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%); border-radius: 12px; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-third-form-communications .map {
  position:absolute; top:25%; left:15%; right:15%; bottom:25%; background: #c8b898; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: df4-map 10s ease-in-out infinite alternate;
}
.scn-defence-of-streams-third-form-communications .marker-a {
  position:absolute; top:40%; left:25%; width:10px; height:10px; background: radial-gradient(circle, #a05030 0%, #702010 100%); border-radius: 50%; box-shadow:0 0 6px 2px rgba(160,80,48,0.5); animation: df4-markerA 5s ease-in-out infinite;
}
.scn-defence-of-streams-third-form-communications .marker-b {
  position:absolute; top:45%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #3060a0 0%, #103070 100%); border-radius: 50%; box-shadow:0 0 6px 2px rgba(48,96,160,0.5); animation: df4-markerB 5s ease-in-out infinite alternate 1s;
}
.scn-defence-of-streams-third-form-communications .comm-line {
  position:absolute; top:42%; left:27%; right:53%; height:2px; background: linear-gradient(90deg, #a05030 0%, #3060a0 100%); transform:rotate(10deg); transform-origin: left center; animation: df4-line 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-third-form-communications .hand {
  position:absolute; top:25%; left:45%; width:24px; height:30px; background: linear-gradient(180deg, #d0a888 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-15deg); animation: df4-hand 7s ease-in-out infinite;
}
.scn-defence-of-streams-third-form-communications .shadow-overhead {
  position:absolute; top:0; left:20%; right:20%; bottom:70%; background: rgba(0,0,0,0.08); border-radius: 50%; filter:blur(20px); animation: df4-shadow 9s ease-in-out infinite alternate;
}

@keyframes df4-map {
  0% { transform:scale(1); }
  50% { transform:scale(1.02) rotate(1deg); }
  100% { transform:scale(0.98) rotate(-1deg); }
}
@keyframes df4-markerA {
  0% { transform:scale(1) translate(0,0); }
  50% { transform:scale(1.1) translate(-2px,-1px); }
  100% { transform:scale(0.9) translate(1px,1px); }
}
@keyframes df4-markerB {
  0% { transform:scale(1) translate(0,0); }
  50% { transform:scale(0.9) translate(2px,2px); }
  100% { transform:scale(1.1) translate(-1px,-1px); }
}
@keyframes df4-line {
  0% { opacity:0.6; transform:rotate(10deg); }
  50% { opacity:1; transform:rotate(15deg); }
  100% { opacity:0.7; transform:rotate(5deg); }
}
@keyframes df4-hand {
  0% { transform:rotate(-15deg) translate(0,0); }
  50% { transform:rotate(-10deg) translate(8px,-4px); }
  100% { transform:rotate(-18deg) translate(-2px,2px); }
}
@keyframes df4-shadow {
  0% { opacity:0.1; transform:scale(1); }
  50% { opacity:0.3; transform:scale(1.1); }
  100% { opacity:0.15; transform:scale(0.9); }
}

.scn-methodicism-title {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-methodicism-title .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a1e 0%, #3a2a1e 100%);
}
.scn-methodicism-title .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: mt-desk 15s ease-in-out infinite;
}
.scn-methodicism-title .book {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  animation: mt-book 8s ease-in-out infinite alternate;
}
.scn-methodicism-title .candle {
  position: absolute; bottom: 26%; left: 55%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-methodicism-title .flame {
  position: absolute; bottom: 56%; left: 55.5%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #ffa060 50%, transparent 100%);
  border-radius: 50%;
  animation: mt-flame 2s ease-in-out infinite alternate;
}
.scn-methodicism-title .quill {
  position: absolute; bottom: 22%; left: 28%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  transform: rotate(30deg); transform-origin: bottom;
  border-radius: 50% 50% 0 0;
  animation: mt-quill 6s ease-in-out infinite;
}
.scn-methodicism-title .window {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 100px;
  background: rgba(20,20,40,.6);
  border: 4px solid #4a3a2e;
  border-radius: 4%;
  box-shadow: inset 0 0 40px rgba(255,255,255,.05);
  animation: mt-window 12s ease-in-out infinite alternate;
}
.scn-methodicism-title .moon {
  position: absolute; top: 20%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e0ff 0%, #a0a0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,160,208,.3);
  animation: mt-moon 20s linear infinite;
}
@keyframes mt-desk {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-1px); }
}
@keyframes mt-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes mt-flame {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1) scaleX(.9); }
  100% { opacity: .8; transform: scaleY(.95); }
}
@keyframes mt-quill {
  0%, 100% { transform: rotate(30deg); }
  50% { transform: rotate(28deg) translateY(-1px); }
}
@keyframes mt-window {
  0% { opacity: .5; box-shadow: inset 0 0 30px rgba(255,255,255,.02); }
  50% { opacity: .7; box-shadow: inset 0 0 60px rgba(255,255,255,.05); }
  100% { opacity: .6; box-shadow: inset 0 0 40px rgba(255,255,255,.03); }
}
@keyframes mt-moon {
  0% { transform: translateX(0); }
  50% { transform: translateX(15px); }
  100% { transform: translateX(0); }
}

.scn-law-principle-rule-definitions {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a2e 0%, transparent 70%);
}
.scn-law-principle-rule-definitions .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a1e 0%, #1a0a0a 100%);
}
.scn-law-principle-rule-definitions .shelf {
  position: absolute; top: 30%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: lp-shelf 15s ease-in-out infinite alternate;
}
.scn-law-principle-rule-definitions .book-a {
  position: absolute; top: 20%; left: 15%; width: 20px; height: 60px;
  background: linear-gradient(90deg, #4a3a2e 0%, #6a4a3a 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  animation: lp-book 8s ease-in-out infinite alternate;
}
.scn-law-principle-rule-definitions .book-b {
  position: absolute; top: 22%; left: 25%; width: 18px; height: 55px;
  background: linear-gradient(90deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 2px;
  transform: rotate(1deg);
  animation: lp-book 9s ease-in-out infinite alternate-reverse;
}
.scn-law-principle-rule-definitions .book-c {
  position: absolute; top: 21%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(90deg, #6a5a4e 0%, #4a3a2e 100%);
  border-radius: 2px;
  transform: rotate(-1deg);
  animation: lp-book 7s ease-in-out infinite alternate;
}
.scn-law-principle-rule-definitions .lamp {
  position: absolute; bottom: 30%; left: 70%; width: 15px; height: 45px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 10% 10% 30% 30%;
}
.scn-law-principle-rule-definitions .lamp-glow {
  position: absolute; bottom: 45%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: lp-glow 3s ease-in-out infinite alternate;
}
.scn-law-principle-rule-definitions .scroll {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: scaleX(.8);
  animation: lp-scroll 12s ease-in-out infinite;
}
.scn-law-principle-rule-definitions .shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 5px;
  background: rgba(0,0,0,.3);
  filter: blur(4px);
  animation: lp-shadow 6s ease-in-out infinite;
}
@keyframes lp-shelf {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes lp-book {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes lp-glow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.1); }
  100% { opacity: .6; transform: scale(1.05); }
}
@keyframes lp-scroll {
  0%, 100% { transform: scaleX(.8) translateY(0); }
  50% { transform: scaleX(.85) translateY(-2px); }
}
@keyframes lp-shadow {
  0%, 100% { opacity: .3; transform: scaleY(1); }
  50% { opacity: .5; transform: scaleY(1.2); }
}

.scn-principle-objective-subjective-maxim {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-principle-objective-subjective-maxim .bg-floor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 100%);
}
.scn-principle-objective-subjective-maxim .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  animation: ps-table 12s ease-in-out infinite alternate;
}
.scn-principle-objective-subjective-maxim .book-l {
  position: absolute; bottom: 20%; left: 25%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #4a3a4e 0%, #2a1a2e 100%);
  border-radius: 4%;
  transform: rotate(-8deg);
  animation: ps-book 8s ease-in-out infinite alternate;
}
.scn-principle-objective-subjective-maxim .book-r {
  position: absolute; bottom: 22%; left: 48%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #5a4a5e 0%, #3a2a3e 100%);
  border-radius: 4%;
  transform: rotate(6deg);
  animation: ps-book 9s ease-in-out infinite alternate-reverse;
}
.scn-principle-objective-subjective-maxim .center {
  position: absolute; bottom: 25%; left: 43%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #c0a0c0 0%, #806080 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px rgba(192,160,192,.3);
  animation: ps-center 4s ease-in-out infinite alternate;
}
.scn-principle-objective-subjective-maxim .compass {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50%;
  border: 2px solid #6a4a3a;
  animation: ps-compass 6s ease-in-out infinite;
}
.scn-principle-objective-subjective-maxim .divider {
  position: absolute; bottom: 32%; left: 30%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #604030 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: ps-divider 5s ease-in-out infinite alternate;
}
.scn-principle-objective-subjective-maxim .light {
  position: absolute; top: 5%; left: 42%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(200,180,220,.15) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: ps-light 10s ease-in-out infinite alternate;
}
@keyframes ps-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes ps-book {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes ps-center {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(1.02); }
}
@keyframes ps-compass {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
}
@keyframes ps-divider {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(13deg) translateY(-1px); }
  100% { transform: rotate(15deg); }
}
@keyframes ps-light {
  0% { opacity: .3; transform: translateX(0); }
  50% { opacity: .5; transform: translateX(5px); }
  100% { opacity: .4; transform: translateX(-3px); }
}

.scn-rule-definitions {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 70%);
}
.scn-rule-definitions .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #0a0a1a 100%);
}
.scn-rule-definitions .pillar {
  position: absolute; left: 50%; top: 10%; bottom: 15%; width: 40px;
  background: linear-gradient(90deg, #3a3a4e 0%, #4a4a5e 50%, #3a3a4e 100%);
  border-radius: 8px;
  transform: translateX(-50%);
  box-shadow: 0 0 20px rgba(0,0,0,.3);
}
.scn-rule-definitions .shelf-a {
  position: absolute; top: 20%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #5a4a5e 0%, #3a2a3e 100%);
  border-radius: 2px;
  animation: rd-shelf 18s ease-in-out infinite alternate;
}
.scn-rule-definitions .shelf-b {
  position: absolute; top: 40%; left: 25%; right: 25%; height: 8px;
  background: linear-gradient(180deg, #5a4a5e 0%, #3a2a3e 100%);
  border-radius: 2px;
  animation: rd-shelf 20s ease-in-out infinite alternate-reverse;
}
.scn-rule-definitions .books-a {
  position: absolute; top: 16%; left: 25%; width: 100px; height: 30px;
  display: flex; gap: 4px;
  flex-wrap: wrap;
  /* using multiple pseudo-elements or separate divs; but per scene we have only 8 divs total, so use a single div to represent a row of books via gradient stripes */
  background: repeating-linear-gradient(90deg, 
    #4a3a4e 0px, #4a3a4e 10px, 
    #5a4a5e 10px, #5a4a5e 12px, 
    #3a2a3e 12px, #3a2a3e 18px, 
    #6a5a6e 18px, #6a5a6e 24px, 
    #4a3a4e 24px, #4a3a4e 30px);
  border-radius: 2px;
  animation: rd-books 8s ease-in-out infinite alternate;
}
.scn-rule-definitions .books-b {
  position: absolute; top: 36%; left: 30%; width: 120px; height: 30px;
  background: repeating-linear-gradient(90deg,
    #5a4a5e 0px, #5a4a5e 8px,
    #4a3a4e 8px, #4a3a4e 14px,
    #6a5a6e 14px, #6a5a6e 20px,
    #3a2a3e 20px, #3a2a3e 26px,
    #5a4a5e 26px, #5a4a5e 32px);
  border-radius: 2px;
  animation: rd-books 10s ease-in-out infinite alternate-reverse;
}
.scn-rule-definitions .ladder {
  position: absolute; bottom: 15%; left: 15%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #6a5a4e 0%, #4a3a2e 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom;
  box-shadow: 8px 0 0 #4a3a2e, 16px 0 0 #6a5a4e; /* simple rung effect */
  animation: rd-ladder 12s ease-in-out infinite alternate;
}
.scn-rule-definitions .lantern {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(192,160,128,.3);
  animation: rd-lantern 3s ease-in-out infinite alternate;
}
.scn-rule-definitions .glow {
  position: absolute; bottom: 33%; left: 33%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: rd-glow 3s ease-in-out infinite alternate;
}
@keyframes rd-shelf {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes rd-books {
  0% { opacity: .8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: .9; transform: translateY(0); }
}
@keyframes rd-ladder {
  0%, 100% { transform: rotate(5deg); }
  50% { transform: rotate(4deg) translateY(-1px); }
}
@keyframes rd-lantern {
  0% { opacity: .7; transform: rotate(-2deg); }
  50% { opacity: 1; transform: rotate(2deg); }
  100% { opacity: .8; transform: rotate(-1deg); }
}
@keyframes rd-glow {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.15); }
  100% { opacity: .5; transform: scale(1.05); }
}

/* Scene 1: diversity-mental-individualities */
.scn-diversity-mental-individualities {
  background: linear-gradient(180deg, #3a2e2a 0%, #2a1f1a 50%, #1a120e 100%),
              radial-gradient(ellipse at 60% 20%, #4a3a30 0%, transparent 70%);
}
.scn-diversity-mental-individualities .bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f1a 0%, #3a2e2a 100%); opacity:0.6; animation: dv1-fade 15s ease-in-out infinite alternate; }
.scn-diversity-mental-individualities .bookshelf-back { position:absolute; top:5%; left:5%; width:30%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: dv1-sway 22s ease-in-out infinite; }
.scn-diversity-mental-individualities .desk { position:absolute; bottom:10%; left:50%; width:55%; height:18%; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2% 2% 6% 6%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: dv1-breathe 8s ease-in-out infinite; }
.scn-diversity-mental-individualities .book-stack { position:absolute; bottom:24%; left:55%; width:12%; height:14%; background: repeating-linear-gradient(0deg, #704a30 0px, #704a30 4px, #5a3a20 4px, #5a3a20 8px, #8a6034 8px, #8a6034 12px); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: dv1-stack 12s ease-in-out infinite alternate; }
.scn-diversity-mental-individualities .figure-sitting { position:absolute; bottom:20%; left:30%; width:18%; height:28%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: dv1-sit 7s ease-in-out infinite; }
.scn-diversity-mental-individualities .lamp-glow { position:absolute; bottom:30%; left:45%; width:6%; height:6%; background: radial-gradient(circle, #e0b080 0%, #b08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c09050, 0 0 60px 20px rgba(192,144,80,0.4); animation: dv1-glow 4s ease-in-out infinite alternate; }
.scn-diversity-mental-individualities .window-light { position:absolute; top:8%; right:8%; width:20%; height:30%; background: linear-gradient(135deg, rgba(180,160,140,0.4) 0%, rgba(100,80,60,0.1) 100%); border-radius:4%; filter: blur(8px); animation: dv1-winlight 20s ease-in-out infinite; }
.scn-diversity-mental-individualities .dust-particle { position:absolute; top:20%; left:20%; width:2px; height:2px; background: rgba(220,200,180,0.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(220,200,180,0.3); animation: dv1-drift 30s linear infinite; }
.scn-diversity-mental-individualities .dust-2 { left:60%; top:40%; animation-delay: -10s; animation-duration: 40s; }
@keyframes dv1-fade { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes dv1-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.3deg); } }
@keyframes dv1-breathe { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.002); } 100% { transform: translateX(-50%) scale(0.998); } }
@keyframes dv1-stack { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dv1-sit { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes dv1-glow { 0% { box-shadow: 0 0 20px 6px #c09050, 0 0 40px 12px rgba(192,144,80,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 14px #e0b080, 0 0 80px 30px rgba(224,176,128,0.5); opacity:1; } 100% { box-shadow: 0 0 25px 8px #c09050, 0 0 50px 16px rgba(192,144,80,0.35); opacity:0.85; } }
@keyframes dv1-winlight { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes dv1-drift { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(30px, -10px) scale(0.8); } 50% { transform: translate(60px, -20px) scale(1.2); } 75% { transform: translate(90px, -5px) scale(0.9); } 100% { transform: translate(120px, 10px) scale(1); } }

/* Scene 2: second-peculiarity-living-reaction */
.scn-second-peculiarity-living-reaction {
  background: linear-gradient(180deg, #2a2420 0%, #1a1410 50%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 60%, #3a2e28 0%, transparent 80%);
}
.scn-second-peculiarity-living-reaction .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #2a2420 100%); opacity:0.5; animation: dv2-fade 18s ease-in-out infinite alternate; }
.scn-second-peculiarity-living-reaction .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); animation: dv2-floor 20s ease-in-out infinite alternate; }
.scn-second-peculiarity-living-reaction .table { position:absolute; bottom:18%; left:50%; width:50%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%); border-radius:4% 4% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.7); animation: dv2-table 12s ease-in-out infinite; }
.scn-second-peculiarity-living-reaction .figure-left { position:absolute; bottom:15%; left:28%; width:16%; height:30%; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dv2-left 8s ease-in-out infinite; }
.scn-second-peculiarity-living-reaction .figure-right { position:absolute; bottom:15%; right:28%; width:16%; height:30%; background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dv2-right 8s ease-in-out infinite; }
.scn-second-peculiarity-living-reaction .reaction-wave { position:absolute; bottom:22%; left:40%; width:20%; height:12%; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,140,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: dv2-wave 6s ease-in-out infinite; }
.scn-second-peculiarity-living-reaction .candle { position:absolute; bottom:25%; left:49%; width:2%; height:10%; background: linear-gradient(180deg, #c89860 0%, #604020 100%); border-radius:10% 10% 40% 40%; animation: dv2-candle 14s ease-in-out infinite alternate; }
.scn-second-peculiarity-living-reaction .candle-glow { position:absolute; bottom:30%; left:48%; width:6%; height:6%; background: radial-gradient(circle, #e0b080 0%, #c09050 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c09050, 0 0 60px 20px rgba(192,144,80,0.4); animation: dv2-glow 3s ease-in-out infinite alternate; }
@keyframes dv2-fade { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes dv2-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dv2-table { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.003); } 100% { transform: translateX(-50%) scale(0.997); } }
@keyframes dv2-left { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes dv2-right { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-4px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes dv2-wave { 0% { transform: scale(1) opacity(0.3); } 50% { transform: scale(1.4) opacity(0.6); } 100% { transform: scale(0.9) opacity(0.2); } }
@keyframes dv2-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes dv2-glow { 0% { box-shadow: 0 0 20px 6px #c09050, 0 0 40px 12px rgba(192,144,80,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 14px #e0b080, 0 0 80px 30px rgba(224,176,128,0.5); opacity:1; } 100% { box-shadow: 0 0 25px 8px #c09050, 0 0 50px 16px rgba(192,144,80,0.35); opacity:0.85; } }

/* Scene 3: third-peculiarity-uncertainty-of-data */
.scn-third-peculiarity-uncertainty-of-data {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #050508 100%),
              radial-gradient(ellipse at 40% 30%, #1a1a3e 0%, transparent 70%);
}
.scn-third-peculiarity-uncertainty-of-data .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2e 100%); opacity:0.5; animation: dv3-fade 20s ease-in-out infinite alternate; }
.scn-third-peculiarity-uncertainty-of-data .fog-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,220,0.15) 0%, transparent 60%), radial-gradient(ellipse at 70% 30%, rgba(200,200,220,0.1) 0%, transparent 50%); filter: blur(10px); animation: dv3-fog 12s ease-in-out infinite alternate; }
.scn-third-peculiarity-uncertainty-of-data .desk { position:absolute; bottom:10%; left:50%; width:50%; height:15%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1f1a 0%, #0e0a08 100%); border-radius:2% 2% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: dv3-desk 14s ease-in-out infinite; }
.scn-third-peculiarity-uncertainty-of-data .papers { position:absolute; bottom:18%; left:35%; width:30%; height:10%; background: linear-gradient(135deg, #e0d0c0 0%, #c0a890 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); transform: rotate(3deg); animation: dv3-papers 8s ease-in-out infinite alternate; }
.scn-third-peculiarity-uncertainty-of-data .lantern { position:absolute; bottom:22%; left:45%; width:4%; height:12%; background: linear-gradient(180deg, #806040 0%, #403020 100%); border-radius:10% 10% 30% 30%; animation: dv3-lantern 16s ease-in-out infinite; }
.scn-third-peculiarity-uncertainty-of-data .figure-peering { position:absolute; bottom:10%; left:20%; width:18%; height:28%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dv3-peer 9s ease-in-out infinite; }
.scn-third-peculiarity-uncertainty-of-data .data-chart { position:absolute; top:30%; right:15%; width:20%; height:20%; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:8%; clip-path: polygon(0 100%, 100% 100%, 80% 30%, 60% 60%, 40% 20%, 20% 50%); animation: dv3-chart 10s ease-in-out infinite alternate; }
.scn-third-peculiarity-uncertainty-of-data .shadow-arch { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); pointer-events:none; animation: dv3-shadow 18s ease-in-out infinite; }
@keyframes dv3-fade { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes dv3-fog { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(0.98); } }
@keyframes dv3-desk { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.002); } 100% { transform: translateX(-50%) scale(0.998); } }
@keyframes dv3-papers { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } 100% { transform: rotate(1deg) translateX(-1px); } }
@keyframes dv3-lantern { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dv3-peer { 0% { transform: rotate(0deg) translateX(0); } 33% { transform: rotate(3deg) translateX(5px); } 66% { transform: rotate(-2deg) translateX(-3px); } 100% { transform: rotate(1deg) translateX(2px); } }
@keyframes dv3-chart { 0% { clip-path: polygon(0 100%, 100% 100%, 80% 30%, 60% 60%, 40% 20%, 20% 50%); opacity:0.6; } 50% { clip-path: polygon(0 100%, 100% 100%, 90% 40%, 70% 30%, 50% 70%, 30% 10%); opacity:1; } 100% { clip-path: polygon(0 100%, 100% 100%, 75% 50%, 55% 40%, 35% 60%, 15% 30%); opacity:0.7; } }
@keyframes dv3-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }

/* Scene 4: feeble-light-talent-or-chance */
.scn-feeble-light-talent-or-chance {
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 50%, #050302 100%),
              radial-gradient(ellipse at 45% 40%, #2a1a12 0%, transparent 80%);
}
.scn-feeble-light-talent-or-chance .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0806 0%, #1a1210 100%); opacity:0.5; animation: dv4-fade 16s ease-in-out infinite alternate; }
.scn-feeble-light-talent-or-chance .desk { position:absolute; bottom:15%; left:50%; width:55%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius:2% 2% 10% 10%; box-shadow: 0 6px 16px rgba(0,0,0,0.7); animation: dv4-desk 13s ease-in-out infinite; }
.scn-feeble-light-talent-or-chance .hand { position:absolute; bottom:22%; left:45%; width:10%; height:16%; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); transform-origin: bottom left; animation: dv4-hand 6s ease-in-out infinite alternate; }
.scn-feeble-light-talent-or-chance .quill { position:absolute; bottom:24%; left:48%; width:2%; height:18%; background: linear-gradient(180deg, #e0d0b0 0%, #a09070 100%); border-radius: 0 0 50% 50%; transform: rotate(-15deg); transform-origin: bottom center; animation: dv4-quill 5s ease-in-out infinite alternate; }
.scn-feeble-light-talent-or-chance .inkwell { position:absolute; bottom:22%; left:42%; width:4%; height:6%; background: #1a1210; border-radius: 10% 10% 30% 30%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.8); animation: dv4-ink 18s ease-in-out infinite; }
.scn-feeble-light-talent-or-chance .candle { position:absolute; bottom:26%; left:55%; width:2.5%; height:12%; background: linear-gradient(180deg, #c89860 0%, #604020 100%); border-radius:10% 10% 40% 40%; box-shadow: 0 0 4px rgba(255,200,150,0.2); animation: dv4-candle 11s ease-in-out infinite alternate; }
.scn-feeble-light-talent-or-chance .candle-glow { position:absolute; bottom:32%; left:54%; width:10%; height:10%; background: radial-gradient(circle, #e0b080 0%, #b08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 16px #b08040, 0 0 80px 30px rgba(176,128,64,0.3); animation: dv4-glow 4s ease-in-out infinite alternate; }
.scn-feeble-light-talent-or-chance .shadow-pool { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); pointer-events:none; animation: dv4-shadow 20s ease-in-out infinite; }
@keyframes dv4-fade { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes dv4-desk { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.002); } 100% { transform: translateX(-50%) scale(0.998); } }
@keyframes dv4-hand { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes dv4-quill { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-14deg) translateY(1px); } }
@keyframes dv4-ink { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes dv4-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.06); opacity:1; } 100% { transform: scaleY(0.94); opacity:0.85; } }
@keyframes dv4-glow { 0% { box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3); opacity:0.7; } 50% { box-shadow: 0 0 50px 18px #e0b080, 0 0 100px 40px rgba(224,176,128,0.5); opacity:1; } 100% { box-shadow: 0 0 35px 12px #b08040, 0 0 70px 25px rgba(176,128,64,0.35); opacity:0.8; } }
@keyframes dv4-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-polarity-destroyed-by-defence-superiority {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 50%, #3a2a2e 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a3e 0%, transparent 60%);
}
.scn-polarity-destroyed-by-defence-superiority .pd1-desk {
  position:absolute; bottom:10%; left:15%; width:70%; height:20%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: pd1-desk 12s ease-in-out infinite alternate;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-lamp {
  position:absolute; bottom:28%; left:50%; width:16px; height:60px;
  transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a, #4a2a1a);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #8a6a4a;
  animation: pd1-lamp-shake 4s ease-in-out infinite;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-glow {
  position:absolute; bottom:32%; left:50%; width:50px; height:50px;
  transform:translate(-50%, -10%); background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius:50%; filter: blur(8px);
  animation: pd1-glow 3s ease-in-out infinite alternate;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-papers {
  position:absolute; bottom:14%; left:20%; width:40px; height:30px;
  background: #8a7860; border-radius:2px; transform:rotate(-8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: pd1-papers 20s ease-in-out infinite;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-chair {
  position:absolute; bottom:10%; left:8%; width:40px; height:50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: bottom center;
  animation: pd1-chair 8s ease-in-out infinite;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-window {
  position:absolute; top:5%; left:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 4px solid #3a2a1a; border-radius:4px;
  animation: pd1-win-breathe 12s ease-in-out infinite;
}
.scn-polarity-destroyed-by-defence-superiority .pd1-curtain {
  position:absolute; top:5%; left:10%; width:100px; height:110px;
  background: linear-gradient(180deg, rgba(40,20,10,.7), rgba(20,10,5,.8));
  border-radius: 0 0 40% 40%; filter: blur(2px);
  animation: pd1-curtain 15s ease-in-out infinite alternate;
}
@keyframes pd1-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) } }
@keyframes pd1-lamp-shake { 0%,100% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-50%) rotate(2deg) } 75% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes pd1-glow { 0% { opacity:.6; transform:translate(-50%,-10%) scale(1) } 50% { opacity:1; transform:translate(-50%,-12%) scale(1.1) } 100% { opacity:.7; transform:translate(-50%,-10%) scale(.95) } }
@keyframes pd1-papers { 0%,100% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-5deg) translateX(4px) } }
@keyframes pd1-chair { 0%,100% { transform:rotate(0) translateY(0) } 25% { transform:rotate(1deg) translateY(-1px) } 75% { transform:rotate(-1deg) translateY(-1px) } }
@keyframes pd1-win-breathe { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes pd1-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-4px) } }

.scn-weaker-side-puts-up-with-future {
  background:
    linear-gradient(180deg, #1a1a24 0%, #2a1a28 50%, #1a1a2e 100%),
    radial-gradient(circle at 50% 40%, #3a2a3e 0%, transparent 60%);
}
.scn-weaker-side-puts-up-with-future .ws2-shelf {
  position:absolute; top:20%; left:5%; width:90%; height:8px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a10);
  border-radius:2px; box-shadow:0 4px 6px rgba(0,0,0,.4);
  animation: ws2-shelf 20s ease-in-out infinite;
}
.scn-weaker-side-puts-up-with-future .ws2-ladder {
  position:absolute; bottom:5%; left:15%; width:6px; height:70%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  transform:rotate(-10deg); transform-origin: bottom center;
  border-radius:2px; animation: ws2-ladder 18s ease-in-out infinite alternate;
}
.scn-weaker-side-puts-up-with-future .ws2-books {
  position:absolute; top:16%; left:8%; width:80%; height:30px;
  background: repeating-linear-gradient(90deg, #6b5a45 0px, #6b5a45 8px, #7a6850 8px, #7a6850 16px, #5a4730 16px, #5a4730 24px);
  border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: ws2-books 25s ease-in-out infinite;
}
.scn-weaker-side-puts-up-with-future .ws2-candle {
  position:absolute; bottom:15%; left:50%; width:12px; height:30px;
  background: linear-gradient(180deg, #8a7a5a, #5a4a2a);
  border-radius:4px 4px 2px 2px; transform:translateX(-50%);
  animation: ws2-candle 4s ease-in-out infinite alternate;
}
.scn-weaker-side-puts-up-with-future .ws2-flicker {
  position:absolute; bottom:34%; left:50%; width:20px; height:20px;
  transform:translate(-50%, -50%); background: radial-gradient(circle, #d0a060 0%, #a08040 50%, transparent 70%);
  border-radius:50%; filter: blur(6px);
  animation: ws2-flicker 2s ease-in-out infinite;
}
.scn-weaker-side-puts-up-with-future .ws2-shadow {
  position:absolute; bottom:5%; left:30%; width:120px; height:80px;
  background: rgba(0,0,0,.4); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%;
  filter: blur(10px); animation: ws2-shadow 15s ease-in-out infinite alternate;
}
@keyframes ws2-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ws2-ladder { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }
@keyframes ws2-books { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ws2-candle { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }
@keyframes ws2-flicker { 0%,100% { opacity:.5; transform:translate(-50%,-50%) scale(1) } 25% { opacity:.8; transform:translate(-50%,-48%) scale(1.2) } 75% { opacity:.6; transform:translate(-50%,-52%) scale(.9) } }
@keyframes ws2-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) scaleY(.95) } 100% { transform: scaleX(.95) scaleY(1.05) } }

.scn-second-ground-imperfect-knowledge {
  background:
    linear-gradient(180deg, #1a1a28 0%, #2a202a 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a304a 0%, transparent 70%);
}
.scn-second-ground-imperfect-knowledge .sg3-wall {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(255,255,255,.02) 30px, rgba(255,255,255,.02) 31px);
  animation: sg3-wall 30s ease-in-out infinite;
}
.scn-second-ground-imperfect-knowledge .sg3-map {
  position:absolute; top:10%; left:20%; width:60%; height:40%;
  background: linear-gradient(135deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius:4px; border:2px solid #4a3a2a;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: sg3-map 25s ease-in-out infinite alternate;
}
.scn-second-ground-imperfect-knowledge .sg3-pin {
  position:absolute; top:35%; left:45%; width:6px; height:10px;
  background: linear-gradient(180deg, #b85030, #802810);
  border-radius: 50% 50% 30% 30%; transform:translate(-50%,-100%);
  box-shadow: 0 0 6px 2px rgba(200,80,40,.4);
  animation: sg3-pin 8s ease-in-out infinite;
}
.scn-second-ground-imperfect-knowledge .sg3-candle {
  position:absolute; bottom:15%; left:50%; width:10px; height:25px;
  background: linear-gradient(180deg, #8a7a5a, #5a4a2a);
  border-radius:3px; transform:translateX(-50%);
  animation: sg3-candle 5s ease-in-out infinite;
}
.scn-second-ground-imperfect-knowledge .sg3-wick {
  position:absolute; bottom:30%; left:50%; width:2px; height:8px;
  background: #1a1a1a; transform:translateX(-50%);
  animation: sg3-wick 2s ease-in-out infinite;
}
.scn-second-ground-imperfect-knowledge .sg3-table {
  position:absolute; bottom:5%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.5);
  animation: sg3-table 20s ease-in-out infinite;
}
@keyframes sg3-wall { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes sg3-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes sg3-pin { 0%,100% { transform:translate(-50%,-100%) rotate(0) } 25% { transform:translate(-50%,-100%) rotate(5deg) translateY(-2px) } 75% { transform:translate(-50%,-100%) rotate(-5deg) translateY(-2px) } }
@keyframes sg3-candle { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes sg3-wick { 0%,100% { opacity:.3; transform:translateX(-50%) } 50% { opacity:.8; transform:translateX(-50%) translateY(-2px) } }
@keyframes sg3-table { 0% { box-shadow: 0 6px 10px rgba(0,0,0,.5) } 50% { box-shadow: 0 8px 14px rgba(0,0,0,.6) } 100% { box-shadow: 0 6px 10px rgba(0,0,0,.5) } }

.scn-overestimate-enemy-power {
  background:
    linear-gradient(180deg, #0a0a1e 0%, #1a1020 40%, #0a0a1a 100%),
    radial-gradient(circle at 50% 50%, #2a203a 0%, transparent 70%);
}
.scn-overestimate-enemy-power .oe4-tent {
  position:absolute; bottom:0; left:15%; width:70%; height:70%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: oe4-tent 30s ease-in-out infinite alternate;
}
.scn-overestimate-enemy-power .oe4-table {
  position:absolute; bottom:10%; left:20%; width:60%; height:12%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a10);
  border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: oe4-table 15s ease-in-out infinite;
}
.scn-overestimate-enemy-power .oe4-map {
  position:absolute; bottom:12%; left:25%; width:50%; height:20%;
  background: linear-gradient(135deg, #c8b89a 0%, #9a8a6a 100%);
  border-radius:2px; transform: rotate(-4deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: oe4-map 20s ease-in-out infinite;
}
.scn-overestimate-enemy-power .oe4-lantern {
  position:absolute; bottom:20%; left:45%; width:10px; height:16px;
  background: linear-gradient(180deg, #7a6a4a, #4a3a2a);
  border-radius: 2px 2px 4px 4px; transform:translateX(-50%);
  animation: oe4-lantern 4s ease-in-out infinite alternate;
}
.scn-overestimate-enemy-power .oe4-halo {
  position:absolute; bottom:22%; left:45%; width:60px; height:60px;
  transform:translate(-50%, -30%); background: radial-gradient(circle, #d0b060 0%, #a08840 40%, transparent 70%);
  border-radius:50%; filter: blur(10px);
  animation: oe4-halo 3s ease-in-out infinite alternate;
}
.scn-overestimate-enemy-power .oe4-figure {
  position:absolute; bottom:12%; left:55%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: oe4-figure 6s ease-in-out infinite;
}
.scn-overestimate-enemy-power .oe4-flask {
  position:absolute; bottom:14%; left:60%; width:8px; height:14px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 0 0 4px 4px / 50% 50% 4px 4px;
  animation: oe4-flask 10s ease-in-out infinite;
}
@keyframes oe4-tent { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-3px) } 100% { transform: scaleY(.98) translateY(0) } }
@keyframes oe4-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes oe4-map { 0% { transform: rotate(-4deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(-6deg) translateX(-3px) } }
@keyframes oe4-lantern { 0% { transform:translateX(-50%) rotate(0) } 50% { transform:translateX(-50%) rotate(3deg) } 100% { transform:translateX(-50%) rotate(-3deg) } }
@keyframes oe4-halo { 0% { opacity:.4; transform:translate(-50%,-30%) scale(1) } 50% { opacity:.8; transform:translate(-50%,-30%) scale(1.1) } 100% { opacity:.5; transform:translate(-50%,-30%) scale(.95) } }
@keyframes oe4-figure { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(0) translateX(5px) } 75% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes oe4-flask { 0%,100% { transform: rotate(0) } 50% { transform: rotate(5deg) } }

/* defence-of-inundations-dutch-line (calm, bright-interior) */
.scn-defence-of-inundations-dutch-line {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b88c 40%, #b0855a 100%),
    radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 60%);
}
.scn-defence-of-inundations-dutch-line .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #ede0c8 0%, #d0b898 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-defence-of-inundations-dutch-line .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #6b4c2e 0%, #8b6a44 100%);
  border-radius: 30% 20% 0 0 / 10% 8% 0 0;
}
.scn-defence-of-inundations-dutch-line .window {
  position: absolute; top: 12%; left: 55%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  border: 6px solid #8b6a44; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 30px rgba(255,220,180,0.3);
  animation: sdl-window-light 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-dutch-line .map {
  position: absolute; bottom: 38%; left: 20%; width: 30%; height: 22%;
  background: linear-gradient(135deg, #e6d4b0 0%, #cbb089 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
  animation: sdl-map-shadow 12s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-dutch-line .candle {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d09050 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sdl-candle-flicker 3s ease-in-out infinite;
}
.scn-defence-of-inundations-dutch-line .candle::before {
  content: ''; position: absolute; top: -8px; left: -3px; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: sdl-candle-glow 2s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-dutch-line .chair {
  position: absolute; bottom: 30%; right: 25%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-defence-of-inundations-dutch-line .flag {
  position: absolute; top: 10%; left: 28%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #b87878 0%, #8a5858 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  transform-origin: left center;
  animation: sdl-flag-wave 6s ease-in-out infinite alternate;
}
@keyframes sdl-window-light {
  0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 30px rgba(255,220,180,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.6), 0 0 50px rgba(255,240,200,0.5); }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px rgba(255,255,220,0.5), 0 0 35px rgba(255,230,190,0.4); }
}
@keyframes sdl-map-shadow {
  0% { transform: rotate(-5deg) translateY(0); box-shadow: 4px 4px 8px rgba(0,0,0,0.2); }
  50% { transform: rotate(-4deg) translateY(-1px); box-shadow: 6px 6px 12px rgba(0,0,0,0.15); }
  100% { transform: rotate(-6deg) translateY(0); box-shadow: 3px 3px 10px rgba(0,0,0,0.25); }
}
@keyframes sdl-candle-flicker {
  0% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(1.02) translateY(-0.5px); }
  50% { transform: scaleY(0.98) translateY(0.5px); }
  75% { transform: scaleY(1.01) translateY(-0.3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes sdl-candle-glow {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.9; transform: scale(1.05); }
}
@keyframes sdl-flag-wave {
  0% { transform: rotate(-5deg) scaleX(1); }
  25% { transform: rotate(2deg) scaleX(1.02); }
  50% { transform: rotate(-3deg) scaleX(0.98); }
  75% { transform: rotate(4deg) scaleX(1.01); }
  100% { transform: rotate(-2deg) scaleX(1); }
}

/* defence-of-inundations-1787-failure (tense, overcast) */
.scn-defence-of-inundations-1787-failure {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 70%);
}
.scn-defence-of-inundations-1787-failure .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #6a6a7a 40%, #4a4a5a 100%);
  animation: sff-sky-pulse 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-failure .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  animation: sff-water-churn 6s linear infinite;
}
.scn-defence-of-inundations-1787-failure .dike-broken {
  position: absolute; bottom: 40%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(0% 20%, 30% 0%, 60% 30%, 100% 0%, 100% 100%, 0% 100%);
  animation: sff-dike-shake 0.8s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-failure .figure {
  position: absolute; bottom: 42%; left: 20%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sff-figure-run 1.2s steps(4) infinite;
}
.scn-defence-of-inundations-1787-failure .cloud-dark {
  position: absolute; top: 5%; left: -10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #2a2a3a 100%);
  border-radius: 50%; filter: blur(8px);
  animation: sff-cloud-sweep 20s linear infinite;
}
.scn-defence-of-inundations-1787-failure .wave {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #3a5a5a 0%, #4a6a6a 50%, #3a5a5a 100%);
  border-radius: 50%;
  animation: sff-wave-move 4s ease-in-out infinite alternate;
}
@keyframes sff-sky-pulse {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1); }
  100% { opacity: 0.7; filter: brightness(0.85); }
}
@keyframes sff-water-churn {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.01); }
  50% { transform: translateY(0) scaleY(0.99); }
  75% { transform: translateY(1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sff-dike-shake {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sff-figure-run {
  0% { transform: translateX(0) rotate(-5deg) scaleX(1); }
  25% { transform: translateX(8px) rotate(5deg) scaleX(0.95); }
  50% { transform: translateX(16px) rotate(-5deg) scaleX(1); }
  75% { transform: translateX(24px) rotate(5deg) scaleX(0.95); }
  100% { transform: translateX(32px) rotate(-5deg) scaleX(1); }
}
@keyframes sff-cloud-sweep {
  0% { transform: translateX(-20%) scaleX(1); }
  50% { transform: translateX(50%) scaleX(1.05); }
  100% { transform: translateX(120%) scaleX(0.95); }
}
@keyframes sff-wave-move {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(3px) scaleY(1.1); opacity: 0.8; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.6; }
}

/* defence-of-inundations-1672-weakness (calm, bright-interior) */
.scn-defence-of-inundations-1672-weakness {
  background: 
    linear-gradient(180deg, #cdb38c 0%, #b09060 40%, #8a6a40 100%),
    radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 50%);
}
.scn-defence-of-inundations-1672-weakness .wall-cracked {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #b8a080 0%, #a08868 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 80% 95%, 60% 100%, 40% 92%, 20% 98%, 0% 100%);
}
.scn-defence-of-inundations-1672-weakness .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #5a3a22 0%, #7a5a3a 100%);
  border-radius: 40% 30% 0 0 / 15% 10% 0 0;
}
.scn-defence-of-inundations-1672-weakness .cannon-empty {
  position: absolute; bottom: 28%; left: 15%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: swk-cannon-sway 8s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1672-weakness .figure-slump {
  position: absolute; bottom: 28%; left: 60%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: swk-figure-slump 6s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1672-weakness .window-dim {
  position: absolute; top: 14%; left: 60%; width: 18%; height: 26%;
  background: linear-gradient(180deg, #6a8a9a 0%, #8aaaba 100%);
  border: 5px solid #6a4a2a; border-radius: 3px;
  opacity: 0.6; box-shadow: inset 0 0 15px rgba(200,200,200,0.3);
  animation: swk-window-fade 12s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1672-weakness .dust {
  position: absolute; top: 50%; left: 10%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: swk-dust-drift 15s linear infinite;
}
@keyframes swk-cannon-sway {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(1px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes swk-figure-slump {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes swk-window-fade {
  0% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(200,200,200,0.3); }
  50% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(220,220,220,0.4); }
  100% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(180,180,180,0.2); }
}
@keyframes swk-dust-drift {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.6; }
  50% { transform: translate(80px, -30px) scale(1.5); opacity: 0.2; }
  90% { opacity: 0.6; }
  100% { transform: translate(160px, -60px) scale(2); opacity: 0; }
}

/* defence-of-inundations-1787-different (tense, overcast) */
.scn-defence-of-inundations-1787-different {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%);
}
.scn-defence-of-inundations-1787-different .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 50%, #4a4a5a 100%);
  animation: sdd-sky-drive 10s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-different .water-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  animation: sdd-water-sway 7s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-different .dike {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: sdd-dike-tremor 0.5s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-different .fortress {
  position: absolute; bottom: 30%; left: 60%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: sdd-fortress-flicker 4s ease-in-out infinite alternate;
}
.scn-defence-of-inundations-1787-different .soldier {
  position: absolute; bottom: 36%; left: 48%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: sdd-soldier-stand 3s ease-in-out infinite;
}
.scn-defence-of-inundations-1787-different .cloud-roll {
  position: absolute; top: 8%; left: -15%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 50%, #3a3a4a 100%);
  border-radius: 50%; filter: blur(6px);
  animation: sdd-cloud-roll 25s linear infinite;
}
.scn-defence-of-inundations-1787-different .ripple {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sdd-ripple-expand 6s ease-out infinite;
  animation-delay: 0s;
}
.scn-defence-of-inundations-1787-different .ripple:nth-child(7) {
  left: 70%;
  animation-delay: -3s;
}
@keyframes sdd-sky-drive {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes sdd-water-sway {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(1px) scaleX(0.99); }
}
@keyframes sdd-dike-tremor {
  0% { transform: translateX(0); }
  25% { transform: translateX(1px); }
  75% { transform: translateX(-1px); }
  100% { transform: translateX(0); }
}
@keyframes sdd-fortress-flicker {
  0% { filter: brightness(0.8); opacity: 0.7; }
  50% { filter: brightness(1); opacity: 1; }
  100% { filter: brightness(0.9); opacity: 0.8; }
}
@keyframes sdd-soldier-stand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-0.5px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sdd-cloud-roll {
  0% { transform: translateX(-20%) scaleX(1); }
  50% { transform: translateX(40%) scaleX(1.05); }
  100% { transform: translateX(100%) scaleX(0.95); }
}
@keyframes sdd-ripple-expand {
  0% { transform: scale(0); opacity: 0.8; }
  50% { transform: scale(3); opacity: 0.3; }
  100% { transform: scale(5); opacity: 0; }
}

/* scene: brief-memoir-1814-walmoden */
.scn-brief-memoir-1814-walmoden { background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%), radial-gradient(ellipse at 50% 100%, #4a3030 0%, transparent 70%); }
.scn-brief-memoir-1814-walmoden .bg-room { inset:0; background: radial-gradient(ellipse at 60% 30%, rgba(200,160,100,.15) 0%, transparent 50%); }
.scn-brief-memoir-1814-walmoden .desk { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.6); }
.scn-brief-memoir-1814-walmoden .map { position:absolute; bottom:18%; left:30%; width:35%; height:12%; background: #6a5a3a; border-radius: 2px; transform-origin: center; animation: bml-map 6s ease-in-out infinite; }
.scn-brief-memoir-1814-walmoden .candle { position:absolute; bottom:15%; left:25%; width:6px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #a08040 100%); border-radius:2px; box-shadow: 0 0 10px 4px rgba(200,140,60,.5); animation: bml-candle 3s ease-in-out infinite alternate; }
.scn-brief-memoir-1814-walmoden .figure { position:absolute; bottom:10%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bml-figure 4s ease-in-out infinite; }
.scn-brief-memoir-1814-walmoden .book { position:absolute; bottom:18%; left:65%; width:25px; height:18px; background: #4a3a2a; border-radius: 2px; transform: rotate(-5deg); animation: bml-book 8s ease-in-out infinite; }
@keyframes bml-map { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes bml-candle { 0% { opacity:.7; box-shadow: 0 0 6px 2px rgba(200,140,60,.3); } 50% { opacity:1; box-shadow: 0 0 14px 6px rgba(200,140,60,.7); } 100% { opacity:.8; box-shadow: 0 0 8px 3px rgba(200,140,60,.4); } }
@keyframes bml-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bml-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* scene: brief-memoir-after-peace-rhine */
.scn-brief-memoir-after-peace-rhine { background: linear-gradient(180deg, #2e221c 0%, #12100e 100%), radial-gradient(ellipse at 30% 40%, #3a2a20 0%, transparent 60%); }
.scn-brief-memoir-after-peace-rhine .bg-wall { inset:0; background: linear-gradient(90deg, #2a1e18 0%, #1e1410 100%); }
.scn-brief-memoir-after-peace-rhine .window { position:absolute; left:10%; top:20%; width:30%; height:50%; background: linear-gradient(180deg, #1a2030 0%, #2a3a4a 100%); border: 4px solid #4a3020; box-sizing: border-box; border-radius: 4px; overflow: hidden; }
.scn-brief-memoir-after-peace-rhine .river { position:absolute; left:10%; top:45%; width:30%; height:25%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%); border-radius: 4px; transform-origin: left; animation: bpr-river 10s ease-in-out infinite alternate; }
.scn-brief-memoir-after-peace-rhine .desk { position:absolute; bottom:10%; right:10%; width:40%; height:20%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 4px; box-shadow: -4px 0 10px rgba(0,0,0,.5); }
.scn-brief-memoir-after-peace-rhine .figure { position:absolute; bottom:15%; right:25%; width:25px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bpr-figure 5s ease-in-out infinite; }
.scn-brief-memoir-after-peace-rhine .lamp { position:absolute; bottom:20%; right:40%; width:8px; height:16px; background: #c09850; border-radius: 2px 2px 4px 4px; box-shadow: 0 0 12px 6px rgba(200,140,60,.5); animation: bpr-lamp 3s ease-in-out infinite alternate; }
@keyframes bpr-river { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(1); opacity:.8; } }
@keyframes bpr-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bpr-lamp { 0% { opacity:.7; box-shadow: 0 0 8px 3px rgba(200,140,60,.3); } 50% { opacity:1; box-shadow: 0 0 18px 8px rgba(200,140,60,.7); } 100% { opacity:.8; box-shadow: 0 0 10px 4px rgba(200,140,60,.4); } }

/* scene: brief-memoir-brandt-memoirs */
.scn-brief-memoir-brandt-memoirs { background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%), radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%); }
.scn-brief-memoir-brandt-memoirs .bg-room { inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0) 0%, rgba(0,0,0,.3) 100%); }
.scn-brief-memoir-brandt-memoirs .table { position:absolute; bottom:20%; left:50%; width:60%; height:40%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #6a5030 0%, #4a3820 100%); border-radius: 50%; box-shadow: 0 8px 20px rgba(0,0,0,.7); }
.scn-brief-memoir-brandt-memoirs .figure-left { position:absolute; bottom:18%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: bmm-fig 6s ease-in-out infinite; }
.scn-brief-memoir-brandt-memoirs .figure-right { position:absolute; bottom:18%; right:35%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: bmm-fig 7s ease-in-out infinite reverse; }
.scn-brief-memoir-brandt-memoirs .candle-center { position:absolute; bottom:35%; left:50%; width:8px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #e0b060 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 14px 6px rgba(200,140,60,.5); animation: bmm-candle 3s ease-in-out infinite alternate; }
.scn-brief-memoir-brandt-memoirs .plate-left { position:absolute; bottom:27%; left:42%; width:30px; height:8px; background: #8a7050; border-radius: 50%; transform: rotate(-15deg); animation: bmm-plate 8s ease-in-out infinite; }
.scn-brief-memoir-brandt-memoirs .plate-right { position:absolute; bottom:27%; right:42%; width:30px; height:8px; background: #8a7050; border-radius: 50%; transform: rotate(15deg); animation: bmm-plate 8s ease-in-out infinite reverse; }
@keyframes bmm-fig { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(2px); } }
@keyframes bmm-candle { 0% { opacity:.7; box-shadow: 0 0 8px 3px rgba(200,140,60,.3); height:18px; } 50% { opacity:1; box-shadow: 0 0 16px 7px rgba(200,140,60,.7); height:22px; } 100% { opacity:.8; box-shadow: 0 0 10px 4px rgba(200,140,60,.4); height:20px; } }
@keyframes bmm-plate { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-13deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }

/* scene: brief-memoir-brandt-anecdote-theology */
.scn-brief-memoir-brandt-anecdote-theology { background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%); }
.scn-brief-memoir-brandt-anecdote-theology .bg-room { inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 100%); }
.scn-brief-memoir-brandt-anecdote-theology .pulpit { position:absolute; bottom:25%; left:50%; width:20%; height:30%; transform: translateX(-50%); background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.7); }
.scn-brief-memoir-brandt-anecdote-theology .preacher { position:absolute; bottom:52%; left:50%; width:30px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: bma-preacher 4s ease-in-out infinite; }
.scn-brief-memoir-brandt-anecdote-theology .listeners { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #1a1212 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; opacity: .8; }
.scn-brief-memoir-brandt-anecdote-theology .pew { position:absolute; bottom:8%; left:15%; right:15%; height:8%; background: #4a3020; border-radius: 4px; }
.scn-brief-memoir-brandt-anecdote-theology .candle-left { position:absolute; bottom:30%; left:10%; width:6px; height:18px; background: #d4a060; border-radius:2px; box-shadow: 0 0 8px 4px rgba(200,140,60,.4); animation: bma-candle 3s ease-in-out infinite alternate; }
.scn-brief-memoir-brandt-anecdote-theology .candle-right { position:absolute; bottom:30%; right:10%; width:6px; height:18px; background: #d4a060; border-radius:2px; box-shadow: 0 0 8px 4px rgba(200,140,60,.4); animation: bma-candle 3s ease-in-out infinite alternate-reverse; }
@keyframes bma-preacher { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes bma-candle { 0% { opacity:.6; box-shadow: 0 0 4px 2px rgba(200,140,60,.2); } 50% { opacity:1; box-shadow: 0 0 12px 5px rgba(200,140,60,.6); } 100% { opacity:.8; box-shadow: 0 0 6px 3px rgba(200,140,60,.3); } }

/* chief-rock-against-sea */
.scn-chief-rock-against-sea {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #0e0e1a 70%), radial-gradient(ellipse at 30% 20%, #3a3a5e 0%, transparent 60%);
}
.scn-chief-rock-against-sea .bg-deep {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #141428 50%, #1a1a3a 100%);
  animation: cr-bg 12s ease-in-out infinite alternate;
}
.scn-chief-rock-against-sea .window-porthole {
  position:absolute; top:12%; left:50%; width:120px; height:120px;
  transform:translateX(-50%);
  border-radius:50%;
  background: radial-gradient(circle at 50% 40%, #4a5a7a 0%, #1a2a4a 70%, #0a0a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  overflow:hidden;
}
.scn-chief-rock-against-sea .sea {
  position:absolute; top:12%; left:50%; width:120px; height:120px;
  transform:translateX(-50%);
  border-radius:50%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 50%, #0a1a2a 100%);
  mask: radial-gradient(circle at 50% 40%, transparent 30%, #000 31%);
  -webkit-mask: radial-gradient(circle at 50% 40%, transparent 30%, #000 31%);
  animation: cr-sea 8s ease-in-out infinite alternate;
}
.scn-chief-rock-against-sea .rock-silhouette {
  position:absolute; bottom:22%; left:50%; width:80px; height:60px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%);
  border-radius: 40% 50% 30% 50% / 50% 60% 40% 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: cr-rock 18s ease-in-out infinite alternate;
}
.scn-chief-rock-against-sea .candle-light {
  position:absolute; bottom:28%; left:20%; width:8px; height:20px;
  background: linear-gradient(180deg, #cc9966 0%, #8a6644 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 0 6px rgba(200,150,80,.4);
  animation: cr-candle 3s ease-in-out infinite alternate;
}
.scn-chief-rock-against-sea .candle-glow {
  position:absolute; bottom:28%; left:20%; width:40px; height:40px;
  transform:translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,180,80,.2) 30%, transparent 70%);
  border-radius:50%;
  animation: cr-glow 3s ease-in-out infinite alternate;
}
.scn-chief-rock-against-sea .shelf {
  position:absolute; bottom:20%; left:10%; right:10%; height:4px;
  background: linear-gradient(90deg, #3a2a1a, #4a3a2a, #3a2a1a);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  border-radius: 1px;
  animation: cr-shelf 20s ease-in-out infinite;
}
@keyframes cr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cr-sea { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-6px) scale(1.02) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes cr-rock { 0% { transform:translateX(-50%) rotate(-1deg) } 50% { transform:translateX(-48%) rotate(1deg) translateY(-2px) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes cr-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.8; transform:scaleY(1) } }
@keyframes cr-glow { 0% { opacity:.5; transform:translate(-50%,-50%) scale(1) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.3) } 100% { opacity:.6; transform:translate(-50%,-50%) scale(1) } }
@keyframes cr-shelf { 0% { box-shadow:0 4px 8px rgba(0,0,0,.3) } 50% { box-shadow:0 8px 16px rgba(0,0,0,.5) } 100% { box-shadow:0 4px 8px rgba(0,0,0,.3) } }

/* friction-in-war-title */
.scn-friction-in-war-title {
  background: linear-gradient(180deg, #1c1a18 0%, #2c2420 50%, #141210 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-friction-in-war-title .desk-surface {
  position:absolute; bottom:0; left:5%; right:5%; height:50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: fw-desk 20s ease-in-out infinite;
}
.scn-friction-in-war-title .book-left {
  position:absolute; bottom:30%; left:22%; width:80px; height:50px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 60%, #9a8a6a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(-5deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,.5);
  animation: fw-book 12s ease-in-out infinite alternate;
}
.scn-friction-in-war-title .book-right {
  position:absolute; bottom:30%; left:38%; width:80px; height:50px;
  background: linear-gradient(180deg, #e4d4b0 0%, #c8b890 60%, #a89878 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(3deg);
  box-shadow: -2px 4px 10px rgba(0,0,0,.5);
  animation: fw-book 12s ease-in-out infinite alternate-reverse;
}
.scn-friction-in-war-title .quill {
  position:absolute; bottom:40%; left:30%; width:40px; height:4px;
  background: linear-gradient(90deg, #8a7a6a 30%, #c8b8a8 60%, #f0e0d0 100%);
  border-radius: 2px;
  transform: rotate(-20deg) translateY(-12px);
  transform-origin: right center;
  animation: fw-quill 6s ease-in-out infinite alternate;
}
.scn-friction-in-war-title .ink-bottle {
  position:absolute; bottom:22%; left:28%; width:18px; height:24px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 6px 6px 10px 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,.7);
  animation: fw-ink 15s ease-in-out infinite;
}
.scn-friction-in-war-title .candle-flame {
  position:absolute; bottom:36%; left:48%; width:6px; height:18px;
  background: linear-gradient(180deg, #ffd080 0%, #e8b060 50%, #8a6030 100%);
  border-radius: 3px 3px 10px 10px;
  box-shadow: 0 0 12px #ffd080;
  animation: fw-flame 2s ease-in-out infinite alternate;
}
.scn-friction-in-war-title .candle-glow-fw {
  position:absolute; bottom:36%; left:48%; width:60px; height:60px;
  transform:translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,.4) 0%, rgba(200,150,80,.2) 30%, transparent 70%);
  border-radius:50%;
  animation: fw-glow 2s ease-in-out infinite alternate;
}
.scn-friction-in-war-title .scroll {
  position:absolute; bottom:28%; left:55%; width:30px; height:40px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,.4);
  animation: fw-scroll 24s ease-in-out infinite alternate;
}
@keyframes fw-desk { 0% { box-shadow:inset 0 10px 30px rgba(0,0,0,.6) } 50% { box-shadow:inset 0 14px 40px rgba(0,0,0,.7) } 100% { box-shadow:inset 0 10px 30px rgba(0,0,0,.6) } }
@keyframes fw-book { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes fw-quill { 0% { transform:rotate(-20deg) translateY(-12px) } 50% { transform:rotate(-15deg) translateY(-16px) } 100% { transform:rotate(-20deg) translateY(-12px) } }
@keyframes fw-ink { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes fw-flame { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.15); opacity:1 } 100% { transform:scaleY(.96); opacity:.85 } }
@keyframes fw-glow { 0% { transform:translate(-50%,-50%) scale(1); opacity:.5 } 50% { transform:translate(-50%,-50%) scale(1.2); opacity:.8 } 100% { transform:translate(-50%,-50%) scale(1); opacity:.5 } }
@keyframes fw-scroll { 0% { transform:rotate(-10deg) } 50% { transform:rotate(-6deg) translateY(-2px) } 100% { transform:rotate(-10deg) } }

/* everything-simple-difficult */
.scn-everything-simple-difficult {
  background: linear-gradient(180deg, #1e1c18 0%, #2e2822 40%, #161410 70%), radial-gradient(ellipse at 60% 30%, #3a2e22 0%, transparent 60%);
}
.scn-everything-simple-difficult .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a2420 0%, #1e1a16 100%);
  animation: sd-wall 18s ease-in-out infinite alternate;
}
.scn-everything-simple-difficult .table {
  position:absolute; bottom:0; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #1a100a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: sd-table 30s ease-in-out infinite;
}
.scn-everything-simple-difficult .map-paper {
  position:absolute; bottom:28%; left:15%; width:90px; height:50px;
  background: linear-gradient(135deg, #d8c8a8 0%, #c8b898 40%, #b8a888 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 2px 4px 12px rgba(0,0,0,.5);
  animation: sd-map 20s ease-in-out infinite alternate;
}
.scn-everything-simple-difficult .lantern-body {
  position:absolute; bottom:30%; left:55%; width:20px; height:30px;
  background: linear-gradient(180deg, #c8a868 0%, #a88848 50%, #806830 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 0 10px rgba(200,160,80,.4);
  animation: sd-lantern 4s ease-in-out infinite alternate;
}
.scn-everything-simple-difficult .lantern-glow {
  position:absolute; bottom:30%; left:55%; width:60px; height:60px;
  transform:translate(-30%, -30%);
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, rgba(200,150,80,.2) 30%, transparent 70%);
  border-radius:50%;
  animation: sd-glow 4s ease-in-out infinite alternate;
}
.scn-everything-simple-difficult .hand-silhouette {
  position:absolute; bottom:25%; left:30%; width:30px; height:20px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-20deg) translateY(-10px);
  transform-origin: bottom center;
  animation: sd-hand 8s ease-in-out infinite alternate;
}
.scn-everything-simple-difficult .chair-back {
  position:absolute; bottom:22%; left:70%; width:40px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: -2px 4px 10px rgba(0,0,0,.6);
  animation: sd-chair 15s ease-in-out infinite alternate;
}
@keyframes sd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sd-table { 0% { box-shadow:inset 0 8px 20px rgba(0,0,0,.7) } 50% { box-shadow:inset 0 12px 30px rgba(0,0,0,.8) } 100% { box-shadow:inset 0 8px 20px rgba(0,0,0,.7) } }
@keyframes sd-map { 0% { transform:rotate(2deg) } 50% { transform:rotate(0deg) translateX(2px) } 100% { transform:rotate(2deg) } }
@keyframes sd-lantern { 0% { transform:translateY(0); opacity:.85 } 50% { transform:translateY(-3px); opacity:1 } 100% { transform:translateY(0); opacity:.9 } }
@keyframes sd-glow { 0% { transform:translate(-30%,-30%) scale(1); opacity:.5 } 50% { transform:translate(-30%,-30%) scale(1.2); opacity:.8 } 100% { transform:translate(-30%,-30%) scale(1); opacity:.5 } }
@keyframes sd-hand { 0% { transform:rotate(-20deg) translateY(-10px) } 50% { transform:rotate(-15deg) translateY(-14px) } 100% { transform:rotate(-20deg) translateY(-10px) } }
@keyframes sd-chair { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }

/* military-machine-friction-individuals */
.scn-military-machine-friction-individuals {
  background: linear-gradient(180deg, #1c1a1a 0%, #2a2222 50%, #141212 100%), radial-gradient(ellipse at 40% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-military-machine-friction-individuals .bg-dark {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0e0c0c 0%, #1a1616 50%, #221e1e 100%);
  animation: mm-bg 12s ease-in-out infinite alternate;
}
.scn-military-machine-friction-individuals .gear-large {
  position:absolute; bottom:32%; left:30%; width:70px; height:70px;
  background: repeating-conic-gradient(#4a3a2a 0deg 20deg, #2a1a0a 20deg 40deg);
  border-radius:50%;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
  animation: mm-gear-l 12s linear infinite;
}
.scn-military-machine-friction-individuals .gear-small {
  position:absolute; bottom:40%; left:38%; width:40px; height:40px;
  background: repeating-conic-gradient(#5a4a3a 0deg 30deg, #3a2a1a 30deg 60deg);
  border-radius:50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: mm-gear-s 8s linear infinite reverse;
}
.scn-military-machine-friction-individuals .uniform-hat {
  position:absolute; bottom:32%; left:55%; width:40px; height:20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: mm-hat 10s ease-in-out infinite alternate;
}
.scn-military-machine-friction-individuals .candle-mm {
  position:absolute; bottom:26%; left:20%; width:6px; height:18px;
  background: linear-gradient(180deg, #ccaa77 0%, #8a6644 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 0 8px rgba(200,160,100,.4);
  animation: mm-candle 3s ease-in-out infinite alternate;
}
.scn-military-machine-friction-individuals .candle-glow-mm {
  position:absolute; bottom:26%; left:20%; width:40px; height:40px;
  transform:translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, rgba(200,150,80,.2) 30%, transparent 70%);
  border-radius:50%;
  animation: mm-glow 3s ease-in-out infinite alternate;
}
.scn-military-machine-friction-individuals .desk-mm {
  position:absolute; bottom:0; left:8%; right:8%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.7);
  animation: mm-desk 25s ease-in-out infinite;
}
.scn-military-machine-friction-individuals .medal {
  position:absolute; bottom:34%; left:68%; width:16px; height:24px;
  background: linear-gradient(135deg, #a89870 0%, #887858 50%, #685838 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: mm-medal 18s ease-in-out infinite alternate;
}
@keyframes mm-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mm-gear-l { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }
@keyframes mm-gear-s { 0% { transform:rotate(0deg) } 100% { transform:rotate(-360deg) } }
@keyframes mm-hat { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes mm-candle { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.1); opacity:1 } 100% { transform:scaleY(1); opacity:.85 } }
@keyframes mm-glow { 0% { transform:translate(-50%,-50%) scale(1); opacity:.5 } 50% { transform:translate(-50%,-50%) scale(1.2); opacity:.8 } 100% { transform:translate(-50%,-50%) scale(1); opacity:.5 } }
@keyframes mm-desk { 0% { box-shadow:inset 0 6px 20px rgba(0,0,0,.7) } 50% { box-shadow:inset 0 10px 30px rgba(0,0,0,.8) } 100% { box-shadow:inset 0 6px 20px rgba(0,0,0,.7) } }
@keyframes mm-medal { 0% { transform:rotate(-5deg) } 50% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(-5deg) } }

.scn-slow-person-explanation { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%); }
.scn-slow-person-explanation .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2a1e16 0%, #1a1410 100%); animation: slow-wall 12s ease-in-out infinite alternate; }
.scn-slow-person-explanation .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: slow-floor 8s ease-in-out infinite; }
.scn-slow-person-explanation .table { position:absolute; bottom:30%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: slow-table 6s ease-in-out infinite alternate; }
.scn-slow-person-explanation .candle { position:absolute; bottom:38%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c89060 100%); border-radius: 2px 2px 4px 4px; animation: slow-candle 4s ease-in-out infinite; }
.scn-slow-person-explanation .glow { position:absolute; bottom:38%; left:45%; width:40px; height:40px; transform: translate(-50%, -50%); background: radial-gradient(circle, #f0c060 0%, #c08040 40%, transparent 70%); opacity: 0.6; animation: slow-glow 3s ease-in-out infinite alternate; }
.scn-slow-person-explanation .figure { position:absolute; bottom:32%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slow-figure 5s ease-in-out infinite; }
.scn-slow-person-explanation .shadow { position:absolute; bottom:30%; left:32%; width:30px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: slow-shadow 5s ease-in-out infinite; }
@keyframes slow-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes slow-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateY(2px) } 100% { transform: scaleY(1) } }
@keyframes slow-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes slow-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes slow-glow { 0% { opacity:0.4; transform: translate(-50%, -50%) scale(0.95); } 50% { opacity:0.7; transform: translate(-50%, -50%) scale(1.05); } 100% { opacity:0.5; transform: translate(-50%, -50%) scale(1); } }
@keyframes slow-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes slow-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

.scn-suspension-appears-absurd { background: linear-gradient(180deg, #161210 0%, #221a14 50%, #161210 100%), radial-gradient(ellipse at 50% 80%, #1a1410 0%, transparent 60%); }
.scn-suspension-appears-absurd .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1410 0%, transparent 100%); animation: sus-wall 10s ease-in-out infinite alternate; }
.scn-suspension-appears-absurd .floor-bg { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0e0a08 0%, #080604 100%); border-radius: 10% 10% 0 0; }
.scn-suspension-appears-absurd .clock-body { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: sus-body 6s ease-in-out infinite; }
.scn-suspension-appears-absurd .pendulum { position:absolute; bottom:30%; left:50%; width:6px; height:70px; background: #4a3a2a; transform-origin: top center; border-radius: 2px; animation: sus-pendulum 2s ease-in-out infinite alternate; }
.scn-suspension-appears-absurd .pendulum-glow { position:absolute; bottom:30%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #f0c060 0%, transparent 70%); transform: translate(-50%, 40px); animation: sus-glow 2s ease-in-out infinite alternate; }
.scn-suspension-appears-absurd .dust { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,200,0.1) 0%, transparent 100%); animation: sus-dust 15s linear infinite; }
@keyframes sus-wall { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes sus-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes sus-pendulum { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes sus-glow { 0% { opacity:0.3; transform: translate(-50%, 40px) scale(0.8); } 50% { opacity:0.6; transform: translate(-50%, 40px) scale(1.1); } 100% { opacity:0.4; transform: translate(-50%, 40px) scale(0.9); } }
@keyframes sus-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:0.3; } 80% { opacity:0.1; } 100% { transform: translate(60px, -30px) scale(1.5); opacity:0; } }

.scn-only-one-cause-suspension { background: linear-gradient(180deg, #1a1410 0%, #221a14 50%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #2a1e16 0%, transparent 70%); }
.scn-only-one-cause-suspension .bg-deep { position:absolute; inset:0; background: linear-gradient(90deg, #0e0a08 0%, #161210 100%); animation: only-bg 8s ease-in-out infinite alternate; }
.scn-only-one-cause-suspension .door-frame { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:100px; height:150px; background: #2a1e16; border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-only-one-cause-suspension .door { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:90px; height:140px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e16 100%); border: 2px solid #4a3a2a; border-radius: 2px; animation: only-door 6s ease-in-out infinite; }
.scn-only-one-cause-suspension .handle { position:absolute; bottom:50%; left:50%; margin-left:30px; width:8px; height:16px; background: #c8b080; border-radius: 2px; animation: only-handle 4s ease-in-out infinite alternate; }
.scn-only-one-cause-suspension .figure-still { position:absolute; bottom:25%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: only-figure 10s ease-in-out infinite; }
.scn-only-one-cause-suspension .light-shaft { position:absolute; top:10%; left:45%; width:10%; height:80%; background: linear-gradient(180deg, rgba(200,170,120,0.15) 0%, transparent 100%); transform: skewX(-5deg); animation: only-shaft 12s ease-in-out infinite alternate; }
@keyframes only-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes only-door { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.98) } }
@keyframes only-handle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes only-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes only-shaft { 0% { opacity:0.1; transform: skewX(-5deg) scaleY(0.9); } 50% { opacity:0.3; transform: skewX(-5deg) scaleY(1); } 100% { opacity:0.15; transform: skewX(-5deg) scaleY(0.95); } }

.scn-equilibrium-of-forces-no-suspension { background: linear-gradient(180deg, #1a1410 0%, #221a14 50%, #1a1410 100%), radial-gradient(ellipse at 50% 100%, #2a1e16 0%, transparent 70%); }
.scn-equilibrium-of-forces-no-suspension .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #1a1410 0%, #0e0a08 100%); animation: equi-bg 10s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .scale-base { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: #3a2a1a; border-radius: 4px; }
.scn-equilibrium-of-forces-no-suspension .beam { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:120px; height:6px; background: #4a3a2a; border-radius: 2px; transform-origin: center; animation: equi-beam 4s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .pan-left { position:absolute; bottom:30%; left:calc(50% - 60px); width:40px; height:10px; background: #3a2a1a; border-radius: 4px; transform-origin: top center; animation: equi-pan-left 4s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .pan-right { position:absolute; bottom:30%; right:calc(50% - 60px); width:40px; height:10px; background: #3a2a1a; border-radius: 4px; transform-origin: top center; animation: equi-pan-right 4s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .weight-left { position:absolute; bottom:32%; left:calc(50% - 70px); width:16px; height:16px; background: #5a4a3a; border-radius: 50%; animation: equi-weight-left 4s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .weight-right { position:absolute; bottom:32%; right:calc(50% - 70px); width:16px; height:16px; background: #5a4a3a; border-radius: 50%; animation: equi-weight-right 4s ease-in-out infinite alternate; }
.scn-equilibrium-of-forces-no-suspension .glow-balanced { position:absolute; top:30%; left:50%; transform:translateX(-50%); width:30px; height:30px; background: radial-gradient(circle, #f0c060 0%, transparent 70%); opacity:0.2; animation: equi-glow 6s ease-in-out infinite alternate; }
@keyframes equi-bg { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.85; transform: scale(1); } }
@keyframes equi-beam { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes equi-pan-left { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes equi-pan-right { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes equi-weight-left { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes equi-weight-right { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes equi-glow { 0% { opacity:0.1; transform: translateX(-50%) scale(0.8); } 50% { opacity:0.3; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.15; transform: translateX(-50%) scale(0.9); } }

/* intro-author-scientific-form */
.scn-intro-author-scientific-form {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 80%), radial-gradient(circle at 50% 30%, #1a1a0e 0%, transparent 70%);
}
.scn-intro-author-scientific-form .wall {
  position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a2015 0%, #1a150e 100%);
  animation: sf-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-intro-author-scientific-form .bookshelf {
  position:absolute; left:5%; top:18%; width:15%; height:45%; background: linear-gradient(90deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: sf-shelf 20s ease-in-out infinite alternate;
}
.scn-intro-author-scientific-form .desk {
  position:absolute; bottom:15%; left:20%; right:15%; height:22%; background: linear-gradient(180deg, #4a2a15 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: sf-desk 14s ease-in-out infinite alternate;
}
.scn-intro-author-scientific-form .lamp {
  position:absolute; bottom:35%; left:22%; width:12%; height:30%; background: radial-gradient(circle at 50% 30%, #d0b080 0%, #805020 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,160,100,.3);
  animation: sf-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-intro-author-scientific-form .globe {
  position:absolute; bottom:30%; left:40%; width:14%; padding-bottom:14%; background: radial-gradient(circle at 30% 40%, #6a8a4a 0%, #3a5a2a 50%, #2a3a1a 100%);
  border-radius: 50%; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: sf-globe-rotate 30s linear infinite;
}
.scn-intro-author-scientific-form .paper {
  position:absolute; bottom:18%; left:30%; width:20%; height:8%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  transform: rotate(-2deg); border-radius: 2px;
  animation: sf-paper-float 8s ease-in-out infinite;
}
.scn-intro-author-scientific-form .inkwell {
  position:absolute; bottom:19%; left:65%; width:6%; height:8%; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: sf-ink-sway 9s ease-in-out infinite;
}
.scn-intro-author-scientific-form .shadow-figure {
  position:absolute; bottom:25%; right:10%; width:12%; height:40%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sf-figure-breathe 5s ease-in-out infinite alternate;
}
@keyframes sf-wall-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sf-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes sf-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes sf-lamp-glow { 0% { box-shadow: 0 0 20px 5px rgba(200,160,100,.2); } 50% { box-shadow: 0 0 35px 12px rgba(200,160,100,.4); } 100% { box-shadow: 0 0 25px 8px rgba(200,160,100,.25); } }
@keyframes sf-globe-rotate { 0% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 50% { transform: rotate(180deg); } 75% { transform: rotate(270deg); } 100% { transform: rotate(360deg); } }
@keyframes sf-paper-float { 0% { transform: rotate(-2deg) translate(0,0); } 50% { transform: rotate(1deg) translate(-2px,-3px); } 100% { transform: rotate(-2deg) translate(0,0); } }
@keyframes sf-ink-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes sf-figure-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(0.99) translateY(1px); } }

/* intro-author-philosophy-experience */
.scn-intro-author-philosophy-experience {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%);
}
.scn-intro-author-philosophy-experience .wall {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a3040 0%, #1a1520 100%);
  animation: pe-wall-shimmer 15s ease-in-out infinite alternate;
}
.scn-intro-author-philosophy-experience .window {
  position:absolute; left:10%; top:15%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, #2a2a3a 70%);
  border-radius: 4px 4px 10px 10px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: pe-window-fade 20s ease-in-out infinite alternate;
}
.scn-intro-author-philosophy-experience .desk {
  position:absolute; bottom:18%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3a30 0%, #2a201a 100%);
  border-radius: 6px; box-shadow: 0 -6px 12px rgba(0,0,0,.5);
  animation: pe-desk-rock 18s ease-in-out infinite alternate;
}
.scn-intro-author-philosophy-experience .candle {
  position:absolute; bottom:35%; left:25%; width:6%; height:12%; background: linear-gradient(180deg, #c0a060 0%, #804020 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,160,80,.3);
  animation: pe-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-intro-author-philosophy-experience .book {
  position:absolute; bottom:22%; left:45%; width:18%; height:10%; background: linear-gradient(90deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 2px; transform: rotate(2deg);
  animation: pe-book-open 12s ease-in-out infinite;
}
.scn-intro-author-philosophy-experience .wheat-stalk {
  position:absolute; bottom:30%; left:65%; width:4%; height:25%; background: linear-gradient(180deg, #8a7a3a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0; transform-origin: bottom center;
  animation: pe-wheat-sway 6s ease-in-out infinite alternate;
}
.scn-intro-author-philosophy-experience .figure-profile {
  position:absolute; bottom:22%; right:18%; width:15%; height:35%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pe-figure-read 8s ease-in-out infinite alternate;
}
@keyframes pe-wall-shimmer { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pe-window-fade { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes pe-desk-rock { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.3deg); } }
@keyframes pe-candle-flicker { 0% { transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(200,160,80,.2); } 50% { transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(200,160,80,.4); } 100% { transform: scaleY(0.95); box-shadow: 0 0 18px 5px rgba(200,160,80,.25); } }
@keyframes pe-book-open { 0% { transform: rotate(2deg) translate(0,0); } 50% { transform: rotate(4deg) translate(2px,-1px); } 100% { transform: rotate(2deg) translate(0,0); } }
@keyframes pe-wheat-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes pe-figure-read { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }

/* intro-author-lichtenberg-fire */
.scn-intro-author-lichtenberg-fire {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a150e 80%), radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 60%);
}
.scn-intro-author-lichtenberg-fire .wall {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  animation: fi-wall-flicker 12s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-fire .fireplace {
  position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%);
  border-radius: 20% 20% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: fi-hearth-glow 5s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-fire .flame-flame1 {
  position:absolute; bottom:30%; left:40%; width:8%; height:18%; background: radial-gradient(ellipse at 50% 50%, #d06020 0%, #a04010 40%, #802010 80%);
  border-radius: 50% 50% 20% 20%; filter: blur(3px);
  animation: fi-flame1 2.5s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-fire .flame-flame2 {
  position:absolute; bottom:30%; left:52%; width:6%; height:14%; background: radial-gradient(ellipse at 50% 50%, #d06020 0%, #a04010 40%, #802010 80%);
  border-radius: 50% 50% 20% 20%; filter: blur(3px); animation-delay: 0.5s;
  animation: fi-flame2 2s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-fire .mantle {
  position:absolute; bottom:50%; left:28%; right:28%; height:6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fi-mantle-settle 20s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-fire .figure-gesture {
  position:absolute; bottom:22%; left:15%; width:14%; height:35%; background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: fi-figure-gesture 3s ease-in-out infinite;
}
.scn-intro-author-lichtenberg-fire .clock-mantle {
  position:absolute; bottom:52%; left:45%; width:12%; height:14%; background: radial-gradient(circle at 50% 40%, #c0a060 0%, #806040 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: fi-clock-swing 4s ease-in-out infinite;
}
@keyframes fi-wall-flicker { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes fi-hearth-glow { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.8); } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,.5); } }
@keyframes fi-flame1 { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-8px) scale(1.1); opacity:1; } 100% { transform: translateY(2px) scale(0.9); opacity:0.8; } }
@keyframes fi-flame2 { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-6px) scale(1.05); opacity:1; } 100% { transform: translateY(1px) scale(0.95); opacity:0.85; } }
@keyframes fi-mantle-settle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fi-figure-gesture { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(4px); } 50% { transform: rotate(-3deg) translateX(-2px); } 75% { transform: rotate(4deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes fi-clock-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* intro-author-lichtenberg-extract */
.scn-intro-author-lichtenberg-extract {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e05 80%), radial-gradient(circle at 50% 30%, #3a1a1a 0%, transparent 70%);
}
.scn-intro-author-lichtenberg-extract .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2015 0%, #1a0e08 100%);
  animation: ex-wall-rattle 15s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-extract .stage {
  position:absolute; bottom:0; left:5%; right:5%; height:70%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 20px 20px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: ex-stage-shift 18s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-extract .house-model {
  position:absolute; bottom:40%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ex-house-shake 2s ease-in-out infinite;
}
.scn-intro-author-lichtenberg-extract .fire-animation {
  position:absolute; bottom:45%; left:42%; width:16%; height:20%; background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #a0461a 40%, #702243 80%);
  border-radius: 50% 50% 20% 20%; filter: blur(4px);
  animation: ex-fire-dance 1.5s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-extract .figure-silly {
  position:absolute; bottom:20%; left:25%; width:14%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ex-figure-silly 2.5s ease-in-out infinite;
}
.scn-intro-author-lichtenberg-extract .bucket {
  position:absolute; bottom:18%; left:38%; width:10%; height:12%; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ex-bucket-tilt 3s ease-in-out infinite alternate;
}
.scn-intro-author-lichtenberg-extract .puddle {
  position:absolute; bottom:12%; left:42%; width:14%; height:4%; background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 60%);
  border-radius: 50%; animation: ex-puddle-shimmer 8s ease-in-out infinite alternate;
}
@keyframes ex-wall-rattle { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes ex-stage-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ex-house-shake { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ex-fire-dance { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.1) translateY(-6px); opacity:1; } 100% { transform: scale(0.95) translateY(2px); opacity:0.8; } }
@keyframes ex-figure-silly { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(8deg) translateX(5px); } 50% { transform: rotate(-6deg) translateX(-3px); } 75% { transform: rotate(5deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ex-bucket-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes ex-puddle-shimmer { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-defence-mountains-small-bodies-advantage {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c9a8 30%, #c4b28a 60%, #b8a07a 100%),
              radial-gradient(ellipse at 60% 50%, rgba(255,235,190,0.4) 0%, transparent 70%);
}
.scn-defence-mountains-small-bodies-advantage .tent-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a87c 40%, #a8986c 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: dmsba-tentpulse 12s ease-in-out infinite;
}
.scn-defence-mountains-small-bodies-advantage .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: dmsba-table 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-small-bodies-advantage .map {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 18%;
  background: radial-gradient(ellipse at 30% 40%, #f0e4c0 0%, #d8c8a0 70%, #b8a47a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,70,30,0.3), 0 2px 8px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: dmsba-mapfloat 10s ease-in-out infinite;
}
.scn-defence-mountains-small-bodies-advantage .lantern {
  position: absolute; top: 30%; left: 68%; width: 20px; height: 24px;
  background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, #804000 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.3);
  animation: dmsba-lantern 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-small-bodies-advantage .soldier1 {
  position: absolute; bottom: 16%; left: 30%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmsba-soldier1 6s ease-in-out infinite;
}
.scn-defence-mountains-small-bodies-advantage .soldier2 {
  position: absolute; bottom: 16%; left: 50%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmsba-soldier2 7s ease-in-out infinite reverse;
}
.scn-defence-mountains-small-bodies-advantage .outside-hill {
  position: absolute; top: 12%; left: 8%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #8a9a6a 0%, #5a6a3a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  opacity: 0.6;
  animation: dmsba-hill 20s ease-in-out infinite alternate;
}
@keyframes dmsba-tentpulse {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dmsba-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dmsba-mapfloat {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes dmsba-lantern {
  0% { box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(255,192,96,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 60px 20px rgba(255,208,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #ffc060, 0 0 50px 15px rgba(255,192,96,0.3); opacity: 0.85; }
}
@keyframes dmsba-soldier1 {
  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 dmsba-soldier2 {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes dmsba-hill {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}

.scn-defence-mountains-strategic-use {
  background: linear-gradient(180deg, #f2e6d4 0%, #e0d0b8 40%, #c8b89c 70%, #b0a084 100%),
              radial-gradient(ellipse at 70% 30%, rgba(230,200,160,0.3) 0%, transparent 60%);
}
.scn-defence-mountains-strategic-use .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c4b49a 0%, #b0a088 60%, #9c8c74 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: dmsu-wall 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-use .map-large {
  position: absolute; top: 12%; left: 12%; right: 12%; bottom: 22%;
  background: radial-gradient(ellipse at 40% 50%, #eee4cc 0%, #cdbea0 70%, #a69478 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(80,50,20,0.2), 0 4px 15px rgba(0,0,0,0.25);
  transform: rotate(-1deg);
  animation: dmsu-map 12s ease-in-out infinite;
}
.scn-defence-mountains-strategic-use .pointer {
  position: absolute; top: 35%; left: 45%; width: 2px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  transform: rotate(30deg);
  transform-origin: bottom center;
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: dmsu-pointer 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-strategic-use .candle {
  position: absolute; bottom: 18%; left: 60%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #f5e6dc 0%, #d8c0a0 40%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #ffd080;
}
.scn-defence-mountains-strategic-use .figure {
  position: absolute; bottom: 10%; left: 28%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmsu-figure 6s ease-in-out infinite;
}
.scn-defence-mountains-strategic-use .pins {
  position: absolute; top: 25%; left: 30%; width: 4px; height: 4px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,85,61,0.5);
  animation: dmsu-pin 1s steps(2) infinite;
}
.scn-defence-mountains-strategic-use .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
@keyframes dmsu-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.88; }
}
@keyframes dmsu-map {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.01); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes dmsu-pointer {
  0% { transform: rotate(28deg); }
  50% { transform: rotate(32deg); }
  100% { transform: rotate(28deg); }
}
@keyframes dmsu-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(4px) rotate(-1deg); }
  66% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmsu-pin {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-defence-mountains-battlefield-unfavourable {
  background: linear-gradient(180deg, #7a8a9a 0%, #4c5a66 40%, #2a3440 70%, #1a2228 100%),
              radial-gradient(ellipse at 50% 60%, rgba(60,70,80,0.4) 0%, transparent 70%);
  filter: contrast(1.1);
}
.scn-defence-mountains-battlefield-unfavourable .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 50%, #3a4a5a 100%);
  animation: dmbfu-sky 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .mountains-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  clip-path: polygon(0 20%, 15% 0, 30% 10%, 50% 0, 70% 15%, 85% 0, 100% 20%, 100% 100%, 0 100%);
  animation: dmbfu-mountback 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .mountains-mid {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  clip-path: polygon(0 30%, 20% 10%, 40% 20%, 60% 0, 80% 25%, 100% 10%, 100% 100%, 0 100%);
  animation: dmbfu-mountmid 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .defenders {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #121820 0%, #080c10 100%);
  clip-path: polygon(10% 100%, 20% 30%, 30% 40%, 40% 20%, 50% 50%, 60% 25%, 70% 45%, 80% 20%, 90% 100%);
  animation: dmbfu-defend 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .attackers {
  position: absolute; bottom: 10%; right: 5%; width: 35%; height: 22%;
  background: linear-gradient(180deg, #1a2028 0%, #0c1014 100%);
  clip-path: polygon(0 100%, 10% 40%, 20% 20%, 30% 50%, 40% 15%, 50% 45%, 60% 25%, 70% 55%, 80% 30%, 90% 60%, 100% 0, 100% 100%);
  animation: dmbfu-attack 3s ease-in-out infinite;
}
.scn-defence-mountains-battlefield-unfavourable .flag-attacker {
  position: absolute; bottom: 22%; right: 30%; width: 2px; height: 28px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  transform: rotate(10deg);
  transform-origin: bottom center;
}
.scn-defence-mountains-battlefield-unfavourable .flag-attacker::after {
  content: '';
  position: absolute; top: 0; left: 2px; width: 18px; height: 12px;
  background: linear-gradient(180deg, #a0461a 0%, #702010 100%);
  border-radius: 0 50% 50% 0;
  animation: dmbfu-flagwave 0.8s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .smoke-clouds {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(80,90,100,0.4) 0%, transparent 60%);
  filter: blur(12px);
  animation: dmbfu-smoke 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-battlefield-unfavourable .dust-particles {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: repeating-radial-gradient(circle at 10% 50%, rgba(120,130,140,0.15) 0.5px, transparent 1px);
  background-size: 30px 30px;
  animation: dmbfu-dust 2s linear infinite;
}
@keyframes dmbfu-sky {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes dmbfu-mountback {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes dmbfu-mountmid {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dmbfu-defend {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}
@keyframes dmbfu-attack {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes dmbfu-flagwave {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(15deg); }
}
@keyframes dmbfu-smoke {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(15px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(30px) scale(1.2); opacity: 0.4; }
}
@keyframes dmbfu-dust {
  0% { background-position: 0 0; }
  100% { background-position: 30px 0; }
}

.scn-defence-mountains-common-error {
  background: linear-gradient(180deg, #f7efe0 0%, #ece0cc 40%, #d8c8b0 70%, #c4b49c 100%),
              radial-gradient(ellipse at 40% 50%, rgba(255,240,210,0.5) 0%, transparent 70%);
}
.scn-defence-mountains-common-error .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8b4 0%, #c0b09c 60%, #a89884 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: dmce-wall 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-common-error .desk {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-defence-mountains-common-error .map-cordon {
  position: absolute; bottom: 14%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #f2e6d0 0%, #d8c8a8 70%, #b8a480 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(80,50,20,0.2), 0 3px 10px rgba(0,0,0,0.2);
  transform: rotate(-1deg);
}
.scn-defence-mountains-common-error .map-cordon::after {
  content: '';
  position: absolute; top: 40%; left: 10%; width: 80%; height: 2px;
  background: repeating-linear-gradient(90deg, #c8553d 0px, #c8553d 10px, transparent 10px, transparent 20px);
  border-radius: 1px;
  animation: dmce-cordon 8s ease-in-out infinite;
}
.scn-defence-mountains-common-error .ruler {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 4px;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: dmce-ruler 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-common-error .figure-error {
  position: absolute; bottom: 10%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmce-figure 6s ease-in-out infinite;
}
.scn-defence-mountains-common-error .lantern-error {
  position: absolute; top: 25%; left: 65%; width: 18px; height: 20px;
  background: radial-gradient(circle, #ffea90 0%, #d4a040 60%, #804000 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.3);
  animation: dmce-lantern 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-common-error .scroll {
  position: absolute; bottom: 12%; left: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #f0e4cc 0%, #d8c8a8 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dmce-scroll 8s ease-in-out infinite alternate;
}
@keyframes dmce-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.88; }
}
@keyframes dmce-cordon {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes dmce-ruler {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(10px); }
  100% { transform: rotate(-7deg) translateX(0); }
}
@keyframes dmce-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(-1deg); }
  66% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmce-lantern {
  0% { box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(255,192,96,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 14px #ffd080, 0 0 60px 20px rgba(255,208,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #ffc060, 0 0 50px 15px rgba(255,192,96,0.3); opacity: 0.85; }
}
@keyframes dmce-scroll {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(12deg) scaleY(1.03); }
  100% { transform: rotate(18deg) scaleY(1); }
}

.scn-modern-war-perfection { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%); }
.scn-modern-war-perfection .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, transparent 40%); opacity:0.6; animation: mwp-fade 8s ease-in-out infinite alternate; }
.scn-modern-war-perfection .bg-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-modern-war-perfection .table { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:70%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,0.7); }
.scn-modern-war-perfection .map { position:absolute; bottom:35%; left:50%; transform:translateX(-50%) rotate(5deg); width:45%; height:20%; background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%); border-radius: 2% 2% 2% 2%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); opacity:0.9; }
.scn-modern-war-perfection .candle { position:absolute; bottom:50%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a07040 100%); border-radius: 4px; transform-origin: bottom center; animation: mwp-candle 3s ease-in-out infinite; }
.scn-modern-war-perfection .shadow-figure { position:absolute; bottom:40%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mwp-figure 6s ease-in-out infinite; }
.scn-modern-war-perfection .glow-orb { position:absolute; bottom:52%; left:32%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius:50%; animation: mwp-glow 3s ease-in-out infinite alternate; }
@keyframes mwp-fade { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes mwp-candle { 0% { transform: scaleY(1); opacity:0.8 } 25% { transform: scaleY(1.05) translateY(-1px); opacity:1 } 75% { transform: scaleY(0.95); opacity:0.7 } 100% { transform: scaleY(1); opacity:0.8 } }
@keyframes mwp-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(-3deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes mwp-glow { 0% { transform: scale(0.8); opacity:0.6 } 100% { transform: scale(1.2); opacity:1 } }

.scn-defensive-can-still-avoid { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a2e 100%), radial-gradient(ellipse at 50% 70%, #3e2a2a 0%, transparent 60%); }
.scn-defensive-can-still-avoid .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #0a0a1a 0%, transparent 70%); animation: dsca-fade 10s ease-in-out infinite alternate; }
.scn-defensive-can-still-avoid .bg-wall { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 10% 10% 0 0; }
.scn-defensive-can-still-avoid .desk { position:absolute; bottom:10%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-defensive-can-still-avoid .lamp { position:absolute; bottom:25%; left:40%; width:10px; height:30px; background: linear-gradient(180deg, #c09860 0%, #806040 100%); border-radius: 5px; transform-origin: bottom center; animation: dsca-lamp 4s ease-in-out infinite; }
.scn-defensive-can-still-avoid .chair { position:absolute; bottom:10%; left:50%; width:40px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(5deg); animation: dsca-chair 7s ease-in-out infinite; }
.scn-defensive-can-still-avoid .briefcase { position:absolute; bottom:13%; left:65%; width:30px; height:15px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 1px 1px 3px rgba(0,0,0,0.6); animation: dsca-brief 9s ease-in-out infinite; }
@keyframes dsca-fade { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes dsca-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes dsca-chair { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes dsca-brief { 0% { transform: scale(1) } 50% { transform: scale(0.95) } 100% { transform: scale(1) } }

.scn-compulsion-to-give-battle { background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 40%, #3a1a10 100%), radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%); }
.scn-compulsion-to-give-battle .bg-deep { position:absolute; inset:0; background: linear-gradient(90deg, #0a0505 0%, transparent 50%, #0a0505 100%); animation: ctgb-shade 4s ease-in-out infinite alternate; }
.scn-compulsion-to-give-battle .pillar-left { position:absolute; bottom:0; left:10%; width:15%; height:90%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 5px 0 10px rgba(0,0,0,0.8); }
.scn-compulsion-to-give-battle .pillar-right { position:absolute; bottom:0; right:10%; width:15%; height:90%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a1a 100%); border-radius: 10px; box-shadow: -5px 0 10px rgba(0,0,0,0.8); }
.scn-compulsion-to-give-battle .table { position:absolute; bottom:15%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5px; box-shadow: 0 -10px 20px rgba(0,0,0,0.7); animation: ctgb-table 2s ease-in-out infinite; }
.scn-compulsion-to-give-battle .map { position:absolute; bottom:30%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #b09870 0%, #907050 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: inset 0 0 5px rgba(0,0,0,0.4); animation: ctgb-map 5s ease-in-out infinite; }
.scn-compulsion-to-give-battle .commander { position:absolute; bottom:35%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ctgb-figure 3s ease-in-out infinite; }
.scn-compulsion-to-give-battle .dagger { position:absolute; bottom:45%; left:50%; width:4px; height:15px; background: linear-gradient(180deg, #c0a0a0 0%, #807060 100%); border-radius: 1px; transform: rotate(30deg) translateX(5px); animation: ctgb-dagger 1.5s ease-in-out infinite; }
.scn-compulsion-to-give-battle .torch-glow { position:absolute; bottom:50%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #ff8040 0%, #ff4000 40%, transparent 70%); border-radius:50%; animation: ctgb-torch 2s ease-in-out infinite alternate; }
@keyframes ctgb-shade { 0% { opacity:0.3 } 100% { opacity:0.7 } }
@keyframes ctgb-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ctgb-map { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes ctgb-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ctgb-dagger { 0% { transform: rotate(30deg) translateX(5px) } 50% { transform: rotate(35deg) translateX(8px) } 100% { transform: rotate(30deg) translateX(5px) } }
@keyframes ctgb-torch { 0% { transform: scale(0.9); opacity:0.7 } 100% { transform: scale(1.2); opacity:1 } }

.scn-pliability-retreat-ease { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a2a1a 100%), radial-gradient(ellipse at 50% 80%, #2a3a2a 0%, transparent 70%); }
.scn-pliability-retreat-ease .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #0a0a1a 0%, transparent 60%); animation: pre-fade 12s ease-in-out infinite alternate; }
.scn-pliability-retreat-ease .tent-wall { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(0deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-pliability-retreat-ease .bedroll { position:absolute; bottom:10%; left:20%; width:40%; height:15%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: pre-bedroll 8s ease-in-out infinite; }
.scn-pliability-retreat-ease .lantern { position:absolute; bottom:30%; left:70%; width:10px; height:20px; background: linear-gradient(180deg, #c0a080 0%, #907060 100%); border-radius: 3px; transform-origin: bottom center; animation: pre-lantern 6s ease-in-out infinite; }
.scn-pliability-retreat-ease .helmet { position:absolute; bottom:20%; left:35%; width:25px; height:15px; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: rotate(-10deg); box-shadow: 1px 1px 3px rgba(0,0,0,0.4); animation: pre-helmet 10s ease-in-out infinite; }
.scn-pliability-retreat-ease .soldier-sleep { position:absolute; bottom:10%; left:50%; width:30px; height:20px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%; transform: rotate(5deg); animation: pre-sleep 7s ease-in-out infinite; }
@keyframes pre-fade { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes pre-bedroll { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pre-lantern { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes pre-helmet { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes pre-sleep { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }

/* defence-mountains-small-post-example */
.scn-defence-mountains-small-post-example {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8e0d0 40%, #d0c8b8 100%),
              radial-gradient(ellipse at 70% 40%, #fff8f0 0%, transparent 60%);
}
.scn-defence-mountains-small-post-example .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b8d4e8 0%, #e0ecf8 100%);
  animation: sp-sky 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-small-post-example .mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: sp-mountains 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-small-post-example .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 40% 20% 0 0;
}
.scn-defence-mountains-small-post-example .post {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sp-post 6s ease-in-out infinite;
}
.scn-defence-mountains-small-post-example .window-frame {
  position: absolute; inset: 8% 8% 20% 8%;
  border: 8px solid #5a4a3a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.3), 0 0 20px rgba(0,0,0,0.2);
  animation: sp-window 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-small-post-example .figure {
  position: absolute; bottom: 22%; left: 20%; width: 20px; 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: sp-figure 5s ease-in-out infinite;
}
.scn-defence-mountains-small-post-example .table {
  position: absolute; bottom: 8%; left: 12%; right: 12%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: sp-table 8s ease-in-out infinite alternate;
}
@keyframes sp-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sp-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sp-post { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes sp-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,240,0.2), 0 0 15px rgba(0,0,0,0.1); } 50% { box-shadow: inset 0 0 25px rgba(255,255,240,0.4), 0 0 25px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 0 18px rgba(255,255,240,0.3), 0 0 18px rgba(0,0,0,0.15); } }
@keyframes sp-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-table { 0% { opacity: 0.95; } 100% { opacity: 1; } }

/* defence-mountains-line-of-posts */
.scn-defence-mountains-line-of-posts {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #b8b0a0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 50%);
}
.scn-defence-mountains-line-of-posts .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #c8dce8 100%);
  animation: lp-sky 16s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-of-posts .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 70% 30% 0 0 / 90% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: lp-mountains 25s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-of-posts .ridge {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 5%;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: lp-ridge 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-line-of-posts .post-1,
.scn-defence-mountains-line-of-posts .post-2,
.scn-defence-mountains-line-of-posts .post-3 {
  position: absolute; bottom: 30%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 3px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: lp-post 4s ease-in-out infinite;
}
.scn-defence-mountains-line-of-posts .post-1 { left: 20%; animation-delay: 0s; }
.scn-defence-mountains-line-of-posts .post-2 { left: 45%; width: 20px; height: 30px; animation-delay: -1.3s; }
.scn-defence-mountains-line-of-posts .post-3 { left: 70%; width: 16px; height: 26px; animation-delay: -2.7s; }
.scn-defence-mountains-line-of-posts .foreground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
@keyframes lp-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lp-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes lp-ridge { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes lp-post { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(0.5deg); } 60% { transform: translateY(0) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* defence-mountains-cordon-illusion */
.scn-defence-mountains-cordon-illusion {
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 50%, #a09080 100%),
              radial-gradient(ellipse at 30% 50%, #fff8f0 0%, transparent 40%);
}
.scn-defence-mountains-cordon-illusion .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 100%);
  animation: ci-wall 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-cordon-illusion .map {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 40%;
  background: linear-gradient(135deg, #e8d8c0 0%, #c8b8a0 50%, #b0a080 100%);
  border: 4px solid #5a4a3a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: ci-map 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-cordon-illusion .hand {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ci-hand 1.5s ease-in-out infinite;
}
.scn-defence-mountains-cordon-illusion .shadow-stripe {
  position: absolute; top: 0; left: 50%; bottom: 0; width: 6px;
  background: rgba(0,0,0,0.2);
  transform: skewX(-15deg);
  filter: blur(3px);
  animation: ci-shadow 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-cordon-illusion .candle {
  position: absolute; bottom: 18%; left: 58%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: ci-candle 0.8s ease-in-out infinite alternate;
}
.scn-defence-mountains-cordon-illusion .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -3px 8px rgba(0,0,0,0.3);
}
.scn-defence-mountains-cordon-illusion .pin {
  position: absolute; top: 35%; left: 50%; width: 8px; height: 8px;
  background: #a0461a; /* terracotta, not crimson */
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(160,70,26,0.5);
  animation: ci-pin 1s ease-in-out infinite alternate;
}
@keyframes ci-wall { 0% { opacity: 0.95; } 100% { opacity: 1; } }
@keyframes ci-map { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1); transform: scale(1); } 50% { box-shadow: inset 0 0 35px rgba(0,0,0,0.3); transform: scale(1.02); } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.2); transform: scale(1); } }
@keyframes ci-hand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(5deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 75% { transform: translateY(-6px) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ci-shadow { 0% { transform: skewX(-15deg) translateX(0); opacity: 0.15; } 50% { transform: skewX(-15deg) translateX(20px); opacity: 0.3; } 100% { transform: skewX(-15deg) translateX(0); opacity: 0.2; } }
@keyframes ci-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; box-shadow: 0 0 15px 4px rgba(255,200,100,0.4); } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; box-shadow: 0 0 25px 8px rgba(255,200,100,0.7); } 100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; box-shadow: 0 0 18px 5px rgba(255,200,100,0.5); } }
@keyframes ci-pin { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(0.8); } }

/* defence-mountains-tactical-improvement */
.scn-defence-mountains-tactical-improvement {
  background: linear-gradient(180deg, #f0ebe0 0%, #e0d8c8 60%, #c8c0b0 100%),
              radial-gradient(ellipse at 60% 40%, #fff8f0 0%, transparent 50%);
}
.scn-defence-mountains-tactical-improvement .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #d8d0c0 100%);
}
.scn-defence-mountains-tactical-improvement .bookshelf {
  position: absolute; top: 10%; left: 10%; width: 25%; bottom: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ti-shelf 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-tactical-improvement .books {
  position: absolute; top: 13%; left: 12%; width: 21%; bottom: 33%;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 8px, #6a5a4a 8px, #6a5a4a 16px, #7a6a5a 16px, #7a6a5a 24px, #5a4a3a 24px, #5a4a3a 32px);
  border-radius: 2px;
  filter: brightness(1.1);
  animation: ti-books 20s linear infinite;
}
.scn-defence-mountains-tactical-improvement .globe {
  position: absolute; top: 20%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle at 35% 35%, #b8a888 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3), inset 0 -6px 10px rgba(0,0,0,0.2);
  animation: ti-globe 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-tactical-improvement .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-defence-mountains-tactical-improvement .open-book {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d0c0 50%, #c8b8a0 100%);
  border-radius: 2px;
  transform: perspective(200px) rotateX(15deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: ti-book 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-tactical-improvement .curtain {
  position: absolute; top: 0; right: 5%; width: 30%; bottom: 0;
  background: linear-gradient(180deg, #e0d0c0 0%, #c8b8a8 50%, #b0a090 100%);
  border-radius: 0 0 0 20px;
  filter: drop-shadow(-4px 0 8px rgba(0,0,0,0.15));
  animation: ti-curtain 10s ease-in-out infinite alternate;
}
@keyframes ti-shelf { 0% { opacity: 0.9; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.02); } }
@keyframes ti-books { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }
@keyframes ti-globe { 0% { transform: rotateY(0deg) scale(1); } 50% { transform: rotateY(30deg) scale(1.02); } 100% { transform: rotateY(0deg) scale(1); } }
@keyframes ti-book { 0% { transform: perspective(200px) rotateX(15deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(15deg) translateY(0); } }
@keyframes ti-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }

/* knowledge-through-special-talent */
.scn-knowledge-through-special-talent {
  background: linear-gradient(180deg, #1c1a2a 0%, #2a2535 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 60%);
}
.scn-knowledge-through-special-talent .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2535 0%, #1c1a2a 100%);
  animation: kt-wall 20s ease-in-out infinite alternate;
}
.scn-knowledge-through-special-talent .window {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 50%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a3a 100%);
  border: 2px solid #3a2a2a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: kt-window 10s ease-in-out infinite;
}
.scn-knowledge-through-special-talent .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: kt-desk 8s ease-in-out infinite alternate;
}
.scn-knowledge-through-special-talent .books {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: kt-books 12s ease-in-out infinite;
}
.scn-knowledge-through-special-talent .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-knowledge-through-special-talent .flame {
  position: absolute; bottom: 57%; left: 45%; width: 10px; height: 15px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc80 0%, #ff8800 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,136,0,0.6);
  animation: kt-flame 3s ease-in-out infinite alternate;
}
.scn-knowledge-through-special-talent .figure {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kt-figure 6s ease-in-out infinite;
}
.scn-knowledge-through-special-talent .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px);
  animation: kt-shadow 6s ease-in-out infinite;
}
@keyframes kt-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes kt-window { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes kt-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes kt-books { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes kt-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:0.8 } }
@keyframes kt-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kt-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9); opacity:0.3 } 100% { transform: scaleX(1) } }

/* no-great-commander-contracted-mind */
.scn-no-great-commander-contracted-mind {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 100%), radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 70%);
}
.scn-no-great-commander-contracted-mind .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1a2e 100%);
  animation: gc-wall 20s ease-in-out infinite alternate;
}
.scn-no-great-commander-contracted-mind .map {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #c8b080 0%, #a09070 100%);
  border: 1px solid #3a2a1a; border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: gc-map 15s ease-in-out infinite;
}
.scn-no-great-commander-contracted-mind .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: gc-desk 8s ease-in-out infinite alternate;
}
.scn-no-great-commander-contracted-mind .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-no-great-commander-contracted-mind .flame {
  position: absolute; bottom: 57%; left: 45%; width: 10px; height: 15px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc80 0%, #ff8800 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,136,0,0.6);
  animation: gc-flame 3s ease-in-out infinite alternate;
}
.scn-no-great-commander-contracted-mind .figure {
  position: absolute; bottom: 25%; left: 40%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-figure 5s ease-in-out infinite;
}
.scn-no-great-commander-contracted-mind .quill {
  position: absolute; bottom: 45%; left: 45%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
  border-radius: 50%; transform: rotate(15deg);
  animation: gc-quill 4s ease-in-out infinite alternate;
}
.scn-no-great-commander-contracted-mind .inkwell {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 15px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: gc-inkwell 8s ease-in-out infinite;
}
@keyframes gc-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes gc-map { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gc-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gc-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:0.8 } }
@keyframes gc-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gc-quill { 0% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }
@keyframes gc-inkwell { 0%,100% { transform: scale(1) } 50% { transform: scale(0.95) } }

/* knowledge-must-pass-completely-into-mind */
.scn-knowledge-must-pass-completely-into-mind {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 50%);
}
.scn-knowledge-must-pass-completely-into-mind .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, #0a0a1a 100%);
  animation: km-bg 20s ease-in-out infinite;
}
.scn-knowledge-must-pass-completely-into-mind .book {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; transform: rotate(-5deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: km-book 10s ease-in-out infinite alternate;
}
.scn-knowledge-must-pass-completely-into-mind .glow {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 70%);
  opacity: 0.6;
  animation: km-glow 3s ease-in-out infinite alternate;
}
.scn-knowledge-must-pass-completely-into-mind .figure {
  position: absolute; bottom: 25%; left: 30%; 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: km-figure 8s ease-in-out infinite;
}
.scn-knowledge-must-pass-completely-into-mind .particles {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080, transparent);
  border-radius: 50%; filter: blur(1px);
}
.scn-knowledge-must-pass-completely-into-mind .p1 { top: 20%; left: 30%; animation: km-particle1 6s linear infinite; }
.scn-knowledge-must-pass-completely-into-mind .p2 { top: 40%; left: 60%; animation: km-particle2 8s linear infinite; }
.scn-knowledge-must-pass-completely-into-mind .p3 { top: 60%; left: 20%; animation: km-particle3 7s linear infinite; }
@keyframes km-bg { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes km-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes km-glow { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }
@keyframes km-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-6px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes km-particle1 { 0% { transform: translateY(0) scale(1); opacity:0 } 50% { transform: translateY(-30px) scale(1.5); opacity:1 } 100% { transform: translateY(-60px) scale(0.5); opacity:0 } }
@keyframes km-particle2 { 0% { transform: translateY(0) scale(1); opacity:0 } 50% { transform: translateY(-40px) scale(1.3); opacity:0.8 } 100% { transform: translateY(-80px) scale(0.5); opacity:0 } }
@keyframes km-particle3 { 0% { transform: translateY(0) scale(1); opacity:0 } 50% { transform: translateY(-25px) scale(1.4); opacity:0.9 } 100% { transform: translateY(-50px) scale(0.5); opacity:0 } }

/* conclusion-theory-conduct-of-war */
.scn-conclusion-theory-conduct-of-war {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2535 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 60%);
}
.scn-conclusion-theory-conduct-of-war .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2535 0%, #1a1a2e 100%);
  animation: ct-wall 20s ease-in-out infinite alternate;
}
.scn-conclusion-theory-conduct-of-war .shelf {
  position: absolute; top: 25%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ct-shelf 12s ease-in-out infinite;
}
.scn-conclusion-theory-conduct-of-war .scroll {
  position: absolute; top: 35%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  border-radius: 4px; transform-origin: left center;
  animation: ct-scroll 15s ease-in-out infinite;
}
.scn-conclusion-theory-conduct-of-war .candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-conclusion-theory-conduct-of-war .flame {
  position: absolute; bottom: 69%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc80 0%, #ff8800 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 25px 10px rgba(255,136,0,0.5);
  animation: ct-flame 2.5s ease-in-out infinite alternate;
}
.scn-conclusion-theory-conduct-of-war .figure {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-figure 7s ease-in-out infinite;
}
.scn-conclusion-theory-conduct-of-war .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(5px);
  animation: ct-shadow 7s ease-in-out infinite;
}
@keyframes ct-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes ct-shelf { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes ct-scroll { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes ct-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.7 } 50% { transform: scaleY(1.3) scaleX(0.8); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:0.7 } }
@keyframes ct-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ct-shadow { 0% { transform: scaleX(1); opacity:0.6 } 50% { transform: scaleX(0.8); opacity:0.3 } 100% { transform: scaleX(1); opacity:0.6 } }

/* operating-against-flank-cutting-off – tense, dark */
.scn-operating-against-flank-cutting-off {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-operating-against-flank-cutting-off .bg {
  position:absolute; inset:0; background:inherit; z-index:0;
}
.scn-operating-against-flank-cutting-off .figure {
  position:absolute; bottom:30%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ocf-figure 4s ease-in-out infinite alternate;
  z-index:2;
}
.scn-operating-against-flank-cutting-off .lantern {
  position:absolute; bottom:35%; left:42%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd080 0%, #b06030 80%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,.7);
  animation: ocf-lantern 3s ease-in-out infinite alternate;
  z-index:3;
}
.scn-operating-against-flank-cutting-off .map {
  position:absolute; bottom:15%; left:20%; width:50%; height:30%;
  background: linear-gradient(45deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border-radius:4%;
  animation: ocf-map 12s ease-in-out infinite;
  z-index:1;
}
.scn-operating-against-flank-cutting-off .arrow {
  position:absolute; bottom:20%; left:22%; width:40px; height:4px;
  background: #c8a060;
  transform-origin: left center;
  border-radius:2px;
  animation: ocf-arrow 6s ease-in-out infinite;
  z-index:4;
}
.scn-operating-against-flank-cutting-off .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.8) 100%);
  animation: ocf-shadow 8s ease-in-out infinite alternate;
  z-index:5;
}
@keyframes ocf-figure {
  0%{transform:rotate(0) translateY(0);}
  50%{transform:rotate(2deg) translateY(-2px);}
  100%{transform:rotate(-2deg) translateY(0);}
}
@keyframes ocf-lantern {
  0%{box-shadow:0 0 10px 3px rgba(255,208,128,.5);opacity:.8;}
  50%{box-shadow:0 0 30px 10px rgba(255,208,128,.9);opacity:1;}
  100%{box-shadow:0 0 15px 5px rgba(255,208,128,.6);opacity:.85;}
}
@keyframes ocf-map {
  0%{transform:scale(1);}
  50%{transform:scale(1.02);}
  100%{transform:scale(0.98);}
}
@keyframes ocf-arrow {
  0%{transform:translateX(0) rotate(0);}
  50%{transform:translateX(10px) rotate(15deg);}
  100%{transform:translateX(0) rotate(-15deg);}
}
@keyframes ocf-shadow {
  0%{opacity:.6;}
  50%{opacity:.8;}
  100%{opacity:.5;}
}

/* operating-against-flank-intensified-risks – tense, bright-interior */
.scn-operating-against-flank-intensified-risks {
  background:
    linear-gradient(180deg, #f8e8c8 0%, #d8c8a0 40%, #a8a080 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-operating-against-flank-intensified-risks .bg {
  position:absolute; inset:0; background:inherit; z-index:0;
}
.scn-operating-against-flank-intensified-risks .table {
  position:absolute; bottom:25%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%);
  border-radius:2%;
  box-shadow:0 4px 8px rgba(0,0,0,.3);
  z-index:1;
}
.scn-operating-against-flank-intensified-risks .map {
  position:absolute; bottom:30%; left:20%; width:60%; height:20%;
  background: linear-gradient(45deg, #a0a080 0%, #808060 100%);
  border-radius:2%;
  animation: oir-map 10s ease-in-out infinite;
  z-index:2;
}
.scn-operating-against-flank-intensified-risks .figure1,
.scn-operating-against-flank-intensified-risks .figure2 {
  width:18px; height:36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  position:absolute;
  z-index:3;
}
.scn-operating-against-flank-intensified-risks .figure1 {
  bottom:22%; left:30%;
  animation: oir-fig1 6s ease-in-out infinite alternate;
}
.scn-operating-against-flank-intensified-risks .figure2 {
  bottom:22%; left:55%;
  animation: oir-fig2 6s ease-in-out infinite alternate-reverse;
}
.scn-operating-against-flank-intensified-risks .window {
  position:absolute; top:10%; right:5%; width:20%; height:15%;
  background: linear-gradient(180deg, #c0d0e0 0%, #e0f0ff 100%);
  border:2px solid #8a7a6a;
  border-radius:2%;
  box-shadow:inset 0 0 10px rgba(255,255,255,.5);
  animation: oir-window 8s ease-in-out infinite alternate;
  z-index:4;
}
.scn-operating-against-flank-intensified-risks .shadow {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 100%);
  animation: oir-shadow 12s ease-in-out infinite alternate;
  z-index:5;
}
@keyframes oir-map {
  0%{transform:scale(1) rotate(0);}
  50%{transform:scale(1.01) rotate(1deg);}
  100%{transform:scale(0.99) rotate(-1deg);}
}
@keyframes oir-fig1 {
  0%{transform:rotate(0);}
  50%{transform:rotate(3deg);}
  100%{transform:rotate(-3deg);}
}
@keyframes oir-fig2 {
  0%{transform:rotate(0);}
  50%{transform:rotate(-3deg);}
  100%{transform:rotate(3deg);}
}
@keyframes oir-window {
  0%{opacity:.8;box-shadow:inset 0 0 5px rgba(255,255,255,.3);}
  50%{opacity:1;box-shadow:inset 0 0 20px rgba(255,255,255,.8);}
  100%{opacity:.9;box-shadow:inset 0 0 10px rgba(255,255,255,.5);}
}
@keyframes oir-shadow {
  0%{opacity:.3;}
  50%{opacity:.6;}
  100%{opacity:.2;}
}

/* operating-against-flank-defender-advantage – calm, bright-interior */
.scn-operating-against-flank-defender-advantage {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #b8a888 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-operating-against-flank-defender-advantage .bg {
  position:absolute; inset:0; background:inherit; z-index:0;
}
.scn-operating-against-flank-defender-advantage .desk {
  position:absolute; bottom:25%; left:15%; width:70%; height:12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius:2%;
  box-shadow:0 2px 6px rgba(0,0,0,.2);
  z-index:1;
}
.scn-operating-against-flank-defender-advantage .figure {
  position:absolute; bottom:20%; left:40%; width:22px; height:40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oda-figure 10s ease-in-out infinite alternate;
  z-index:2;
}
.scn-operating-against-flank-defender-advantage .globe {
  position:absolute; bottom:28%; left:25%; width:24px; height:24px;
  background: radial-gradient(circle, #4a7a5a 0%, #2a4a3a 100%);
  border-radius:50%;
  box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: oda-globe 20s linear infinite;
  z-index:3;
}
.scn-operating-against-flank-defender-advantage .cup {
  position:absolute; bottom:26%; right:20%; width:12px; height:16px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: oda-cup 15s ease-in-out infinite alternate;
  z-index:4;
}
.scn-operating-against-flank-defender-advantage .books {
  position:absolute; bottom:20%; left:10%; width:20px; height:30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius:2px;
  box-shadow:2px 2px 4px rgba(0,0,0,.2);
  animation: oda-books 12s ease-in-out infinite alternate;
  z-index:3;
}
.scn-operating-against-flank-defender-advantage .window {
  position:absolute; top:10%; left:5%; width:20%; height:25%;
  background: linear-gradient(180deg, #d0e0f0 0%, #e8f4ff 100%);
  border:2px solid #9a8a7a;
  border-radius:2%;
  box-shadow:inset 0 0 10px rgba(255,255,255,.5);
  animation: oda-window 15s ease-in-out infinite alternate;
  z-index:5;
}
@keyframes oda-figure {
  0%{transform:rotate(0) translateY(0);}
  50%{transform:rotate(1deg) translateY(-2px);}
  100%{transform:rotate(-1deg) translateY(0);}
}
@keyframes oda-globe {
  0%{transform:rotate(0);}
  100%{transform:rotate(360deg);}
}
@keyframes oda-cup {
  0%{transform:translateY(0) rotate(0);}
  50%{transform:translateY(-2px) rotate(5deg);}
  100%{transform:translateY(0) rotate(-5deg);}
}
@keyframes oda-books {
  0%{transform:scale(1) translateY(0);}
  50%{transform:scale(1.02) translateY(-2px);}
  100%{transform:scale(0.98) translateY(0);}
}
@keyframes oda-window {
  0%{opacity:.8;}
  50%{opacity:1;}
  100%{opacity:.9;}
}

/* operating-against-flank-russian-example – calm, bright-interior */
.scn-operating-against-flank-russian-example {
  background:
    linear-gradient(180deg, #e0e8e0 0%, #c0c8b0 50%, #a0a890 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8f0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-operating-against-flank-russian-example .bg {
  position:absolute; inset:0; background:inherit; z-index:0;
}
.scn-operating-against-flank-russian-example .tentfloor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%);
  z-index:1;
}
.scn-operating-against-flank-russian-example .map {
  position:absolute; bottom:20%; left:15%; width:70%; height:30%;
  background: linear-gradient(45deg, #b0a890 0%, #908070 100%);
  border-radius:2%;
  animation: ore-map 14s ease-in-out infinite;
  z-index:2;
}
.scn-operating-against-flank-russian-example .flag {
  position:absolute; top:15%; left:20%; width:4px; height:25px;
  background: #4a3a2a;
  transform-origin: bottom center;
  animation: ore-flag 8s ease-in-out infinite;
  z-index:3;
}
.scn-operating-against-flank-russian-example .flagcloth {
  position:absolute; top:10%; left:18%; width:20px; height:12px;
  background: #6a8a6a;
  border-radius: 0 50% 0 0;
  transform-origin: left center;
  animation: ore-flagcloth 8s ease-in-out infinite;
  z-index:4;
}
.scn-operating-against-flank-russian-example .figure {
  position:absolute; bottom:22%; left:45%; width:20px; height:38px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ore-figure 12s ease-in-out infinite alternate;
  z-index:3;
}
.scn-operating-against-flank-russian-example .light {
  position:absolute; top:0; left:30%; width:40%; height:50%;
  background: radial-gradient(ellipse at 30% 0%, rgba(255,255,200,.6) 0%, transparent 70%);
  animation: ore-light 20s ease-in-out infinite alternate;
  z-index:5;
}
@keyframes ore-map {
  0%{transform:scale(1);}
  50%{transform:scale(1.01);}
  100%{transform:scale(0.99);}
}
@keyframes ore-flag {
  0%,100%{transform:rotate(0);}
  50%{transform:rotate(5deg);}
}
@keyframes ore-flagcloth {
  0%,100%{transform:rotate(0) scaleX(1);}
  50%{transform:rotate(5deg) scaleX(0.9);}
}
@keyframes ore-figure {
  0%{transform:translateY(0) rotate(0);}
  50%{transform:translateY(-2px) rotate(2deg);}
  100%{transform:translateY(0) rotate(-2deg);}
}
@keyframes ore-light {
  0%{opacity:.6;}
  50%{opacity:1;}
  100%{opacity:.5;}
}

.scn-experience-calculations {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 50%, #0d0804 100%), radial-gradient(circle at 50% 70%, #8a6a3a 0%, transparent 70%);
}
.scn-experience-calculations .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-experience-calculations .book {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #c8b080, #a08850);
  border-radius: 4px; transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: exp-book 6s ease-in-out infinite;
}
.scn-experience-calculations .candle {
  position: absolute; bottom: 20%; left: 30%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #e8d8b0, #c8b080);
  border-radius: 20% 20% 0 0; box-shadow: 0 0 10px rgba(200,176,128,0.3);
}
.scn-experience-calculations .flame {
  position: absolute; bottom: 58%; left: 30%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #fff4c0 0%, #e8a040 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px #e8a040;
  animation: exp-flame 3s ease-in-out infinite alternate;
}
.scn-experience-calculations .inkwell {
  position: absolute; bottom: 16%; left: 55%; width: 16px; height: 20px;
  background: #2a1a0a; border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-experience-calculations .quill {
  position: absolute; bottom: 20%; left: 57%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0, #a08860);
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
  transform: rotate(15deg);
  animation: exp-quill 8s ease-in-out infinite;
}
.scn-experience-calculations .smoke {
  position: absolute; bottom: 80%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: exp-smoke 12s ease-in-out infinite;
}
@keyframes exp-book { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes exp-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.85 } }
@keyframes exp-quill { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes exp-smoke { 0% { opacity: 0; transform: translateY(0) scale(0.8) } 50% { opacity: 0.4; transform: translateY(-15px) scale(1.2) } 100% { opacity: 0; transform: translateY(-30px) scale(1.5) } }

.scn-item-decision-time-example {
  background: linear-gradient(180deg, #1e1a2a 0%, #0d0a18 50%, #050410 100%), radial-gradient(circle at 30% 50%, #b08040 0%, transparent 60%);
}
.scn-item-decision-time-example .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3020, #1a1008);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-item-decision-time-example .map {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(135deg, #b8a878, #8a7040);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: scale(1.02);
  animation: dec-map 4s ease-in-out infinite;
}
.scn-item-decision-time-example .lantern {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 40px;
  background: #4a3a2a; border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 20px #e8a040;
  animation: dec-lantern 2s ease-in-out infinite alternate;
}
.scn-item-decision-time-example .hand {
  position: absolute; bottom: 16%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: dec-hand 3s ease-in-out infinite;
}
.scn-item-decision-time-example .token {
  position: absolute; bottom: 12%; left: 52%; width: 12px; height: 12px;
  background: #c08040; border-radius: 50%;
  box-shadow: 0 0 10px #c08040;
  animation: dec-token 4s ease-in-out infinite alternate;
}
.scn-item-decision-time-example .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.8));
  pointer-events: none;
  animation: dec-shadow 0.5s ease-in-out infinite alternate;
}
@keyframes dec-map { 0% { transform: scale(1.02) } 50% { transform: scale(1) } 100% { transform: scale(1.02) } }
@keyframes dec-lantern { 0% { box-shadow: 0 0 15px #e8a040; filter: brightness(1) } 50% { box-shadow: 0 0 25px #ffc060; filter: brightness(1.2) } 100% { box-shadow: 0 0 10px #c08020; filter: brightness(0.8) } }
@keyframes dec-hand { 0% { transform: rotate(-10deg) translateY(0) } 25% { transform: rotate(-12deg) translateY(-2px) } 50% { transform: rotate(-8deg) translateY(-1px) } 75% { transform: rotate(-14deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes dec-token { 0% { transform: translateX(0) scale(1); opacity: 0.6 } 50% { transform: translateX(5px) scale(1.1); opacity: 1 } 100% { transform: translateX(0) scale(1); opacity: 0.6 } }
@keyframes dec-shadow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }

.scn-new-forces-vain-sacrifice {
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0a18 50%, #050410 100%), radial-gradient(circle at 50% 60%, #604020 0%, transparent 70%);
}
.scn-new-forces-vain-sacrifice .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2018, #1a1008);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-new-forces-vain-sacrifice .letter {
  position: absolute; bottom: 14%; left: 40%; width: 40px; height: 30px;
  background: #d0c0a0; border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sac-letter 6s ease-in-out infinite;
}
.scn-new-forces-vain-sacrifice .candle {
  position: absolute; bottom: 18%; left: 30%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #e0c8a0, #c0a880);
  border-radius: 20% 20% 0 0;
}
.scn-new-forces-vain-sacrifice .flame {
  position: absolute; bottom: 56%; left: 30%; width: 8px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #d08020 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px #d08020;
  animation: sac-flame 1.5s ease-in-out infinite alternate;
}
.scn-new-forces-vain-sacrifice .waxdrop {
  position: absolute; bottom: 56%; left: 27%; width: 4px; height: 8px;
  background: #c0a880; border-radius: 50% 50% 50% 50%;
  animation: sac-waxdrop 4s ease-in-out infinite;
}
.scn-new-forces-vain-sacrifice .pin {
  position: absolute; width: 4px; height: 8px; border-radius: 50%;
  box-shadow: 0 0 4px currentColor;
}
.scn-new-forces-vain-sacrifice .redpin {
  bottom: 18%; left: 50%; background: #c8553d; currentcolor: #c8553d;
  animation: sac-pin1 1s ease-in-out infinite alternate;
}
.scn-new-forces-vain-sacrifice .bluepin {
  bottom: 20%; left: 54%; background: #3d6b8a; currentcolor: #3d6b8a;
  animation: sac-pin2 1.2s ease-in-out infinite alternate;
}
@keyframes sac-letter { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) } }
@keyframes sac-flame { 0% { transform: scaleY(1); opacity: 0.8 } 50% { transform: scaleY(1.3) translateY(-2px); opacity: 1 } 100% { transform: scaleY(0.8); opacity: 0.7 } }
@keyframes sac-waxdrop { 0% { transform: translateY(0) scale(1); opacity: 1 } 25% { transform: translateY(5px) scale(1.1); opacity: 1 } 50% { transform: translateY(10px) scale(1.2); opacity: 0.8 } 75% { transform: translateY(15px) scale(1.3); opacity: 0.5 } 100% { transform: translateY(20px) scale(1.4); opacity: 0 } }
@keyframes sac-pin1 { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes sac-pin2 { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }

.scn-auerstadt-reserve-neglected {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%), radial-gradient(circle at 70% 50%, #604020 0%, transparent 60%);
}
.scn-auerstadt-reserve-neglected .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-auerstadt-reserve-neglected .clock {
  position: absolute; bottom: 16%; left: 40%; width: 30px; height: 30px;
  background: #2a2a2a; border-radius: 50%; border: 2px solid #b08040;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: aue-clock 4s ease-in-out infinite;
}
.scn-auerstadt-reserve-neglected .flag {
  position: absolute; bottom: 20%; left: 60%; width: 4px; height: 30px;
  background: #8a6a3a; transform: rotate(-15deg);
  animation: aue-flag 3s ease-in-out infinite;
}
.scn-auerstadt-reserve-neglected .candle {
  position: absolute; bottom: 18%; left: 30%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #e0c8a0, #c0a880);
  border-radius: 20% 20% 0 0;
}
.scn-auerstadt-reserve-neglected .flame {
  position: absolute; bottom: 55%; left: 30%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #ffc060 0%, #c08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px #c08020;
  animation: aue-flame 2s ease-in-out infinite alternate;
}
.scn-auerstadt-reserve-neglected .gear {
  position: absolute; bottom: 16%; left: 48%; width: 10px; height: 10px;
  background: #c08040; border-radius: 50%; border: 2px solid #a06020;
  animation: aue-gear 5s linear infinite;
}
@keyframes aue-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes aue-flag { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes aue-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8 } 50% { transform: scaleY(1.2) translateY(-1px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.7 } }
@keyframes aue-gear { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }

.scn-preface-not-editress { background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #4a3428 100%), radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%); }
.scn-preface-not-editress .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg, #2a1f1a 0%, transparent 100%); }
.scn-preface-not-editress .desk { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:5px; box-shadow:0 -4px 10px rgba(0,0,0,.5); }
.scn-preface-not-editress .book { position:absolute; bottom:25%; left:40%; width:60px; height:20px; background:linear-gradient(90deg, #7a5a3a 0%, #6a4a2a 100%); border-radius:2px; rotate:-5deg; box-shadow:2px 2px 6px rgba(0,0,0,.4); animation:pne-book 6s ease-in-out infinite alternate; }
.scn-preface-not-editress .figure { position:absolute; bottom:20%; left:55%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:pne-figure 4s ease-in-out infinite alternate; }
.scn-preface-not-editress .candle { position:absolute; bottom:32%; left:45%; width:8px; height:30px; background:linear-gradient(180deg, #c8a050 0%, #a08030 100%); border-radius:4px; box-shadow:0 0 8px 2px #ffd080; animation:pne-candle 5s ease-in-out infinite alternate; }
.scn-preface-not-editress .glow { position:absolute; bottom:30%; left:43%; width:30px; height:30px; background:radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); border-radius:50%; animation:pne-glow 3s ease-in-out infinite alternate; }
@keyframes pne-book { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes pne-figure { 0% { transform:translateX(0) translateY(0) rotate(0); } 50% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes pne-candle { 0% { height:30px; opacity:1; } 50% { height:28px; opacity:.9; } 100% { height:30px; opacity:1; } }
@keyframes pne-glow { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.8; transform:scale(1); } }

.scn-preface-testimony-to-zeal { background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #4a3428 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 70%); }
.scn-preface-testimony-to-zeal .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg, #2a1f1a 0%, transparent 100%); }
.scn-preface-testimony-to-zeal .desk { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:5px; box-shadow:0 -4px 10px rgba(0,0,0,.5); }
.scn-preface-testimony-to-zeal .chair { position:absolute; bottom:15%; left:20%; width:30px; height:40px; background:linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%); border-radius:10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow:inset 0 -8px 8px rgba(0,0,0,.3); }
.scn-preface-testimony-to-zeal .figure { position:absolute; bottom:20%; left:21%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; transform-origin:bottom; animation:ptf-figure 6s ease-in-out infinite alternate; }
.scn-preface-testimony-to-zeal .papers { position:absolute; bottom:18%; left:35%; width:80px; height:10px; background:linear-gradient(90deg, #b8a080 0%, #a08868 100%); border-radius:2px; rotate:3deg; box-shadow:2px 2px 4px rgba(0,0,0,.3); animation:ptf-papers 8s ease-in-out infinite alternate; }
.scn-preface-testimony-to-zeal .lamp { position:absolute; bottom:32%; left:55%; width:10px; height:40px; background:linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius:5px 5px 10px 10px; animation:ptf-lamp 5s ease-in-out infinite alternate; }
.scn-preface-testimony-to-zeal .lamp-glow { position:absolute; bottom:30%; left:52%; width:40px; height:40px; background:radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); border-radius:50%; animation:ptf-glow 4s ease-in-out infinite alternate; }
@keyframes ptf-figure { 0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(0) translateY(0); } }
@keyframes ptf-papers { 0% { transform:rotate(3deg) translateX(0); } 50% { transform:rotate(0deg) translateX(5px); } 100% { transform:rotate(3deg) translateX(0); } }
@keyframes ptf-lamp { 0% { height:40px; } 50% { height:38px; } 100% { height:40px; } }
@keyframes ptf-glow { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:.7; transform:scale(1); } }

.scn-preface-crown-prince-paper { background: linear-gradient(180deg, #2a1f1a 0%, #352520 40%, #453028 100%), radial-gradient(ellipse at 50% 75%, #5a3a2a 0%, transparent 70%); }
.scn-preface-crown-prince-paper .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg, #2a1f1a 0%, transparent 100%); }
.scn-preface-crown-prince-paper .desk { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:5px; box-shadow:0 -4px 10px rgba(0,0,0,.5); }
.scn-preface-crown-prince-paper .paper { position:absolute; bottom:18%; left:40%; width:70px; height:15px; background:linear-gradient(90deg, #d0c0a0 0%, #c0b090 100%); border-radius:3px; rotate:-2deg; box-shadow:2px 2px 6px rgba(0,0,0,.3); animation:pcp-paper 9s ease-in-out infinite alternate; }
.scn-preface-crown-prince-paper .crown-deco { position:absolute; bottom:25%; left:50%; width:30px; height:30px; background:radial-gradient(circle, #d4a050 0%, #b08030 40%, #906020 100%); border-radius:50%; border:3px solid #c09040; box-shadow:0 0 12px 3px rgba(200,160,80,.4); animation:pcp-crown 6s ease-in-out infinite alternate; }
.scn-preface-crown-prince-paper .inkwell { position:absolute; bottom:22%; left:70%; width:12px; height:14px; background:radial-gradient(circle, #2a1a0a 0%, #1a0e04 100%); border-radius:50% 50% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-preface-crown-prince-paper .quill { position:absolute; bottom:20%; left:72%; width:4px; height:40px; background:linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:2px; transform-origin:bottom; rotate:20deg; animation:pcp-quill 5s ease-in-out infinite alternate; }
@keyframes pcp-crown { 0% { transform:translateX(-50%) scale(1) rotate(0); } 50% { transform:translateX(-50%) scale(1.05) rotate(5deg); } 100% { transform:translateX(-50%) scale(1) rotate(0); } }
@keyframes pcp-paper { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-3px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes pcp-quill { 0% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-2px); } 100% { transform:rotate(20deg) translateY(0); } }

.scn-preface-materials-amassed { background: linear-gradient(180deg, #2a1f1a 0%, #3d2b22 40%, #4a3428 100%), radial-gradient(ellipse at 50% 85%, #5a3a2a 0%, transparent 70%); }
.scn-preface-materials-amassed .bg-wall { position:absolute; inset:0; background:linear-gradient(180deg, #2a1f1a 0%, transparent 100%); }
.scn-preface-materials-amassed .desk { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:5px; box-shadow:0 -4px 10px rgba(0,0,0,.5); }
.scn-preface-materials-amassed .stack-a { position:absolute; bottom:20%; left:20%; width:60px; height:12px; background:linear-gradient(90deg, #b09878 0%, #a08868 100%); border-radius:2px; rotate:-5deg; box-shadow:3px 3px 8px rgba(0,0,0,.3); animation:pma-stack1 10s ease-in-out infinite alternate; }
.scn-preface-materials-amassed .stack-b { position:absolute; bottom:22%; left:40%; width:50px; height:10px; background:linear-gradient(90deg, #c0a888 0%, #b09878 100%); rotate:8deg; animation:pma-stack2 12s ease-in-out infinite alternate; }
.scn-preface-materials-amassed .stack-c { position:absolute; bottom:18%; left:55%; width:70px; height:14px; background:linear-gradient(90deg, #a89070 0%, #988060 100%); rotate:-3deg; animation:pma-stack3 8s ease-in-out infinite alternate; }
.scn-preface-materials-amassed .candle { position:absolute; bottom:30%; left:50%; width:8px; height:35px; background:linear-gradient(180deg, #d4a050 0%, #a08030 100%); border-radius:4px; box-shadow:0 0 8px 2px #ffd080; animation:pma-candle 4s ease-in-out infinite alternate; }
.scn-preface-materials-amassed .glow { position:absolute; bottom:28%; left:48%; width:35px; height:35px; background:radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%); border-radius:50%; animation:pma-glow 3s ease-in-out infinite alternate; }
@keyframes pma-stack1 { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(-2deg) translateX(10px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes pma-stack2 { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-3px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes pma-stack3 { 0% { transform:rotate(-3deg) translateX(0) translateY(0); } 50% { transform:rotate(-1deg) translateX(-5px) translateY(-2px); } 100% { transform:rotate(-3deg) translateX(0) translateY(0); } }
@keyframes pma-candle { 0% { height:35px; opacity:.9; } 50% { height:32px; opacity:1; } 100% { height:35px; opacity:.9; } }
@keyframes pma-glow { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(1); } }

.scn-introduction-krishna-quote {
  background: 
    linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 50%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a4e 0%, transparent 70%);
}
.scn-introduction-krishna-quote .krq-halo {
  position: absolute;
  top: 22%;
  left: 30%;
  width: 40%;
  height: 45%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200, 180, 100, 0.25) 0%, transparent 70%);
  animation: krq-halo-pulse 4s ease-in-out infinite;
}
.scn-introduction-krishna-quote .krq-krishna {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 24px;
  height: 75px;
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0d0d1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: krq-krishna-sway 6s ease-in-out infinite;
}
.scn-introduction-krishna-quote .krq-arjuna {
  position: absolute;
  bottom: 20%;
  right: 30%;
  width: 18px;
  height: 50px;
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: krq-bow 6s ease-in-out infinite;
}
.scn-introduction-krishna-quote .krq-floor {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 5%;
  background: linear-gradient(90deg, #1a1a2e 0%, #0d0d1a 100%);
  box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
}
.scn-introduction-krishna-quote .krq-pillar-left {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 6%;
  height: 60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: krq-pillar-shift 8s ease-in-out infinite;
}
.scn-introduction-krishna-quote .krq-pillar-right {
  position: absolute;
  bottom: 20%;
  left: 84%;
  width: 6%;
  height: 60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: krq-pillar-shift 8s ease-in-out infinite reverse;
}
.scn-introduction-krishna-quote .krq-lamp {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 8px;
  height: 12px;
  background: radial-gradient(circle, #f0c040 0%, #b08020 50%, #603010 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,192,64,0.6);
  animation: krq-flicker 1.5s ease-in-out infinite;
}
@keyframes krq-halo-pulse {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes krq-krishna-sway {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes krq-bow {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(8deg); }
  50% { transform: translateX(12px) rotate(0deg); }
  75% { transform: translateX(6px) rotate(-8deg); }
}
@keyframes krq-pillar-shift {
  0% { box-shadow: 2px 0 8px rgba(0,0,0,0.5); transform: translateX(0); }
  50% { box-shadow: 4px 0 12px rgba(0,0,0,0.7); transform: translateX(2px); }
  100% { box-shadow: 2px 0 8px rgba(0,0,0,0.5); transform: translateX(0); }
}
@keyframes krq-flicker {
  0% { opacity: 0.8; transform: scale(1); }
  30% { opacity: 1; transform: scale(1.15); }
  60% { opacity: 0.9; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1.05); }
}

/* -------------------- scene 2 -------------------- */
.scn-introduction-translator-signature {
  background: 
    linear-gradient(180deg, #2a1f14 0%, #1f140e 50%, #140c08 100%),
    radial-gradient(ellipse at 50% 30%, #4a3520 0%, transparent 60%);
}
.scn-introduction-translator-signature .trs-desk {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1f14 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-introduction-translator-signature .trs-lamp {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(200,160,80,0.5);
  animation: trs-lamp-sway 6s ease-in-out infinite;
}
.scn-introduction-translator-signature .trs-paper {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 50%;
  height: 20%;
  background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
}
.scn-introduction-translator-signature .trs-quill {
  position: absolute;
  bottom: 38%;
  left: 40%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #c0b0a0 0%, #806050 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: trs-quill-move 4s ease-in-out infinite;
}
.scn-introduction-translator-signature .trs-hand {
  position: absolute;
  bottom: 35%;
  left: 38%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%);
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 30%;
  animation: trs-hand-tilt 4s ease-in-out infinite;
}
.scn-introduction-translator-signature .trs-inkwell {
  position: absolute;
  bottom: 30%;
  left: 65%;
  width: 20px;
  height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-introduction-translator-signature .trs-book {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 30px;
  height: 15px;
  background: linear-gradient(135deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4% 4% 2% 2%;
  transform: rotate(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
@keyframes trs-lamp-sway {
  0%, 100% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes trs-quill-move {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(15deg) translateX(8px); }
  50% { transform: rotate(-10deg) translateX(12px); }
  75% { transform: rotate(5deg) translateX(4px); }
}
@keyframes trs-hand-tilt {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
}
/* only 3 animations needed? Let's add one more on paper? or inkwell? Add inkwell wobble */
.scn-introduction-translator-signature .trs-inkwell {
  animation: trs-inkwell-wobble 8s ease-in-out infinite;
}
@keyframes trs-inkwell-wobble {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  75% { transform: rotate(-3deg) translateY(1px); }
}

/* -------------------- scene 3 -------------------- */
.scn-preface-husband-preface {
  background: 
    linear-gradient(180deg, #1f1410 0%, #2a1c14 50%, #1f1410 100%),
    radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 60%);
}
.scn-preface-husband-preface .hsp-backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
  opacity: 0.3;
}
.scn-preface-husband-preface .hsp-portrait-frame {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 30%;
  height: 40%;
  background: linear-gradient(135deg, #6a5030 0%, #4a3820 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.7), inset 0 0 0 4px #1f1410;
  animation: hsp-frame-glow 5s ease-in-out infinite;
}
.scn-preface-husband-preface .hsp-portrait-sil {
  position: absolute;
  top: 18%;
  left: 42%;
  width: 16%;
  height: 25%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-preface-husband-preface .hsp-candle {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 40px;
  background: linear-gradient(180deg, #e0c050 0%, #c0a030 60%, #806020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 12px 4px rgba(220,180,60,0.5);
}
.scn-preface-husband-preface .hsp-flame {
  position: absolute;
  bottom: 56%;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 15px;
  background: radial-gradient(circle at 50% 20%, #f0e080 0%, #e0a030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 12px rgba(240,200,80,0.5);
  animation: hsp-flame-flicker 2s ease-in-out infinite;
}
.scn-preface-husband-preface .hsp-papers {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: hsp-papers-shift 8s ease-in-out infinite;
}
.scn-preface-husband-preface .hsp-hand {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 18px;
  height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2214 100%);
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 30%;
  transform-origin: bottom center;
  animation: hsp-hand-reach 6s ease-in-out infinite;
}
.scn-preface-husband-preface .hsp-shadow {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 40%;
  height: 5%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  filter: blur(4px);
  animation: hsp-shadow-sway 8s ease-in-out infinite;
}
@keyframes hsp-frame-glow {
  0%, 100% { box-shadow: 0 0 15px 3px rgba(0,0,0,0.7), inset 0 0 0 4px #1f1410; }
  50% { box-shadow: 0 0 25px 8px rgba(0,0,0,0.8), inset 0 0 0 4px #3a2010; }
}
@keyframes hsp-flame-flicker {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  30% { transform: translateX(-50%) scale(1.2, 1.1); opacity: 1; }
  60% { transform: translateX(-50%) scale(0.9, 0.95); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.9; }
}
@keyframes hsp-papers-shift {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
}
@keyframes hsp-hand-reach {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(12px) rotate(-3deg); }
  75% { transform: translateX(6px) rotate(2deg); }
}
@keyframes hsp-shadow-sway {
  0%, 100% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(10px); opacity: 0.8; }
}

/* -------------------- scene 4 -------------------- */
.scn-preface-duty-to-publish {
  background: 
    linear-gradient(180deg, #201408 0%, #2a1c10 50%, #1f1408 100%),
    radial-gradient(ellipse at 50% 50%, #3a2818 0%, transparent 60%);
}
.scn-preface-duty-to-publish .dtp-table {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #4a3420 0%, #2a1c10 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-preface-duty-to-publish .dtp-open-book {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 50%;
  height: 30%;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
  animation: dtp-book-breathe 7s ease-in-out infinite;
}
.scn-preface-duty-to-publish .dtp-left-page {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 22%;
  height: 24%;
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b090 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateY(-5deg);
}
.scn-preface-duty-to-publish .dtp-right-page {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 22%;
  height: 24%;
  background: linear-gradient(225deg, #e0d0b0 0%, #c8b090 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateY(5deg);
}
.scn-preface-duty-to-publish .dtp-hands {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, #3a2214 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: dtp-hands-open 6s ease-in-out infinite;
}
.scn-preface-duty-to-publish .dtp-lamp {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 10%;
  height: 25%;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(200,160,80,0.4);
  animation: dtp-lamp-glide 9s ease-in-out infinite;
}
.scn-preface-duty-to-publish .dtp-glow {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: radial-gradient(circle, rgba(240,200,80,0.2) 0%, transparent 70%);
  animation: dtp-glow-pulse 4s ease-in-out infinite;
}
.scn-preface-duty-to-publish .dtp-bookmark {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 4%;
  height: 12%;
  background: linear-gradient(180deg, #b06840 0%, #803820 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: top center;
  animation: dtp-bookmark-fall 6s ease-in-out infinite;
}
@keyframes dtp-book-breathe {
  0%, 100% { transform: perspective(400px) rotateX(5deg) scale(1); }
  50% { transform: perspective(400px) rotateX(3deg) scale(1.02); }
}
@keyframes dtp-hands-open {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.05) rotate(2deg); opacity: 1; }
}
@keyframes dtp-lamp-glide {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  75% { transform: translateX(-8px) rotate(-2deg); }
}
@keyframes dtp-glow-pulse {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes dtp-bookmark-fall {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(5deg) translateY(4px); }
  60% { transform: rotate(-3deg) translateY(2px); }
}

.scn-arming-the-nation-tactical-defence-avoid{background:linear-gradient(180deg,#5a3a1a,#8a5a3a 50%,#3a1a0a),radial-gradient(ellipse 80% 20%,#c08040,transparent 60%)}
.scn-arming-the-nation-tactical-defence-avoid .wall{position:absolute;inset:0 20% 0 0;background:linear-gradient(180deg,#7a4a2a,#3a1a0a);opacity:.9}
.scn-arming-the-nation-tactical-defence-avoid .table{position:absolute;bottom:10%;left:5%;width:90%;height:30%;background:linear-gradient(180deg,#6a4a2a,#3a2a1a);border-radius:2% 2% 0 0;box-shadow:0 -4px 10px rgba(0,0,0,.7)}
.scn-arming-the-nation-tactical-defence-avoid .map{position:absolute;bottom:25%;left:20%;width:60%;height:15%;background:linear-gradient(135deg,#c8a060,#8a6a3a 50%,#a08050);border-radius:2%;transform:rotate(-2deg);animation:mp1ta 8s ease-in-out infinite}
.scn-arming-the-nation-tactical-defence-avoid .officer{position:absolute;bottom:20%;height:40%;width:8%;background:linear-gradient(180deg,#1a2a1a,#0a1a0a);border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center}
.scn-arming-the-nation-tactical-defence-avoid .officer.left{left:15%;animation:off1ta 3s ease-in-out infinite}
.scn-arming-the-nation-tactical-defence-avoid .officer.right{right:15%;animation:off2ta 4s ease-in-out infinite}
.scn-arming-the-nation-tactical-defence-avoid .lantern{position:absolute;top:20%;left:45%;width:10px;height:15px;background:radial-gradient(circle,#ffd080,#b08040 70%);border-radius:30%;box-shadow:0 0 40px 10px #c08040;animation:ln1ta 2s ease-in-out infinite alternate}
@keyframes mp1ta{0%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-3px)}100%{transform:rotate(-2deg) translateY(0)}}
@keyframes off1ta{0%{transform:translateX(0) rotate(0)}30%{transform:translateX(5px) rotate(-2deg)}60%{transform:translateX(-2px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes off2ta{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(-4px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes ln1ta{0%{opacity:.8;box-shadow:0 0 30px 8px #c08040}50%{opacity:1;box-shadow:0 0 50px 15px #ffd080}100%{opacity:.9;box-shadow:0 0 35px 10px #c08040}}

.scn-arming-the-nation-defence-of-approaches{background:linear-gradient(180deg,#f5e6d0,#e0c9a8 60%,#c4a97a),radial-gradient(ellipse 30% 100%,#fff7e6,transparent 70%)}
.scn-arming-the-nation-defence-of-approaches .wall{position:absolute;inset:0;background:linear-gradient(180deg,#e4d5b6,#c4a97a);opacity:.8}
.scn-arming-the-nation-defence-of-approaches .window{position:absolute;top:10%;left:30%;width:35%;height:40%;background:linear-gradient(180deg,#87ceeb,#b0e0e6);border:3px solid #b59a6a;border-radius:2%;box-shadow:inset 0 0 30px rgba(255,255,200,.3);animation:windo2 12s ease-in-out infinite alternate}
.scn-arming-the-nation-defence-of-approaches .desk{position:absolute;bottom:12%;left:10%;width:75%;height:18%;background:linear-gradient(180deg,#9a7a5a,#6a4a2a);border-radius:2% 2% 0 0;box-shadow:0 -2px 6px rgba(0,0,0,.4)}
.scn-arming-the-nation-defence-of-approaches .papers{position:absolute;bottom:22%;left:15%;width:30%;height:6%;background:linear-gradient(135deg,#fff8e7,#e8dcc8);border-radius:1px;transform:rotate(2deg);animation:papr2 10s ease-in-out infinite}
.scn-arming-the-nation-defence-of-approaches .chair{position:absolute;bottom:12%;right:12%;width:15%;height:22%;background:linear-gradient(180deg,#7a5a3a,#3a2a1a);border-radius:10% 10% 30% 30%;transform-origin:bottom center;animation:chair2 6s ease-in-out infinite}
.scn-arming-the-nation-defence-of-approaches .cup{position:absolute;bottom:25%;left:25%;width:6%;height:8%;background:radial-gradient(circle,#fff,#d4c4a0);border-radius:30% 30% 10% 10%;animation:cup2 4s ease-in-out infinite}
.scn-arming-the-nation-defence-of-approaches .curtain{position:absolute;top:8%;width:20%;height:50%;background:linear-gradient(180deg,#c4a080,#9a7a5a);border-radius:0 0 20% 20%;opacity:.7;transform-origin:top center}
.scn-arming-the-nation-defence-of-approaches .curtain.left{left:5%;animation:curtl2 8s ease-in-out infinite}
.scn-arming-the-nation-defence-of-approaches .curtain.right{right:5%;animation:curtr2 8s ease-in-out infinite}
@keyframes windo2{0%{box-shadow:inset 0 0 30px rgba(255,255,200,.3)}50%{box-shadow:inset 0 0 40px rgba(255,255,200,.5)}100%{box-shadow:inset 0 0 30px rgba(255,255,200,.3)}}
@keyframes papr2{0%{transform:rotate(2deg)}50%{transform:rotate(0deg)}100%{transform:rotate(2deg)}}
@keyframes chair2{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes cup2{0%{opacity:.8}50%{opacity:1}100%{opacity:.8}}
@keyframes curtl2{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}100%{transform:scaleX(1)}}
@keyframes curtr2{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}100%{transform:scaleX(1)}}

.scn-arming-the-nation-two-ways{background:linear-gradient(180deg,#4a3a2a,#6a5a4a 50%,#3a2a1a),radial-gradient(ellipse 50% 80%,#8a7a6a,transparent 60%)}
.scn-arming-the-nation-two-ways .floor{position:absolute;bottom:0;left:0;width:100%;height:30%;background:linear-gradient(180deg,#5a4a3a,#3a2a1a);border-radius:30% 30% 0 0}
.scn-arming-the-nation-two-ways .wall-back{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#8a7a6a,#5a4a3a 80%,#3a2a1a);opacity:.8}
.scn-arming-the-nation-two-ways .arch-left{position:absolute;top:15%;left:15%;width:25%;height:55%;background:radial-gradient(ellipse 40% 80%,transparent 40%,#4a3a2a 40%);border-radius:50% 50% 0 0;box-shadow:inset 0 8px 12px rgba(0,0,0,.3);animation:archl3 14s ease-in-out infinite}
.scn-arming-the-nation-two-ways .arch-right{position:absolute;top:15%;right:15%;width:25%;height:55%;background:radial-gradient(ellipse 40% 80%,transparent 40%,#4a3a2a 40%);border-radius:50% 50% 0 0;box-shadow:inset 0 8px 12px rgba(0,0,0,.3);animation:archr3 14s ease-in-out infinite reverse}
.scn-arming-the-nation-two-ways .shelf{position:absolute;top:30%;left:5%;width:90%;height:6%;background:linear-gradient(180deg,#9a7a5a,#6a4a2a);border-radius:2px;box-shadow:0 4px 6px rgba(0,0,0,.5)}
.scn-arming-the-nation-two-ways .figure{position:absolute;bottom:30%;left:50%;width:12%;height:35%;background:linear-gradient(180deg,#2a2a1a,#1a1a0a);border-radius:40% 40% 30% 30%/60% 60% 40% 40%;transform:translateX(-50%);transform-origin:bottom center;animation:fig3 5s ease-in-out infinite}
.scn-arming-the-nation-two-ways .lamp{position:absolute;top:10%;left:47%;width:4%;height:8%;background:radial-gradient(circle,#ffd080,#b08040);border-radius:50%;box-shadow:0 0 50px 25px #c08040;animation:lamp3 3s ease-in-out infinite alternate}
@keyframes archl3{0%{opacity:.9}50%{opacity:.7}100%{opacity:.9}}
@keyframes archr3{0%{opacity:.7}50%{opacity:.9}100%{opacity:.7}}
@keyframes fig3{0%{transform:translateX(-50%) translateY(0) rotate(0)}30%{transform:translateX(-50%) translateY(-3px) rotate(2deg)}60%{transform:translateX(-50%) translateY(0) rotate(-1deg)}100%{transform:translateX(-50%) translateY(0) rotate(0)}}
@keyframes lamp3{0%{opacity:.8;box-shadow:0 0 40px 20px #c08040}50%{opacity:1;box-shadow:0 0 60px 30px #ffd080}100%{opacity:.9;box-shadow:0 0 45px 22px #c08040}}

.scn-arming-the-nation-after-loss{background:linear-gradient(180deg,#3a3a4a,#2a2a3a 40%,#1a1a2a),radial-gradient(ellipse 50% 60%,#4a4a5a,transparent 70%)}
.scn-arming-the-nation-after-loss .sky{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#4a4a5a,#2a2a3a 60%,#1a1a2a);opacity:.8;animation:sky4 20s ease-in-out infinite alternate}
.scn-arming-the-nation-after-loss .ground{position:absolute;bottom:0;left:0;width:100%;height:40%;background:linear-gradient(180deg,#3a3a2a,#1a1a0a);border-radius:20% 80% 0 0/30% 60% 0 0}
.scn-arming-the-nation-after-loss .flagpole{position:absolute;bottom:40%;left:50%;width:1%;height:45%;background:linear-gradient(180deg,#6a6a5a,#3a3a2a);transform:translateX(-50%);border-radius:2px}
.scn-arming-the-nation-after-loss .flag{position:absolute;bottom:70%;left:51%;width:12%;height:8%;background:linear-gradient(180deg,#7a4a4a,#5a2a2a);border-radius:0 10% 10% 0;transform-origin:left center;animation:flag4 6s ease-in-out infinite}
.scn-arming-the-nation-after-loss .figure{position:absolute;bottom:30%;left:30%;width:10%;height:20%;background:linear-gradient(180deg,#2a2a2a,#1a1a1a);border-radius:30% 30% 20% 20%/50% 50% 30% 30%;transform-origin:bottom center;animation:fig4 8s ease-in-out infinite}
.scn-arming-the-nation-after-loss .fire{position:absolute;bottom:25%;left:60%;width:15%;height:20%;background:radial-gradient(circle,#d08040,#a06030 60%,#403020);border-radius:50% 50% 20% 20%;box-shadow:0 0 40px 15px #a06030;animation:fire4 3s ease-in-out infinite alternate}
.scn-arming-the-nation-after-loss .weapon{position:absolute;bottom:22%;left:18%;width:8%;height:2%;background:linear-gradient(180deg,#5a5a4a,#2a2a1a);border-radius:50% 50% 0 0;transform:rotate(-30deg);transform-origin:left center;animation:weap4 4s ease-in-out infinite}
@keyframes sky4{0%{opacity:.7}50%{opacity:.9}100%{opacity:.7}}
@keyframes flag4{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}100%{transform:rotate(-5deg)}}
@keyframes fig4{0%{transform:translateX(0) translateY(0)}50%{transform:translateX(10px) translateY(-2px)}100%{transform:translateX(0) translateY(0)}}
@keyframes fire4{0%{opacity:.6;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}100%{opacity:.7;transform:scale(.98)}}
@keyframes weap4{0%{transform:rotate(-30deg) translateY(0)}50%{transform:rotate(-25deg) translateY(-1px)}100%{transform:rotate(-30deg) translateY(0)}}

.scn-cantonments-replace-camps {
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-cantonments-replace-camps .bg-wall {
  position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a1e16 0%, #1c140e 100%); animation: cc-wall 10s ease-in-out infinite alternate;
}
.scn-cantonments-replace-camps .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120e 0%, #0d0806 100%); animation: cc-floor 12s ease-in-out infinite alternate;
}
.scn-cantonments-replace-camps .candle {
  position:absolute; bottom:35%; left:45%; width:6px; height:40px; background: linear-gradient(180deg, #e8d5a0 0%, #c4954a 100%); border-radius:2px; animation: cc-candle 4s ease-in-out infinite;
}
.scn-cantonments-replace-camps .flame {
  position:absolute; bottom:calc(35% + 40px); left:45%; width:10px; height:16px; background: radial-gradient(circle, #ffdb58 0%, #ff8c00 50%, transparent 100%); border-radius:50% 50% 20% 20%; filter: blur(2px); animation: cc-flame 1.5s ease-in-out infinite alternate;
}
.scn-cantonments-replace-camps .table {
  position:absolute; bottom:30%; left:30%; width:40%; height:5px; background: #3a2a1e; border-radius:2px; box-shadow: 0 3px 8px rgba(0,0,0,.6); animation: cc-table 8s ease-in-out infinite;
}
.scn-cantonments-replace-camps .figure {
  position:absolute; bottom:25%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a140e 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-figure 6s ease-in-out infinite;
}
.scn-cantonments-replace-camps .shadow {
  position:absolute; bottom:25%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(4px); animation: cc-shadow 8s ease-in-out infinite;
}
.scn-cantonments-replace-camps .gear {
  position:absolute; bottom:30%; left:60%; width:10px; height:20px; background: #4a3a2a; border-radius:2px; transform: rotate(15deg); animation: cc-gear 5s ease-in-out infinite alternate;
}
@keyframes cc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cc-floor { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes cc-candle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cc-flame { 0% { transform: scaleY(0.9) rotate(-2deg); opacity:0.8 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes cc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cc-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cc-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes cc-gear { 0% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }

.scn-occupation-objects-strategy {
  background: linear-gradient(180deg, #2e221a 0%, #1c140e 100%), radial-gradient(ellipse at 50% 80%, #3e3022 0%, transparent 70%);
}
.scn-occupation-objects-strategy .bg-wall {
  position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2e221a 0%, #1e140e 100%); animation: oos-wall 11s ease-in-out infinite alternate;
}
.scn-occupation-objects-strategy .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1c140e 0%, #0e0804 100%); animation: oos-floor 13s ease-in-out infinite alternate;
}
.scn-occupation-objects-strategy .candle {
  position:absolute; bottom:38%; left:48%; width:6px; height:40px; background: linear-gradient(180deg, #e8d5a0 0%, #c4954a 100%); border-radius:2px; animation: oos-candle 4.5s ease-in-out infinite;
}
.scn-occupation-objects-strategy .flame {
  position:absolute; bottom:calc(38% + 40px); left:48%; width:10px; height:16px; background: radial-gradient(circle, #ffdb58 0%, #ff8c00 50%, transparent 100%); border-radius:50% 50% 20% 20%; filter: blur(2px); animation: oos-flame 1.6s ease-in-out infinite alternate;
}
.scn-occupation-objects-strategy .map {
  position:absolute; bottom:30%; left:25%; width:50%; height:8%; background: #5a4a3a; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: oos-map 7s ease-in-out infinite;
}
.scn-occupation-objects-strategy .figure-lean {
  position:absolute; bottom:20%; left:40%; width:22px; height:55px; background: linear-gradient(180deg, #1a140e 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oos-figure 5s ease-in-out infinite;
}
.scn-occupation-objects-strategy .shadow {
  position:absolute; bottom:20%; left:45%; width:70px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(4px); animation: oos-shadow 9s ease-in-out infinite;
}
.scn-occupation-objects-strategy .compass {
  position:absolute; bottom:32%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #c8a040 0%, #8a6a20 100%); border-radius:50%; animation: oos-compass 6s ease-in-out infinite;
}
@keyframes oos-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes oos-floor { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes oos-candle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes oos-flame { 0% { transform: scaleY(0.9) rotate(-2deg); opacity:0.8 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes oos-map { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes oos-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes oos-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.15) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes oos-compass { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }

.scn-maintenance-activities-not-strategy-tactics {
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-maintenance-activities-not-strategy-tactics .bg-wall {
  position:absolute; top:0; left:0; right:0; height:58%; background: linear-gradient(180deg, #2a1e16 0%, #1c140e 100%); animation: mat-wall 12s ease-in-out infinite alternate;
}
.scn-maintenance-activities-not-strategy-tactics .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #1a120e 0%, #0d0806 100%); animation: mat-floor 14s ease-in-out infinite alternate;
}
.scn-maintenance-activities-not-strategy-tactics .lantern {
  position:absolute; bottom:40%; left:42%; width:16px; height:24px; background: linear-gradient(180deg, #c4954a 0%, #8a6a20 100%); border-radius:4px; animation: mat-lantern 4s ease-in-out infinite;
}
.scn-maintenance-activities-not-strategy-tactics .lantern-glow {
  position:absolute; bottom:38%; left:40%; width:24px; height:30px; background: radial-gradient(circle, #ffdb58 0%, #ff8c00 30%, transparent 70%); border-radius:50%; filter: blur(6px); animation: mat-glow 2s ease-in-out infinite alternate;
}
.scn-maintenance-activities-not-strategy-tactics .figure-sit {
  position:absolute; bottom:22%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #1a140e 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mat-figure 7s ease-in-out infinite;
}
.scn-maintenance-activities-not-strategy-tactics .item {
  position:absolute; bottom:28%; left:38%; width:4px; height:20px; background: #4a3a2a; border-radius:1px; transform: rotate(20deg); animation: mat-item 3s ease-in-out infinite alternate;
}
.scn-maintenance-activities-not-strategy-tactics .shadow {
  position:absolute; bottom:22%; left:35%; width:50px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(4px); animation: mat-shadow 10s ease-in-out infinite;
}
.scn-maintenance-activities-not-strategy-tactics .bag {
  position:absolute; bottom:20%; left:55%; width:16px; height:20px; background: #3a2a1e; border-radius:30% 30% 10% 10%; animation: mat-bag 5s ease-in-out infinite alternate;
}
@keyframes mat-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mat-floor { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes mat-lantern { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mat-glow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes mat-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mat-item { 0% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes mat-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.2) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes mat-bag { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }

.scn-entrenchments-tactical-construction {
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%), radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-entrenchments-tactical-construction .bg-wall {
  position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1e16 0%, #1c140e 100%); animation: etc-wall 13s ease-in-out infinite alternate;
}
.scn-entrenchments-tactical-construction .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a120e 0%, #0d0806 100%); animation: etc-floor 15s ease-in-out infinite alternate;
}
.scn-entrenchments-tactical-construction .lantern {
  position:absolute; bottom:45%; left:35%; width:16px; height:24px; background: linear-gradient(180deg, #c4954a 0%, #8a6a20 100%); border-radius:4px; animation: etc-lantern 4.2s ease-in-out infinite;
}
.scn-entrenchments-tactical-construction .lantern-glow {
  position:absolute; bottom:43%; left:33%; width:24px; height:30px; background: radial-gradient(circle, #ffdb58 0%, #ff8c00 30%, transparent 70%); border-radius:50%; filter: blur(6px); animation: etc-glow 2.2s ease-in-out infinite alternate;
}
.scn-entrenchments-tactical-construction .shovel {
  position:absolute; bottom:35%; left:55%; width:6px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%); border-radius:2px; transform: rotate(30deg); transform-origin: bottom center; animation: etc-shovel 4s ease-in-out infinite alternate;
}
.scn-entrenchments-tactical-construction .helmet {
  position:absolute; bottom:30%; left:30%; width:20px; height:15px; background: #4a3a2a; border-radius:50% 50% 30% 30%; box-shadow: inset 0 -4px 4px rgba(0,0,0,.4); animation: etc-helmet 6s ease-in-out infinite;
}
.scn-entrenchments-tactical-construction .figure-work {
  position:absolute; bottom:20%; left:45%; width:24px; height:55px; background: linear-gradient(180deg, #1a140e 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etc-figure 8s ease-in-out infinite;
}
.scn-entrenchments-tactical-construction .shadow {
  position:absolute; bottom:20%; left:42%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(4px); animation: etc-shadow 11s ease-in-out infinite;
}
@keyframes etc-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes etc-floor { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes etc-lantern { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes etc-glow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes etc-shovel { 0% { transform: rotate(25deg) } 100% { transform: rotate(35deg) } }
@keyframes etc-helmet { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes etc-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes etc-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(1) } }

/* one block per scene id. Append to style.css. */
.scn-rage-revenge-moral-force { background: linear-gradient(135deg, #1a110a 0%, #2a1a0a 40%, #0a0a12 100%), radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 70%); }
.scn-rage-revenge-moral-force .tent-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, #0d0804 100%); animation: rr-breathe 12s ease-in-out infinite alternate; }
.scn-rage-revenge-moral-force .tent-opening { position:absolute; inset:10% 25% 30% 25%; background: radial-gradient(ellipse at 50% 100%, #a84c2f 0%, #3a1a0a 60%, transparent 80%); border-radius: 30% / 60% 60% 20% 20%; filter: blur(4px); animation: rr-flicker 3s ease-in-out infinite alternate; }
.scn-rage-revenge-moral-force .figure-silhouette { position:absolute; bottom:30%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #050302 0%, #110805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(168,76,47,.3); animation: rr-sway 4s ease-in-out infinite; }
.scn-rage-revenge-moral-force .campfire { position:absolute; bottom:20%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a84c2f 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(168,76,47,.5), 0 0 120px 40px rgba(168,76,47,.2); animation: rr-fire 1.5s ease-in-out infinite alternate; }
.scn-rage-revenge-moral-force .ember { position:absolute; bottom:30%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #a84c2f 100%); border-radius:50%; box-shadow: 0 0 10px 3px rgba(168,76,47,.8); animation: rr-drift 3s ease-in infinite; }
.scn-rage-revenge-moral-force .ember-1 { left:45%; animation-delay:.5s; }
.scn-rage-revenge-moral-force .ember-2 { left:55%; animation-delay:1.8s; }
@keyframes rr-breathe  { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes rr-flicker { 0% { opacity:.6; transform:scaleY(.95) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:.8; transform:scaleY(.98) } }
@keyframes rr-sway   { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes rr-fire   { 0% { transform:translateX(-50%) scale(.95); box-shadow: 0 0 40px 15px rgba(168,76,47,.4) } 50% { transform:translateX(-50%) scale(1.1); box-shadow: 0 0 80px 25px rgba(168,76,47,.6) } 100% { transform:translateX(-50%) scale(1); box-shadow: 0 0 60px 20px rgba(168,76,47,.5) } }
@keyframes rr-drift  { 0% { transform: translateY(0) translateX(0) scale(.8); opacity:1 } 50% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity:.8 } 100% { transform: translateY(-60px) translateX(-5px) scale(.4); opacity:0 } }

.scn-retaliatory-battles-examples { background: linear-gradient(180deg, #141416 0%, #222226 40%, #141416 100%), radial-gradient(circle at 50% 40%, #3a3a3e 0%, transparent 70%); }
.scn-retaliatory-battles-examples .council-room { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 40px, #1a1a1c 40px, #1a1a1c 42px); opacity:.3; animation: rb-room-shift 20s linear infinite; }
.scn-retaliatory-battles-examples .council-table { position:absolute; bottom:10%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #2c2220 0%, #1a1412 100%); border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%; box-shadow: 0 -8px 30px rgba(0,0,0,.6); }
.scn-retaliatory-battles-examples .council-map { position:absolute; bottom:15%; left:25%; right:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1e14 100%); border-radius: 2px; border: 1px solid #5a4a3a; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: rb-map-pulse 8s ease-in-out infinite; }
.scn-retaliatory-battles-examples .council-candle { position:absolute; bottom:50%; left:30%; width:8px; height:16px; background: linear-gradient(180deg, #b58b4d 0%, #7a5c2e 100%); border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%; box-shadow: 0 0 30px 10px rgba(181,139,77,.5), 0 0 60px 20px rgba(181,139,77,.2); animation: rb-candle 3s ease-in-out infinite alternate; }
.scn-retaliatory-battles-examples .council-figure { position:absolute; bottom:15%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0c 0%, #1c1612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,.5); animation: rb-figure 6s ease-in-out infinite; }
.scn-retaliatory-battles-examples .council-shadow { position:absolute; bottom:10%; left:45%; width:80px; height:10px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:.4; animation: rb-shadow 6s ease-in-out infinite; }
@keyframes rb-room-shift  { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }
@keyframes rb-map-pulse  { 0% { filter: brightness(.95) } 50% { filter: brightness(1.05) } 100% { filter: brightness(.98) } }
@keyframes rb-candle   { 0% { transform: rotate(-3deg); box-shadow: 0 0 25px 8px rgba(181,139,77,.4) } 50% { transform: rotate(2deg); box-shadow: 0 0 40px 15px rgba(181,139,77,.6) } 100% { transform: rotate(-1deg); box-shadow: 0 0 30px 10px rgba(181,139,77,.5) } }
@keyframes rb-figure   { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes rb-shadow   { 0% { transform: scaleX(.95); opacity:.3 } 50% { transform: scaleX(1.05); opacity:.5 } 100% { transform: scaleX(1); opacity:.4 } }

.scn-distance-masses-conjunction { background: linear-gradient(180deg, #0a0e14 0%, #141c24 40%, #1c242c 100%), radial-gradient(ellipse at 50% 100%, #1c242c 0%, transparent 70%); }
.scn-distance-masses-conjunction .war-table { position:absolute; bottom:0; left:5%; right:5%; height:75%; background: linear-gradient(180deg, #2c241c 0%, #181410 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-distance-masses-conjunction .table-map { position:absolute; bottom:10%; left:10%; right:10%; height:55%; background: radial-gradient(ellipse, #4a3c2c 0%, #2a1e14 100%); border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: dm-map 12s ease-in-out infinite; }
.scn-distance-masses-conjunction .terrain-hills { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(135deg, #2a3440 0%, #3a4a50 40%, #2a3440 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; filter: blur(6px); opacity:.6; animation: dm-hills 20s ease-in-out infinite alternate; }
.scn-distance-masses-conjunction .terrain-river { position:absolute; bottom:30%; left:60%; width:20%; height:6px; background: linear-gradient(90deg, #1a3a4a 0%, #4a7a8a 50%, #1a3a4a 100%); border-radius: 50%; filter: blur(3px); animation: dm-river 15s linear infinite; }
.scn-distance-masses-conjunction .marker { position:absolute; width:14px; height:20px; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: dm-marker 4s ease-in-out infinite; }
.scn-distance-masses-conjunction .marker-blue { bottom:40%; left:35%; background: linear-gradient(180deg, #5a8aaa 0%, #2a4a6a 100%); box-shadow: 0 0 8px 2px rgba(90,138,170,.4); animation-delay:0s; }
.scn-distance-masses-conjunction .marker-red { bottom:45%; left:55%; background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%); box-shadow: 0 0 8px 2px rgba(138,74,58,.4); animation-delay:.6s; }
.scn-distance-masses-conjunction .table-candle { position:absolute; bottom:55%; left:20%; width:6px; height:14px; background: linear-gradient(180deg, #c8a06a 0%, #8a6a3a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 25px 8px rgba(200,160,106,.5), 0 0 50px 16px rgba(200,160,106,.2); animation: dm-candle 3.5s ease-in-out infinite alternate; }
@keyframes dm-map     { 0% { filter: brightness(.95) saturate(.8) } 50% { filter: brightness(1.05) saturate(1.1) } 100% { filter: brightness(.98) saturate(.9) } }
@keyframes dm-hills   { 0% { transform: translateX(-10px) scaleY(1) } 50% { transform: translateX(5px) scaleY(1.1) } 100% { transform: translateX(10px) scaleY(.95) } }
@keyframes dm-river   { 0% { transform: translateX(0) } 50% { transform: translateX(-15px) } 100% { transform: translateX(15px) } }
@keyframes dm-marker  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.15) } 100% { transform: translateY(0) scale(.95) } }
@keyframes dm-candle  { 0% { transform: rotate(-2deg); box-shadow: 0 0 20px 6px rgba(200,160,106,.4) } 50% { transform: rotate(3deg); box-shadow: 0 0 35px 12px rgba(200,160,106,.6) } 100% { transform: rotate(-1deg); box-shadow: 0 0 25px 8px rgba(200,160,106,.5) } }

.scn-strategic-disposition-small-change { background: linear-gradient(90deg, #0c0e0c 0%, #1a1c1a 50%, #0c0e0c 100%), radial-gradient(ellipse at 50% 50%, #1c1e1c 0%, transparent 80%); }
.scn-strategic-disposition-small-change .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0c0a 0%, #141614 40%, #0a0c0a 100%); opacity:.6; animation: sd-bg 20s linear infinite alternate; }
.scn-strategic-disposition-small-change .road { position:absolute; top:0; bottom:0; width:20%; background: repeating-linear-gradient(180deg, #2c2e2c 0px, #2c2e2c 4px, #1c1e1c 4px, #1c1e1c 8px); opacity:.4; }
.scn-strategic-disposition-small-change .road-left { left:25%; }
.scn-strategic-disposition-small-change .road-right { right:25%; }
.scn-strategic-disposition-small-change .column { position:absolute; width:12%; height:8%; background: linear-gradient(180deg, #3a3c3a 0%, #1a1c1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: sd-march 8s linear infinite; }
.scn-strategic-disposition-small-change .column-a { left:29%; animation-delay:0s; }
.scn-strategic-disposition-small-change .column-b { left:63%; animation-delay:-4s; }
.scn-strategic-disposition-small-change .flanker { position:absolute; width:6%; height:40%; background: linear-gradient(180deg, #2a2c2a 0%, #1a1c1a 100%); border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,.3); animation: sd-flank 6s ease-in-out infinite; }
.scn-strategic-disposition-small-change .flanker-a { left:10%; top:10%; animation-delay:-1.5s; }
.scn-strategic-disposition-small-change .flanker-b { right:10%; bottom:10%; animation-delay:-4.5s; }
@keyframes sd-bg     { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes sd-march  { 0% { transform: translateY(120vh) scale(.8); opacity:0 } 10% { transform: translateY(80vh) scale(1); opacity:1 } 90% { transform: translateY(-20vh) scale(1); opacity:1 } 100% { transform: translateY(-60vh) scale(.8); opacity:0 } }
@keyframes sd-flank  { 0% { transform: translateX(-20px) scaleY(.95) } 50% { transform: translateX(20px) scaleY(1.05) } 100% { transform: translateX(-20px) scaleY(.95) } }

/* defence-of-forests-rear-use */
.scn-defence-of-forests-rear-use {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 50%, #b8967a 100%),
              radial-gradient(circle at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-defence-of-forests-rear-use .dfr-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b8 0%, #c8a882 100%); }
.scn-defence-of-forests-rear-use .dfr-window { position:absolute; top:15%; left:30%; width:40%; height:45%; border:8px solid #6a4a2e; background: none; border-radius:4px; box-shadow:inset 0 0 0 4px #8b6e4e; }
.scn-defence-of-forests-rear-use .dfr-window-pane { position:absolute; top:15%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #c8d8f0 0%, #a0b8d0 100%); opacity:0.5; animation: dfr-glow 6s ease-in-out infinite alternate; }
.scn-defence-of-forests-rear-use .dfr-forest-bg { position:absolute; top:15%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); clip-path: polygon(0% 100%, 20% 60%, 35% 80%, 50% 40%, 65% 70%, 80% 50%, 100% 100%); animation: dfr-forest 12s ease-in-out infinite alternate; }
.scn-defence-of-forests-rear-use .dfr-table { position:absolute; bottom:25%; left:45%; width:100px; height:15px; background: #6a4a2e; border-radius:4px; transform: perspective(300px) rotateX(10deg); box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-defence-of-forests-rear-use .dfr-lantern { position:absolute; bottom:42%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #d4a050 0%, #b08030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 12px rgba(240,192,96,.4); animation: dfr-lantern 4s ease-in-out infinite alternate; }
.scn-defence-of-forests-rear-use .dfr-chair { position:absolute; bottom:24%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; transform: perspective(100px) rotateY(10deg); }
.scn-defence-of-forests-rear-use .dfr-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); animation: dfr-shadow 8s ease-in-out infinite alternate; }
@keyframes dfr-glow { 0% { opacity:0.4; box-shadow:0 0 0 0 rgba(255,255,220,0.2); } 50% { opacity:0.6; box-shadow:0 0 12px 6px rgba(255,255,220,0.4); } 100% { opacity:0.5; box-shadow:0 0 4px 2px rgba(255,255,220,0.3); } }
@keyframes dfr-forest { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-2px) scale(1.02); } 100% { transform:translateX(0) scale(1); } }
@keyframes dfr-lantern { 0% { transform:rotate(-3deg) translateY(0); box-shadow:0 0 20px 8px #f0c060; } 50% { transform:rotate(3deg) translateY(-2px); box-shadow:0 0 30px 12px #fad080; } 100% { transform:rotate(-3deg) translateY(0); box-shadow:0 0 20px 8px #f0c060; } }
@keyframes dfr-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

/* defence-of-forests-indirect-similar-to-mountains */
.scn-defence-of-forests-indirect-similar-to-mountains {
  background: linear-gradient(180deg, #9fc8e8 0%, #e8f0c0 60%, #c8d8a0 100%),
              radial-gradient(circle at 70% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0d4f0 0%, #c8e8f0 50%, transparent 100%); }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-ridge { position:absolute; bottom:50%; left:0; right:0; height:15%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); clip-path: polygon(0% 100%, 15% 40%, 30% 80%, 45% 20%, 60% 60%, 75% 10%, 100% 100%); animation: dfi-ridge 20s ease-in-out infinite alternate; }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-forest { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); clip-path: polygon(0% 100%, 10% 60%, 20% 90%, 30% 40%, 40% 80%, 50% 50%, 60% 70%, 70% 30%, 80% 60%, 90% 20%, 100% 100%); animation: dfi-forest 15s ease-in-out infinite alternate; }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-hill { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a6a 0%, #5a6a4a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-stream { position:absolute; bottom:18%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #a0c0d0 0%, #80a0b0 100%); border-radius: 50% 50% 20% 20%; animation: dfi-stream 8s ease-in-out infinite alternate; }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-bird { position:absolute; top:20%; left:30%; width:20px; height:10px; background: #2a2a2a; border-radius: 50% 50% 0 0; clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%); transform: rotate(-10deg); animation: dfi-bird 10s ease-in-out infinite; }
.scn-defence-of-forests-indirect-similar-to-mountains .dfi-sun { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe870 0%, #ffd040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd040; animation: dfi-sun 30s ease-in-out infinite alternate; }
@keyframes dfi-ridge { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.01); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes dfi-forest { 0% { transform:scaleX(1) scaleY(1); } 50% { transform:scaleX(1.02) scaleY(1.01); } 100% { transform:scaleX(1) scaleY(1); } }
@keyframes dfi-stream { 0% { width:20%; opacity:0.6; } 50% { width:22%; opacity:0.8; } 100% { width:20%; opacity:0.6; } }
@keyframes dfi-bird { 0% { transform:translateX(0) rotate(-10deg); } 50% { transform:translateX(30px) rotate(5deg); } 100% { transform:translateX(0) rotate(-10deg); } }
@keyframes dfi-sun { 0% { opacity:0.7; box-shadow:0 0 30px 15px #ffd040; } 50% { opacity:1; box-shadow:0 0 50px 25px #ffe870; } 100% { opacity:0.7; box-shadow:0 0 30px 15px #ffd040; } }

/* defence-of-forests-national-armament */
.scn-defence-of-forests-national-armament {
  background: linear-gradient(180deg, #1a3a2a 0%, #2a4a3a 40%, #4a6a4a 100%),
              radial-gradient(circle at 50% 20%, #4a8a4a 0%, transparent 70%);
}
.scn-defence-of-forests-national-armament .dfn-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b0d8f0 0%, #a0c0d0 60%, transparent 100%); animation: dfn-sky 15s ease-in-out infinite alternate; }
.scn-defence-of-forests-national-armament .dfn-trunk-left { position:absolute; bottom:0; left:10%; width:12%; height:100%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.3); }
.scn-defence-of-forests-national-armament .dfn-trunk-right { position:absolute; bottom:0; right:10%; width:12%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-defence-of-forests-national-armament .dfn-branch { position:absolute; top:30%; left:20%; width:30%; height:6%; background: #3a2a1a; border-radius: 40% 40% 10% 10%; transform: rotate(-20deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: dfn-branch 20s ease-in-out infinite alternate; }
.scn-defence-of-forests-national-armament .dfn-dapple { position:absolute; top:10%; left:30%; width:40%; height:40%; background: radial-gradient(circle at 40% 60%, rgba(200,230,120,0.4) 0%, transparent 70%); animation: dfn-dapple 8s ease-in-out infinite alternate; }
.scn-defence-of-forests-national-armament .dfn-flagpole { position:absolute; top:15%; left:55%; width:4px; height:30px; background: #4a2a1a; }
.scn-defence-of-forests-national-armament .dfn-flag { position:absolute; top:15%; left:55%; width:20px; height:12px; background: #a05030; border-radius: 0 50% 50% 0 / 0 50% 50% 0; transform-origin: left center; animation: dfn-flag 4s ease-in-out infinite alternate; }
.scn-defence-of-forests-national-armament .dfn-light { position:absolute; top:5%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: dfn-light 10s ease-in-out infinite alternate; }
@keyframes dfn-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes dfn-branch { 0% { transform:rotate(-20deg) translateX(0); } 50% { transform:rotate(-22deg) translateX(2px); } 100% { transform:rotate(-20deg) translateX(0); } }
@keyframes dfn-dapple { 0% { opacity:0.3; transform:scale(1) translateX(0); } 50% { opacity:0.6; transform:scale(1.1) translateX(-5px); } 100% { opacity:0.3; transform:scale(1) translateX(0); } }
@keyframes dfn-flag { 0% { transform:rotate(0deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(0deg); } }
@keyframes dfn-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* the-cordon-intro */
.scn-the-cordon-intro {
  background: linear-gradient(180deg, #d4d8c0 0%, #b0b8a0 40%, #8a927a 100%),
              radial-gradient(circle at 80% 20%, #f0e8d0 0%, transparent 70%);
}
.scn-the-cordon-intro .tci-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0d0e0 0%, #e0e8d0 50%, transparent 100%); }
.scn-the-cordon-intro .tci-hills { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 12px rgba(0,20,0,.3); }
.scn-the-cordon-intro .tci-post-1,
.scn-the-cordon-intro .tci-post-2,
.scn-the-cordon-intro .tci-post-3,
.scn-the-cordon-intro .tci-post-4 { position:absolute; bottom:30%; width:8px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-the-cordon-intro .tci-post-1 { left:15%; animation: tci-post 6s ease-in-out infinite; animation-delay: 0s; }
.scn-the-cordon-intro .tci-post-2 { left:35%; animation: tci-post 6s ease-in-out infinite; animation-delay: -1.5s; }
.scn-the-cordon-intro .tci-post-3 { left:55%; animation: tci-post 6s ease-in-out infinite; animation-delay: -3s; }
.scn-the-cordon-intro .tci-post-4 { left:75%; animation: tci-post 6s ease-in-out infinite; animation-delay: -4.5s; }
.scn-the-cordon-intro .tci-flag { position:absolute; bottom:30%; left:75%; width:20px; height:15px; background: #a05030; border-radius: 0 50% 50% 0 / 0 50% 50% 0; transform-origin: left center; animation: tci-flag 4s ease-in-out infinite alternate; }
.scn-the-cordon-intro .tci-cloud { position:absolute; top:12%; right:10%; width:80px; height:14px; background: rgba(255,255,240,0.4); border-radius: 50%; filter: blur(8px); animation: tci-cloud 30s linear infinite; }
@keyframes tci-post { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes tci-flag { 0% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(6deg) translateX(2px); } 100% { transform:rotate(0deg) translateX(0); } }
@keyframes tci-cloud { 0% { transform:translateX(0); } 100% { transform:translateX(-120vw); } }

.scn-defence-of-theatre-special-character {
  background: linear-gradient(165deg, #f5e6d3 0%, #d9c2a7 100%), radial-gradient(ellipse at 30% 20%, #fff9ee 0%, transparent 70%);
}
.scn-defence-of-theatre-special-character .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  animation: dss-bg 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-special-character .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4bfa3 100%);
  border-bottom: 4px solid #b89a6e;
}
.scn-defence-of-theatre-special-character .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #6b4c2e 0%, #4a321e 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-special-character .map {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(135deg, #d4c9a8 0%, #bfb38e 50%, #a89b78 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: dss-map 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-special-character .figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2218 0%, #1f1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dss-figure 5s ease-in-out infinite;
}
.scn-defence-of-theatre-special-character .candle {
  position: absolute; bottom: 38%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6a3a 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-defence-of-theatre-special-character .glow {
  position: absolute; bottom: 42%; left: 54%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffeaa0 0%, #ffd060 30%, transparent 70%);
  border-radius: 50%; filter: blur(8px); opacity: 0.8;
  animation: dss-glow 3s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-special-character .shadow {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.15) 100%);
}
@keyframes dss-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dss-map { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.02) translateX(3px); } 100% { transform: scale(0.98) translateX(-2px); } }
@keyframes dss-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dss-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }

.scn-defence-of-theatre-beati-possidentes {
  background: linear-gradient(160deg, #fcf6e8 0%, #e6d7c0 100%), radial-gradient(ellipse at 50% 100%, #fff5e0 0%, transparent 60%);
}
.scn-defence-of-theatre-beati-possidentes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b563a 100%);
}
.scn-defence-of-theatre-beati-possidentes .wall-back {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #eedcc8 0%, #dcc8b0 100%);
}
.scn-defence-of-theatre-beati-possidentes .shelf-left {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #5a3d28 0%, #3d281a 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-beati-possidentes .shelf-right {
  position: absolute; top: 15%; right: 5%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #5a3d28 0%, #3d281a 100%);
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: dsb-shelf 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-beati-possidentes .globe {
  position: absolute; bottom: 32%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #4a90c8 0%, #2a5a7a 100%);
  border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: dsb-globe 8s ease-in-out infinite;
}
.scn-defence-of-theatre-beati-possidentes .stand {
  position: absolute; bottom: 20%; left: 47%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6b4a2e 0%, #3d281a 100%);
  border-radius: 2px;
}
.scn-defence-of-theatre-beati-possidentes .light {
  position: absolute; top: 0; left: 30%; right: 30%; height: 15%;
  background: radial-gradient(ellipse at center, #fff9d6 0%, transparent 100%);
  animation: dsb-light 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-beati-possidentes .particle {
  position: absolute; top: 25%; left: 60%; width: 4px; height: 4px;
  background: #ffedb0; border-radius: 50%; filter: blur(1px);
  animation: dsb-particle 12s linear infinite;
}
@keyframes dsb-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dsb-globe { 0% { transform: rotate(0deg) scale(1); } 33% { transform: rotate(10deg) scale(1.02); } 66% { transform: rotate(-5deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes dsb-light { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dsb-particle { 0% { transform: translateY(0) translateX(0); opacity: 1; } 50% { transform: translateY(-30px) translateX(15px); opacity: 0.3; } 100% { transform: translateY(-60px) translateX(-5px); opacity: 0; } }

.scn-defence-of-theatre-covering-everywhere {
  background: linear-gradient(170deg, #f0e5d0 0%, #d9c8a8 100%), radial-gradient(ellipse at 50% 80%, #fff4e0 0%, transparent 50%);
}
.scn-defence-of-theatre-covering-everywhere .bg-table {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(220,200,170,0.2) 0%, transparent 100%);
}
.scn-defence-of-theatre-covering-everywhere .table {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 8px; box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-covering-everywhere .map-large {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(135deg, #d4c8a0 0%, #bfb08a 50%, #a89872 100%);
  border-radius: 4px; border: 2px solid #8a7a5a;
  animation: dsc-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-covering-everywhere .pin {
  position: absolute; width: 8px; height: 12px; border-radius: 50% 50% 0 0; background: #c8553d;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-covering-everywhere .pin-1 { bottom: 42%; left: 30%; animation: dsc-pin1 6s ease-in-out infinite; }
.scn-defence-of-theatre-covering-everywhere .pin-2 { bottom: 35%; left: 50%; animation: dsc-pin2 8s ease-in-out infinite; }
.scn-defence-of-theatre-covering-everywhere .pin-3 { bottom: 28%; left: 70%; animation: dsc-pin3 7s ease-in-out infinite; }
.scn-defence-of-theatre-covering-everywhere .hand-left {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a082 0%, #a08062 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dsc-hand 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-covering-everywhere .hand-right {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a082 0%, #a08062 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dsc-hand 4s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-covering-everywhere .shadow-overlay {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
}
@keyframes dsc-map { 0% { transform: scale(1) rotate(0deg); } 33% { transform: scale(1.01) rotate(1deg); } 66% { transform: scale(0.99) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes dsc-pin1 { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dsc-pin2 { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.1); } }
@keyframes dsc-pin3 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(1px) rotate(5deg); } }
@keyframes dsc-hand { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(-2px) rotate(-1deg); } }

.scn-defence-of-theatre-aims-of-attack {
  background: linear-gradient(175deg, #1f1a1a 0%, #2a2420 100%), radial-gradient(ellipse at 50% 30%, #4a3a30 0%, transparent 60%);
}
.scn-defence-of-theatre-aims-of-attack .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,25,20,0.8) 0%, transparent 100%);
}
.scn-defence-of-theatre-aims-of-attack .pedestal {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 25%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-aims-of-attack .sword {
  position: absolute; bottom: 35%; left: 48%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #d0b8a0 30%, #a89070 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: dsa-sword 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-aims-of-attack .shield {
  position: absolute; bottom: 45%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #8a705a 0%, #5a4030 100%);
  border-radius: 50%; border: 3px solid #b09880;
  box-shadow: 0 4px 20px rgba(180,140,100,0.4);
  animation: dsa-shield 6s ease-in-out infinite;
}
.scn-defence-of-theatre-aims-of-attack .light-vertical {
  position: absolute; top: 0; left: 44%; right: 44%; height: 100%;
  background: linear-gradient(180deg, #ffe8c0 0%, #fff0d0 20%, transparent 80%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  opacity: 0.3; animation: dsa-light 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-aims-of-attack .sparkle {
  position: absolute; width: 6px; height: 6px; background: #ffd8a0; border-radius: 50%;
  filter: blur(1px); box-shadow: 0 0 8px #ffd060;
}
.scn-defence-of-theatre-aims-of-attack .sparkle-1 { top: 30%; left: 48%; animation: dsa-spark1 5s linear infinite; }
.scn-defence-of-theatre-aims-of-attack .sparkle-2 { top: 40%; left: 55%; animation: dsa-spark2 7s linear infinite 1s; }
.scn-defence-of-theatre-aims-of-attack .sparkle-3 { top: 50%; left: 42%; animation: dsa-spark3 6s linear infinite 2s; }
@keyframes dsa-sword { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes dsa-shield { 0% { transform: rotate(0deg) scale(1); } 33% { transform: rotate(12deg) scale(1.05); } 66% { transform: rotate(-8deg) scale(0.95); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes dsa-light { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes dsa-spark1 { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }
@keyframes dsa-spark2 { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-80px) scale(0.6); opacity: 0; } }
@keyframes dsa-spark3 { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-50px) scale(0.4); opacity: 0; } }

/* scene: subordinate-operations-common-aim */
.scn-subordinate-operations-common-aim { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%), radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%); }
.scn-subordinate-operations-common-aim .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #12121f 100%); animation: soca-wall 15s ease-in-out infinite alternate; }
.scn-subordinate-operations-common-aim .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f1a 0%, #1a120e 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-subordinate-operations-common-aim .table { position:absolute; bottom:18%; left:50%; width:200px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); }
.scn-subordinate-operations-common-aim .map { position:absolute; bottom:23%; left:50%; width:140px; height:90px; transform:translateX(-50%) rotate(-2deg); background: linear-gradient(135deg, #c8a87c 0%, #a6845a 100%); border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: soca-map 10s ease-in-out infinite; }
.scn-subordinate-operations-common-aim .lamp { position:absolute; bottom:30%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a40 0%, #4a3520 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-subordinate-operations-common-aim .lamp-glow { position:absolute; bottom:32%; left:50%; width:80px; height:80px; transform:translateX(-50%) translateY(-50%); background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,150,50,0.3) 40%, transparent 70%); border-radius:50%; pointer-events:none; animation: soca-glow 4s ease-in-out infinite; }
.scn-subordinate-operations-common-aim .figure-left { position:absolute; bottom:20%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soca-figure-left 6s ease-in-out infinite; }
.scn-subordinate-operations-common-aim .figure-right { position:absolute; bottom:20%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soca-figure-right 5s ease-in-out infinite; }
@keyframes soca-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes soca-map { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); box-shadow: 0 4px 8px rgba(0,0,0,0.4); } 50% { transform: translateX(-50%) rotate(-1deg) scale(1.02); box-shadow: 0 6px 12px rgba(0,0,0,0.5); } 100% { transform: translateX(-50%) rotate(-2deg) scale(1); box-shadow: 0 4px 8px rgba(0,0,0,0.4); } }
@keyframes soca-glow { 0% { opacity:0.7; transform: translateX(-50%) translateY(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) translateY(-50%) scale(1.1); } 100% { opacity:0.8; transform: translateX(-50%) translateY(-50%) scale(1); } }
@keyframes soca-figure-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes soca-figure-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* defence-of-theatre-four-efforts – calm, bright interior */
.scn-defence-of-theatre-four-efforts {
  background: linear-gradient(180deg, #f5efe0 0%, #e8dcc8 40%, #d5c6a8 100%),
              radial-gradient(ellipse at 30% 80%, #e0d0b0 0%, transparent 70%);
}
.scn-defence-of-theatre-four-efforts .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e6d6 0%, #dcccb4 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
  animation: dfe1-room 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-four-efforts .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(90deg, #c8b898 0%, #dcccb4 100%);
  border-right: 2px solid #b8a888;
}
.scn-defence-of-theatre-four-efforts .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(270deg, #c8b898 0%, #dcccb4 100%);
  border-left: 2px solid #b8a888;
}
.scn-defence-of-theatre-four-efforts .pillar {
  position: absolute; bottom: 22%; width: 6%; height: 55%;
  background: linear-gradient(90deg, #b0a080 0%, #d0c0a0 40%, #c0b090 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: dfe1-pillar 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-four-efforts .pillar-1 { left: 12%; animation-delay: 0s; }
.scn-defence-of-theatre-four-efforts .pillar-2 { left: 32%; animation-delay: 1.5s; }
.scn-defence-of-theatre-four-efforts .pillar-3 { left: 52%; animation-delay: 3s; }
.scn-defence-of-theatre-four-efforts .pillar-4 { left: 72%; animation-delay: 4.5s; }
.scn-defence-of-theatre-four-efforts .table {
  position: absolute; bottom: 8%; left: 50%; width: 60%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c88850 0%, #a06838 100%);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25);
}
.scn-defence-of-theatre-four-efforts .map-roll {
  position: absolute; bottom: 12%; left: 50%; width: 30%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #e8d8b0 0%, #d4c498 50%, #e8d8b0 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dfe1-roll 10s ease-in-out infinite alternate;
}
@keyframes dfe1-room {
  0% { opacity: 0.92; }
  50% { opacity: 1; }
  100% { opacity: 0.96; }
}
@keyframes dfe1-pillar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes dfe1-roll {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.02); }
  100% { transform: translateX(-50%) scaleX(0.98); }
}

/* defence-of-theatre-fortress-cover – calm, bright interior (war room) */
.scn-defence-of-theatre-fortress-cover {
  background: linear-gradient(180deg, #e2d5b8 0%, #d4c4a0 50%, #c4b48c 100%),
              radial-gradient(ellipse at 40% 60%, #dcccac 0%, transparent 80%);
}
.scn-defence-of-theatre-fortress-cover .map-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcb8 0%, #d0c0a0 100%);
  opacity: 0.8;
}
.scn-defence-of-theatre-fortress-cover .fortress-plan {
  position: absolute; bottom: 10%; left: 50%; width: 40%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #b87a40 0%, #8c5a28 100%),
              linear-gradient(45deg, #a06830 0%, #805020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  clip-path: polygon(20% 0%, 80% 0%, 100% 40%, 90% 100%, 10% 100%, 0% 40%);
  animation: dfc2-plan 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fortress-cover .army-row {
  position: absolute; bottom: 22%; height: 12%; width: 35%;
  background: linear-gradient(90deg, transparent, #4a6a5a 20%, #3a5a4a 80%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: dfc2-army 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fortress-cover .army-left { left: 10%; }
.scn-defence-of-theatre-fortress-cover .army-right { right: 10%; animation-delay: -4s; }
.scn-defence-of-theatre-fortress-cover .commander {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 15%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
}
.scn-defence-of-theatre-fortress-cover .pointer {
  position: absolute; bottom: 34%; left: 53%; width: 2%; height: 8%;
  transform: rotate(-20deg);
  background: #c8a060;
  border-radius: 20% 20% 50% 50%;
  animation: dfc2-point 5s ease-in-out infinite;
}
.scn-defence-of-theatre-fortress-cover .lamp {
  position: absolute; top: 15%; left: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #e8a030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 30px rgba(255,208,128,0.4);
  animation: dfc2-lamp 6s ease-in-out infinite alternate;
}
@keyframes dfc2-plan {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes dfc2-army {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(5px); }
  100% { opacity: 0.7; transform: translateX(-5px); }
}
@keyframes dfc2-point {
  0% { transform: rotate(-25deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1); }
  100% { transform: rotate(-25deg) scaleY(0.9); }
}
@keyframes dfc2-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 30px 20px rgba(255,208,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 40px rgba(255,208,128,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 35px 25px rgba(255,208,128,0.35); }
}

/* defence-of-theatre-behind-fortress-risk – tense, overcast */
.scn-defence-of-theatre-behind-fortress-risk {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #5a6a7a 0%, transparent 70%);
}
.scn-defence-of-theatre-behind-fortress-risk .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  animation: dbr3-sky 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-behind-fortress-risk .fortress-wall {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
}
.scn-defence-of-theatre-behind-fortress-risk .fortress-tower {
  position: absolute; bottom: 50%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-defence-of-theatre-behind-fortress-risk .figure-behind {
  position: absolute; bottom: 25%; left: 48%; width: 6%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dbr3-figure 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-behind-fortress-risk .shadow-ground {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: dbr3-shadow 7s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-behind-fortress-risk .banner-rag {
  position: absolute; bottom: 52%; left: 50%; width: 4%; height: 18%;
  background: linear-gradient(0deg, #5e1a1d 0%, #3a0a0c 100%);
  clip-path: polygon(50% 0%, 100% 20%, 80% 40%, 100% 60%, 50% 80%, 0% 60%, 20% 40%, 0% 20%);
  animation: dbr3-banner 4s ease-in-out infinite;
}
.scn-defence-of-theatre-behind-fortress-risk .cloud-sheet {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(100,120,140,0.6) 0%, transparent 100%);
  filter: blur(15px);
  animation: dbr3-cloud 30s linear infinite alternate;
}
@keyframes dbr3-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dbr3-figure {
  0% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes dbr3-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.9); }
}
@keyframes dbr3-banner {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dbr3-cloud {
  0% { transform: translateX(0); opacity: 0.8; }
  100% { transform: translateX(-30px); opacity: 0.5; }
}

/* defence-of-theatre-balance-chances – calm, bright interior (study) */
.scn-defence-of-theatre-balance-chances {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c8b898 100%),
              radial-gradient(ellipse at 70% 40%, #e0d0b8 0%, transparent 60%);
}
.scn-defence-of-theatre-balance-chances .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e6d0 0%, #d8c8b0 100%);
}
.scn-defence-of-theatre-balance-chances .desk {
  position: absolute; bottom: 8%; left: 50%; width: 70%; height: 22%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b88858 0%, #90683a 100%);
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-balance-chances .scale-base {
  position: absolute; bottom: 22%; left: 50%; width: 30%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #a08050 0%, #c0a870 50%, #a08050 100%);
  border-radius: 6px;
}
.scn-defence-of-theatre-balance-chances .scale-arm {
  position: absolute; bottom: 32%; width: 20%; height: 2%;
  background: #8a7040;
  transform-origin: bottom center;
  animation: dbc4-arm 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-balance-chances .scale-left {
  left: 25%;
  transform: rotate(-10deg);
  animation-delay: 0s;
}
.scn-defence-of-theatre-balance-chances .scale-right {
  right: 25%;
  transform: rotate(10deg);
  animation-delay: -6s;
}
.scn-defence-of-theatre-balance-chances .scale-pan {
  position: absolute; bottom: 26%; width: 12%; height: 6%;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(180deg, #b89860 0%, #906838 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-balance-chances .pan-left { left: 22%; }
.scn-defence-of-theatre-balance-chances .pan-right { right: 22%; }
.scn-defence-of-theatre-balance-chances .scroll {
  position: absolute; bottom: 14%; left: 38%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #e0d0a8 0%, #c8b888 100%);
  border-radius: 20% 20% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: dbc4-scroll 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-balance-chances .inkwell {
  position: absolute; bottom: 16%; right: 36%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
@keyframes dbc4-arm {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(8deg); }
}
@keyframes dbc4-scroll {
  0% { transform: rotate(-12deg) scaleY(1); }
  50% { transform: rotate(-8deg) scaleY(1.05); }
  100% { transform: rotate(-14deg) scaleY(0.95); }
}

.scn-introduction-victory-and-organisation {
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%), radial-gradient(ellipse at 60% 40%, #2a1c10 0%, transparent 70%);
}
.scn-introduction-victory-and-organisation .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410, #0f0b08); animation: iv-bg 10s ease-in-out infinite alternate; }
.scn-introduction-victory-and-organisation .wall { position:absolute; bottom:50%; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1c10, #1a1410); border-radius: 20% 20% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); }
.scn-introduction-victory-and-organisation .desk { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #3a2a1a, #1a140a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: iv-desk 12s ease-in-out infinite; }
.scn-introduction-victory-and-organisation .map { position:absolute; bottom:25%; left:35%; width:30%; height:10%; background: linear-gradient(135deg, #5a4a3a, #3a2a1a); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: iv-map 20s ease-in-out infinite; }
.scn-introduction-victory-and-organisation .figure { position:absolute; bottom:25%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iv-figure 6s ease-in-out infinite; }
.scn-introduction-victory-and-organisation .candle { position:absolute; bottom:28%; left:38%; width:6px; height:12px; background: linear-gradient(180deg, #d4a060 0%, #a07030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #d4a060, 0 0 40px 16px rgba(212,160,96,.3); animation: iv-candle 2s ease-in-out infinite alternate; }
.scn-introduction-victory-and-organisation .shadow { position:absolute; bottom:20%; left:40%; width:40px; height:10px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(4px); animation: iv-shadow 6s ease-in-out infinite; }
@keyframes iv-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes iv-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes iv-map { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } }
@keyframes iv-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes iv-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(0.95) } }
@keyframes iv-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.2) } 100% { transform: translateX(-3px) scaleX(0.9) } }

.scn-introduction-statesman-strike-first {
  background: linear-gradient(180deg, #0f0f1a 0%, #050508 100%), radial-gradient(ellipse at 40% 50%, #1a1a2e 0%, transparent 70%);
}
.scn-introduction-statesman-strike-first .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a12, #030306); animation: is-bg 8s ease-in-out infinite alternate; }
.scn-introduction-statesman-strike-first .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #12101a, #0a0810); }
.scn-introduction-statesman-strike-first .wall { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a1825, #0f0d18); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-introduction-statesman-strike-first .statesman-figure { position:absolute; bottom:30%; left:50%; width:24px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: is-figure 4s ease-in-out infinite; }
.scn-introduction-statesman-strike-first .arm { position:absolute; bottom:55%; left:56%; width:30px; height:6px; background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 2px; transform-origin: left center; animation: is-arm 3s ease-in-out infinite; }
.scn-introduction-statesman-strike-first .shadow-sharp { position:absolute; bottom:20%; left:40%; width:60px; height:8px; background: rgba(0,0,0,.8); border-radius: 50%; filter: blur(2px); animation: is-shadow 4s ease-in-out infinite; }
.scn-introduction-statesman-strike-first .light-slice { position:absolute; bottom:30%; right:20%; width:4px; height:30%; background: linear-gradient(180deg, rgba(255,255,255,.05), transparent); filter: blur(2px); animation: is-light 5s ease-in-out infinite; }
@keyframes is-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes is-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(3deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes is-arm { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-30deg) translateX(2px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(15deg) translateX(-2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes is-shadow { 0% { transform: scaleX(1) opacity:.8 } 50% { transform: scaleX(1.3) opacity:1 } 100% { transform: scaleX(0.9) opacity:.6 } }
@keyframes is-light { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-introduction-clausewitz-influence-crowds {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-introduction-clausewitz-influence-crowds .study-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a, #1a0f05); animation: ic-bg 12s ease-in-out infinite alternate; }
.scn-introduction-clausewitz-influence-crowds .bookshelf { position:absolute; bottom:40%; left:10%; right:10%; height:40%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 20px, #2a1a0a 20px, #2a1a0a 22px); border-radius: 4px 4px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: ic-bookshelf 20s linear infinite; }
.scn-introduction-clausewitz-influence-crowds .figure-seated { position:absolute; bottom:30%; left:50%; transform: translateX(-60%); width:30px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ic-figure 8s ease-in-out infinite; }
.scn-introduction-clausewitz-influence-crowds .book-open { position:absolute; bottom:28%; left:44%; width:20px; height:14px; background: linear-gradient(180deg, #8a7a5a, #6a5a3a); border-radius: 2px; transform-origin: left center; animation: ic-book 10s ease-in-out infinite; }
.scn-introduction-clausewitz-influence-crowds .lamp { position:absolute; bottom:50%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #a07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 12px #d4a060, 0 0 60px 24px rgba(212,160,96,.3); animation: ic-lamp 3s ease-in-out infinite alternate; }
.scn-introduction-clausewitz-influence-crowds .dust-motes { position:absolute; top:20%; left:20%; width:10px; height:10px; background: rgba(255,255,200,.3); border-radius: 50%; filter: blur(3px); animation: ic-dust 30s linear infinite; }
.scn-introduction-clausewitz-influence-crowds .shadow-soft { position:absolute; bottom:20%; left:40%; width:50px; height:12px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px); animation: ic-shadow 8s ease-in-out infinite; }
@keyframes ic-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ic-bookshelf { 0% { background-position: 0 0 } 100% { background-position: 22px 0 } }
@keyframes ic-figure { 0% { transform: translateX(-60%) rotate(0deg) } 25% { transform: translateX(-58%) rotate(2deg) } 50% { transform: translateX(-60%) rotate(-1deg) } 75% { transform: translateX(-62%) rotate(1deg) } 100% { transform: translateX(-60%) rotate(0deg) } }
@keyframes ic-book { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(-5deg) scaleX(0.95) } 50% { transform: rotate(0deg) scaleX(1) } 75% { transform: rotate(3deg) scaleX(0.98) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes ic-lamp { 0% { box-shadow: 0 0 20px 8px #d4a060, 0 0 40px 16px rgba(212,160,96,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 16px #e0b070, 0 0 80px 32px rgba(224,176,112,.5); opacity:1 } 100% { box-shadow: 0 0 25px 10px #d4a060, 0 0 50px 20px rgba(212,160,96,.3); opacity:.85 } }
@keyframes ic-dust { 0% { transform: translate(0,0) rotate(0deg); opacity:.2 } 25% { transform: translate(20px,-10px) rotate(90deg); opacity:.5 } 50% { transform: translate(40px,5px) rotate(180deg); opacity:.3 } 75% { transform: translate(60px,-5px) rotate(270deg); opacity:.4 } 100% { transform: translate(80px,0) rotate(360deg); opacity:.2 } }
@keyframes ic-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

.scn-introduction-socialist-setback {
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%), radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, transparent 70%);
}
.scn-introduction-socialist-setback .hall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a, #0d0d0d); }
.scn-introduction-socialist-setback .platform { position:absolute; bottom:25%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #2a2a2a, #1a1a1a); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-introduction-socialist-setback .speaker { position:absolute; bottom:30%; left:50%; width:20px; height:45px; transform: translateX(-50%); background: linear-gradient(180deg, #151515 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ss-speaker 5s ease-in-out infinite; }
.scn-introduction-socialist-setback .crowd-back { position:absolute; bottom:15%; left:0; right:0; height:30%; background: repeating-linear-gradient(0deg, #1a1a1a 0px, #1a1a1a 4px, #0d0d0d 4px, #0d0d0d 6px); opacity:.6; animation: ss-crowd 15s ease-in-out infinite alternate; }
.scn-introduction-socialist-setback .crowd-front { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: repeating-linear-gradient(0deg, #2a2a2a 0px, #2a2a2a 3px, #1a1a1a 3px, #1a1a1a 5px); opacity:.8; animation: ss-crowd2 12s ease-in-out infinite alternate; }
.scn-introduction-socialist-setback .banner { position:absolute; bottom:35%; left:45%; width:30px; height:20px; background: linear-gradient(135deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: ss-banner 6s ease-in-out infinite; }
.scn-introduction-socialist-setback .shadow-crowd { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.8)); }
@keyframes ss-speaker { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ss-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ss-crowd2 { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes ss-banner { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(5deg) scaleY(1.05) } 50% { transform: rotate(-3deg) scaleY(0.95) } 75% { transform: rotate(4deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }

/* defence-of-theatre-1806-example – tense, overcast */
.scn-defence-of-theatre-1806-example {
  background:
    linear-gradient(180deg, #4a5350 0%, #3a4240 40%, #2a302e 100%),
    radial-gradient(ellipse at 50% 0%, #5a6360 0%, transparent 60%);
}
.scn-defence-of-theatre-1806-example .overcast-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7370 0%, #4a5350 60%, transparent 100%);
  animation: dt0e-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-example .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a4235 0%, #2a3225 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: dt0e-hills 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-example .plain {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a5230 0%, #3a4220 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-1806-example .tent {
  position: absolute; bottom: 28%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(160deg, #5a5a4a 0%, #3a3a2a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: dt0e-tent 8s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-example .cannon {
  position: absolute; bottom: 16%; left: 55%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  animation: dt0e-cannon 6s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-example .soldier {
  position: absolute; bottom: 18%; left: 40%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: dt0e-soldier 4s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-example .flagpole {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 70px;
  background: #4a4a3a;
  border-radius: 2px;
}
.scn-defence-of-theatre-1806-example .banner {
  position: absolute; bottom: 75%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  animation: dt0e-banner 5s ease-in-out infinite alternate;
}
@keyframes dt0e-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dt0e-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dt0e-tent { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes dt0e-cannon { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-6deg); } }
@keyframes dt0e-soldier { 0% { transform: translateX(0); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes dt0e-banner { 0% { transform: skewX(0deg); } 100% { transform: skewX(5deg); } }

/* defence-of-theatre-1806-ideas – tense, overcast */
.scn-defence-of-theatre-1806-ideas {
  background:
    linear-gradient(180deg, #4a5048 0%, #353a35 60%, #1e2320 100%),
    radial-gradient(ellipse at 50% 100%, #5a6058 0%, transparent 70%);
}
.scn-defence-of-theatre-1806-ideas .tent-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2e2a 0%, #1a1e1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
}
.scn-defence-of-theatre-1806-ideas .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #4a4232 0%, #2a2212 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-1806-ideas .map {
  position: absolute; bottom: 22%; left: 28%; width: 44%; height: 16%;
  background: linear-gradient(135deg, #5a5a3a 0%, #3a3a1a 100%);
  border-radius: 4%;
  animation: dt0i-map 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-ideas .lantern {
  position: absolute; bottom: 35%; left: 48%; width: 20px; height: 28px;
  background: radial-gradient(circle at 50% 40%, #d0a050 0%, #805030 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,150,50,0.4);
  animation: dt0i-lantern 3s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-ideas .officer1 {
  position: absolute; bottom: 20%; left: 15%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dt0i-officer1 5s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-ideas .officer2 {
  position: absolute; bottom: 20%; right: 15%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: dt0i-officer2 6s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-ideas .pointer {
  position: absolute; bottom: 32%; left: 40%; width: 30px; height: 4px;
  background: #6a5a3a;
  transform-origin: 0% 50%;
  transform: rotate(30deg);
  border-radius: 2px;
  animation: dt0i-pointer 8s ease-in-out infinite alternate;
}
@keyframes dt0i-map { 0% { transform: scale(1); } 50% { transform: scale(0.97) rotate(-1deg); } 100% { transform: scale(1); } }
@keyframes dt0i-lantern { 0% { opacity:0.8; box-shadow: 0 0 20px 5px rgba(200,150,50,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(200,150,50,0.6); } 100% { opacity:0.9; box-shadow: 0 0 25px 8px rgba(200,150,50,0.4); } }
@keyframes dt0i-officer1 { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes dt0i-officer2 { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes dt0i-pointer { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(25deg); } }

/* defence-of-theatre-1806-inaction – tense, dark */
.scn-defence-of-theatre-1806-inaction {
  background:
    linear-gradient(180deg, #0a0d0f 0%, #141a1c 50%, #1e2426 100%),
    radial-gradient(ellipse at 50% 100%, #1a2022 0%, transparent 80%);
}
.scn-defence-of-theatre-1806-inaction .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0d0f 0%, #141a1c 100%);
}
.scn-defence-of-theatre-1806-inaction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1e1a 0%, #0a0e0a 100%);
}
.scn-defence-of-theatre-1806-inaction .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #2a2212 0%, #1a120a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-1806-inaction .candle {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-defence-of-theatre-1806-inaction .candle::after {
  content: '';
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px;
  background: radial-gradient(circle, #d08030 0%, #402010 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,100,30,0.5);
  animation: dt0a-flame 2s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-inaction .duke-silhouette {
  position: absolute; bottom: 14%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #050505 0%, #000000 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: dt0a-duke 6s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-inaction .chair {
  position: absolute; bottom: 12%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #12120e 0%, #0a0a06 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-defence-of-theatre-1806-inaction .paper {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: #2a221a;
  transform: rotate(10deg);
  border-radius: 2%;
  animation: dt0a-paper 10s ease-in-out infinite alternate;
}
@keyframes dt0a-flame { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.15); } 100% { transform: translateX(-50%) scale(0.95); } }
@keyframes dt0a-duke { 0% { transform: translateX(0); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0); } }
@keyframes dt0a-paper { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(8deg); } }

/* defence-of-theatre-1806-three-plans – calm, bright interior */
.scn-defence-of-theatre-1806-three-plans {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #d4c8b8 40%, #b8a898 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8dc 0%, transparent 70%);
}
.scn-defence-of-theatre-1806-three-plans .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c8b8 0%, #b8a898 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
}
.scn-defence-of-theatre-1806-three-plans .window {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #bcd8e8 0%, #9ab8d0 100%);
  border: 6px solid #7a6a5a;
  border-radius: 4%;
  box-shadow: 0 0 40px 20px rgba(200,220,240,0.3);
  animation: dt0t-window 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-three-plans .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-1806-three-plans .plan-a {
  position: absolute; bottom: 25%; left: 22%; width: 18%; height: 12%;
  background: #c8b8a0;
  border-radius: 4%;
  transform: rotate(-3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dt0t-plan 15s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-three-plans .plan-b {
  position: absolute; bottom: 25%; left: 41%; width: 18%; height: 12%;
  background: #c8b8a0;
  border-radius: 4%;
  transform: rotate(1deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dt0t-plan 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-three-plans .plan-c {
  position: absolute; bottom: 25%; left: 60%; width: 18%; height: 12%;
  background: #c8b8a0;
  border-radius: 4%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: dt0t-plan 15s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-three-plans .councillor1 {
  position: absolute; bottom: 14%; left: 10%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: dt0t-councillor 8s ease-in-out infinite;
}
.scn-defence-of-theatre-1806-three-plans .councillor2 {
  position: absolute; bottom: 14%; left: 48%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: dt0t-councillor 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-1806-three-plans .councillor3 {
  position: absolute; bottom: 14%; right: 10%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: dt0t-councillor 8s ease-in-out infinite;
}
@keyframes dt0t-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dt0t-plan { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(0.98) rotate(0deg); } 100% { transform: scale(1) rotate(5deg); } }
@keyframes dt0t-councillor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-defence-mountains-valley-defence {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #8a7a5a 100%), radial-gradient(circle at 30% 40%, #b09870 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-valley-defence .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #5a4a3a, #7a6a5a);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: dmvd-wall 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-defence .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(90deg, #7a6a5a, #5a4a3a);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: dmvd-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-valley-defence .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #4a3a2a, #3a2a1a);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-defence-mountains-valley-defence .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #c8d8e8 0%, #a0b8d0 60%, #7a9aba 100%);
  border: 8px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.3), 0 0 20px rgba(180,200,220,0.2);
  animation: dmvd-window 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-defence .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a, #6a4a2a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-defence-mountains-valley-defence .map {
  position: absolute; bottom: 23%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(135deg, #d4c4a8 0%, #c4b498 50%, #b4a488 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dmvd-map 12s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-defence .candle {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0, #c0a070);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 12px 4px #ffd080;
  animation: dmvd-candle 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-defence .lantern {
  position: absolute; bottom: 30%; right: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0a060, #a08040);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #ffd080, 0 0 20px rgba(255,208,128,0.5);
  animation: dmvd-lantern 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-defence .chair {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a, #3a1a0a);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
@keyframes dmvd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes dmvd-window {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(1); opacity: 0.95; }
}
@keyframes dmvd-map {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmvd-candle {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 8px 2px #ffd080; }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 16px 6px #ffd080; }
  100% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 10px 3px #ffd080; }
}
@keyframes dmvd-lantern {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

.scn-defence-mountains-historical-examples {
  background: linear-gradient(180deg, #2a2a1a 0%, #4a3a2a 40%, #6a5a4a 100%), radial-gradient(circle at 70% 20%, #a09070 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-historical-examples .desk {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a, #5a3a1a);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-defence-mountains-historical-examples .book {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dmhe-book 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-historical-examples .scroll {
  position: absolute; bottom: 28%; right: 10%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #c4b08a, #a09070);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dmhe-scroll 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-historical-examples .quill {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #f0e8d0, #c0b098);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: dmhe-quill 5s ease-in-out infinite alternate;
}
.scn-defence-mountains-historical-examples .inkwell {
  position: absolute; bottom: 30%; left: 38%; width: 18px; height: 20px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-defence-mountains-historical-examples .lamp {
  position: absolute; top: 20%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c0a080, #a08060);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(255,200,120,0.4);
  animation: dmhe-lamp 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-historical-examples .paper {
  position: absolute; bottom: 32%; left: 15%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #e0d0b8, #c0b098);
  border-radius: 1px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.2);
  animation: dmhe-paper 7s ease-in-out infinite;
}
@keyframes dmhe-book {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes dmhe-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmhe-quill {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes dmhe-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,200,120,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,120,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,200,120,0.4); }
}
@keyframes dmhe-paper {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(1px); }
}

.scn-defence-mountains-valley-positions {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #5a4a3a 100%), radial-gradient(circle at 30% 70%, #8a7a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-valley-positions .table-map {
  position: absolute; inset: 10% 5% 10% 5%;
  background: linear-gradient(135deg, #7a6a4a, #5a4a2a);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
.scn-defence-mountains-valley-positions .map-grid {
  position: absolute; top: 15%; left: 10%; width: 80%; height: 70%;
  background: 
    repeating-linear-gradient(0deg, transparent, transparent 20px, #8a7a5a 20px, #8a7a5a 21px),
    repeating-linear-gradient(90deg, transparent, transparent 20px, #8a7a5a 20px, #8a7a5a 21px);
  background-color: #b8a888;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dmvp-grid 20s linear infinite;
}
.scn-defence-mountains-valley-positions .pin-red {
  position: absolute; top: 30%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #c8553d, #a0461a);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dmvp-pin 3s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-positions .pin-blue {
  position: absolute; top: 50%; left: 60%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #4a7a9a, #2a5a7a);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dmvp-pin 3s ease-in-out infinite alternate-reverse;
}
.scn-defence-mountains-valley-positions .compass {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c0b090 0%, #a09070 60%, #705030 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dmvp-compass 12s linear infinite;
}
.scn-defence-mountains-valley-positions .ruler {
  position: absolute; top: 20%; left: 5%; width: 20%; height: 8px;
  background: linear-gradient(90deg, #a09070, #b0a080);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: dmvp-ruler 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-valley-positions .map-edge {
  position: absolute; inset: 15% 10% 15% 10%;
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  pointer-events: none;
  animation: dmvp-edge 5s ease-in-out infinite alternate;
}
@keyframes dmvp-grid {
  0% { background-position: 0 0; }
  100% { background-position: 20px 20px; }
}
@keyframes dmvp-pin {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dmvp-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes dmvp-ruler {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(2px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes dmvp-edge {
  0% { border-color: #4a3a2a; }
  50% { border-color: #6a5a4a; }
  100% { border-color: #4a3a2a; }
}

.scn-defence-mountains-valleys-command-misconception {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(circle at 60% 30%, #4a4a6e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-defence-mountains-valleys-command-misconception .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3e, #3a3a4e, #2a2a3e);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-defence-mountains-valleys-command-misconception .window-light {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at center, #c8d8e8 0%, #b0c8d8 40%, transparent 100%);
  opacity: 0.1;
  animation: dmvc-light 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-valleys-command-misconception .large-map {
  position: absolute; top: 15%; left: 10%; width: 60%; height: 60%;
  background: linear-gradient(135deg, #b8a888, #988868);
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: dmvc-map 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-valleys-command-misconception .figure {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: dmvc-figure 6s ease-in-out infinite alternate;
}
.scn-defence-mountains-valleys-command-misconception .arm-point {
  position: absolute; bottom: 45%; left: 45%; width: 30px; height: 6px;
  background: #1a1a2a;
  border-radius: 3px;
  transform-origin: left center;
  transform: rotate(-30deg);
  animation: dmvc-arm 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-valleys-command-misconception .shadow {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent);
  animation: dmvc-shadow 5s ease-in-out infinite alternate;
}
@keyframes dmvc-light {
  0% { opacity: 0.08; }
  50% { opacity: 0.15; }
  100% { opacity: 0.1; }
}
@keyframes dmvc-map {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(1); }
}
@keyframes dmvc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dmvc-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes dmvc-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* attack-theatre-siege-costly */
.scn-attack-theatre-siege-costly {
  background: linear-gradient(180deg, #f5ead0 0%, #e0c9a0 40%, #c8a87a 100%),
              radial-gradient(ellipse at 70% 60%, #fff5e0 0%, transparent 60%);
}
.scn-attack-theatre-siege-costly .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d4be9a 100%); }
.scn-attack-theatre-siege-costly .table  { position:absolute; bottom:12%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8b6f4a 0%, #5a4025 100%); border-radius:12% 12% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3); }
.scn-attack-theatre-siege-costly .map    { position:absolute; bottom:18%; left:20%; right:20%; height:20%; background: linear-gradient(135deg, #f0e6c0 0%, #d4c4a0 50%, #bea880 100%); border-radius:4% / 8%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform: rotate(-2deg); animation: at1-map 20s ease-in-out infinite alternate; }
.scn-attack-theatre-siege-costly .candle { position:absolute; bottom:30%; left:35%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a87a 100%); border-radius:4px; }
.scn-attack-theatre-siege-costly .flame  { position:absolute; bottom:58%; left:35%; width:10px; height:16px; background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, #c07020 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(224,160,64,0.4); animation: at1-flame 3s ease-in-out infinite alternate; }
.scn-attack-theatre-siege-costly .inkwell{ position:absolute; bottom:24%; left:68%; width:14px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-attack-theatre-siege-costly .shadow { position:absolute; bottom:10%; left:30%; right:30%; height:6%; background: rgba(0,0,0,0.15); border-radius:50%; filter: blur(4px); animation: at1-shadow 12s ease-in-out infinite alternate; }
@keyframes at1-map { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(-2px); } }
@keyframes at1-flame { 0% { transform: scaleY(0.8) translateY(2px); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.9; } }
@keyframes at1-shadow { 0% { opacity:0.12; transform: scaleX(1); } 50% { opacity:0.2; transform: scaleX(1.1); } 100% { opacity:0.15; transform: scaleX(0.95); } }

/* attack-theatre-combat-object */
.scn-attack-theatre-combat-object {
  background: linear-gradient(180deg, #f2e8d6 0%, #ddd0b8 50%, #c4b4a0 100%),
              radial-gradient(ellipse at 30% 40%, #fffbec 0%, transparent 70%);
}
.scn-attack-theatre-combat-object .bg       { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #cebca0 100%); }
.scn-attack-theatre-combat-object .pedestal { position:absolute; bottom:15%; left:38%; right:38%; height:12%; background: linear-gradient(180deg, #a08060 0%, #70503a 100%); border-radius:20% 20% 10% 10% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-attack-theatre-combat-object .globe    { position:absolute; bottom:24%; left:35%; right:35%; height:35%; background: radial-gradient(circle at 35% 40%, #5a8a6a 0%, #2a5a3a 50%, #1a3a2a 100%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(40,80,60,0.3), inset -6px -6px 12px rgba(0,0,0,0.3); animation: at2-globe 25s ease-in-out infinite alternate; }
.scn-attack-theatre-combat-object .landmass { position:absolute; bottom:35%; left:38%; width:20%; height:12%; background: radial-gradient(circle at 50% 50%, #4a7a5a 0%, #2a5a3a 100%); border-radius:60% 30% 40% 20% / 40% 50% 30% 60%; filter: blur(2px); animation: at2-land 30s ease-in-out infinite alternate; }
.scn-attack-theatre-combat-object .shadow-globe { position:absolute; bottom:16%; left:30%; right:30%; height:8%; background: rgba(0,0,0,0.12); border-radius:50%; filter: blur(8px); }
.scn-attack-theatre-combat-object .highlight{ position:absolute; bottom:40%; left:36%; width:6%; height:6%; background: radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 100%); border-radius:50%; animation: at2-highlight 8s ease-in-out infinite alternate; }
@keyframes at2-globe { 0% { transform: rotate(-5deg) scale(0.98); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes at2-land { 0% { transform: translateX(0) scaleX(1); opacity:0.7; } 50% { transform: translateX(8px) scaleX(1.1); opacity:1; } 100% { transform: translateX(-4px) scaleX(0.9); opacity:0.8; } }
@keyframes at2-highlight { 0% { opacity:0.3; transform: scale(0.8); } 100% { opacity:0.7; transform: scale(1.2); } }

/* attack-theatre-means-without-battle */
.scn-attack-theatre-means-without-battle {
  background: linear-gradient(180deg, #f7eede 0%, #e3d6bc 50%, #cebea2 100%),
              radial-gradient(ellipse at 60% 50%, #fff8e8 0%, transparent 70%);
}
.scn-attack-theatre-means-without-battle .desk     { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #7a5f3e 0%, #4c3722 100%); border-radius:8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-attack-theatre-means-without-battle .letter   { position:absolute; bottom:20%; left:35%; right:30%; height:18%; background: linear-gradient(135deg, #f5eac8 0%, #d6c8a0 100%); border-radius:4% / 8%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); transform: rotate(1deg); animation: at3-letter 15s ease-in-out infinite alternate; }
.scn-attack-theatre-means-without-battle .seal     { position:absolute; bottom:30%; left:52%; width:16px; height:16px; background: radial-gradient(circle, #c84a2a 0%, #a03a1e 80%); border-radius:50%; box-shadow: 0 0 8px 3px rgba(200,74,42,0.5); animation: at3-seal 5s ease-in-out infinite alternate; }
.scn-attack-theatre-means-without-battle .wax-drip { position:absolute; bottom:28%; left:50%; width:6px; height:14px; background: linear-gradient(180deg, #c84a2a 0%, #8a2a12 100%); border-radius:0 0 50% 50%; transform: rotate(-6deg); }
.scn-attack-theatre-means-without-battle .pen      { position:absolute; bottom:22%; left:60%; width:4px; height:26px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 100%); border-radius:2px; transform: rotate(15deg); transform-origin: bottom center; animation: at3-pen 12s ease-in-out infinite alternate; }
.scn-attack-theatre-means-without-battle .inkwell2 { position:absolute; bottom:18%; left:25%; width:14px; height:16px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-attack-theatre-means-without-battle .shadow-letter { position:absolute; bottom:16%; left:32%; right:28%; height:4%; background: rgba(0,0,0,0.08); border-radius:50%; filter: blur(6px); animation: at3-shadow 15s ease-in-out infinite alternate; }
@keyframes at3-letter { 0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-0.5deg) translateX(2px); } 100% { transform: rotate(0.5deg) translateX(-1px); } }
@keyframes at3-seal { 0% { box-shadow: 0 0 6px 2px rgba(200,74,42,0.3); opacity:0.85; } 100% { box-shadow: 0 0 14px 6px rgba(200,74,42,0.6); opacity:1; } }
@keyframes at3-pen { 0% { transform: rotate(15deg) scaleY(0.95); } 50% { transform: rotate(12deg) scaleY(1.05); } 100% { transform: rotate(16deg) scaleY(1); } }
@keyframes at3-shadow { 0% { opacity:0.05; transform: scaleX(1); } 50% { opacity:0.1; transform: scaleX(1.1); } 100% { opacity:0.07; transform: scaleX(0.9); } }

/* attack-theatre-advantage */
.scn-attack-theatre-advantage {
  background: linear-gradient(180deg, #f2e6d4 0%, #dcccb4 40%, #c4b49a 100%),
              radial-gradient(ellipse at 30% 70%, #fff4e0 0%, transparent 50%);
}
.scn-attack-theatre-advantage .wall     { position:absolute; inset:0; background: linear-gradient(180deg, #e1d3be 0%, #c8b69e 100%); }
.scn-attack-theatre-advantage .window   { position:absolute; top:10%; left:10%; right:10%; height:50%; background: radial-gradient(ellipse at 50% 50%, #87ceeb 0%, #5a9ac8 60%, #3a7a9c 100%); border:12px solid #8b7350; border-radius:4%; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
.scn-attack-theatre-advantage .telescope{ position:absolute; bottom:30%; left:18%; width:12px; height:45px; background: linear-gradient(180deg, #d4b88a 0%, #a08050 100%); border-radius:6px 6px 8px 8px; transform: rotate(-25deg); transform-origin: bottom center; animation: at4-telescope 20s ease-in-out infinite alternate; }
.scn-attack-theatre-advantage .lens     { position:absolute; bottom:70%; left:17%; width:16px; height:8px; background: radial-gradient(circle, #b0e0ff 0%, #60a0d0 100%); border-radius:50%; box-shadow: 0 0 10px 4px #80b0e0; animation: at4-lens 5s ease-in-out infinite alternate; }
.scn-attack-theatre-advantage .stand    { position:absolute; bottom:10%; left:16%; width:18px; height:20%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30% / 30% 30% 50% 50%; }
.scn-attack-theatre-advantage .curtain  { position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:0 0 60% 60% / 0 0 40% 40%; animation: at4-curtain 10s ease-in-out infinite alternate; }
.scn-attack-theatre-advantage .light-beam { position:absolute; bottom:25%; right:30%; width:15%; height:30%; background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 100%); clip-path: polygon(0 0, 80% 0, 100% 100%, 0% 100%); animation: at4-beam 8s ease-in-out infinite alternate; }
@keyframes at4-telescope { 0% { transform: rotate(-25deg) scaleY(0.98); } 50% { transform: rotate(-20deg) scaleY(1.02); } 100% { transform: rotate(-28deg) scaleY(1); } }
@keyframes at4-lens { 0% { box-shadow: 0 0 8px 2px #80b0e0; opacity:0.7; } 100% { box-shadow: 0 0 20px 8px #b0d8ff; opacity:1; } }
@keyframes at4-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes at4-beam { 0% { opacity:0.1; transform: scaleX(0.9); } 100% { opacity:0.3; transform: scaleX(1.1); } }

.scn-no-second-spring { background: linear-gradient(180deg, #1f1a15 0%, #2a221c 50%, #1a1410 100%), radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 70%); }
.scn-no-second-spring .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); }
.scn-no-second-spring .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.8); }
.scn-no-second-spring .door { position: absolute; bottom: 22%; left: 50%; width: 80px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #2e251e 0%, #1f1913 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.5); }
.scn-no-second-spring .figure { position: absolute; bottom: 24%; left: 46%; width: 24px; height: 50px; background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns1-walk 5s ease-in-out infinite; }
.scn-no-second-spring .candle { position: absolute; bottom: 36%; left: 64%; width: 8px; height: 20px; background: linear-gradient(180deg, #d4b48c 0%, #8c6a50 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-no-second-spring .flame { position: absolute; bottom: 58%; left: 64%; width: 10px; height: 14px; background: radial-gradient(circle, #ffc080 0%, #ff8020 40%, #c04000 70%); border-radius: 50% 50% 80% 80%; transform: translateX(-50%); animation: ns1-flame 1.5s ease-in-out infinite alternate; box-shadow: 0 0 12px 8px rgba(255,128,32,0.4); }
.scn-no-second-spring .shadow { position: absolute; bottom: 22%; left: 50%; width: 70px; height: 80px; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); transform: translateX(-50%); border-radius: 50% 50% 60% 60%; animation: ns1-shadow 5s ease-in-out infinite; }
@keyframes ns1-walk { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(8px) translateY(-1px) rotate(-3deg); } }
@keyframes ns1-flame { 0% { transform: translateX(-50%) scale(1) rotate(-5deg); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.2) rotate(5deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9) rotate(-2deg); opacity: 0.85; } }
@keyframes ns1-shadow { 0%,100% { transform: translateX(-50%) scaleX(1); opacity: 0.6; } 50% { transform: translateX(-50%) scaleX(0.8); opacity: 0.8; } }

.scn-gradual-reduction-possible { background: linear-gradient(180deg, #1a1a2e 0%, #12121e 50%, #0a0a12 100%), radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%); }
.scn-gradual-reduction-possible .bg-deep { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #1a1a2e 0%, #12121e 80%); }
.scn-gradual-reduction-possible .desk { position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 8px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6); }
.scn-gradual-reduction-possible .hourglass { position: absolute; bottom: 40%; left: 50%; width: 30px; height: 45px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 2px 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-gradual-reduction-possible .sand-top { position: absolute; bottom: 58%; left: 50%; width: 16px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle, #c8a870 0%, #806040 100%); clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: grp-sand 20s linear infinite; }
.scn-gradual-reduction-possible .sand-bottom { position: absolute; bottom: 30%; left: 50%; width: 16px; height: 15px; transform: translateX(-50%); background: radial-gradient(circle, #c8a870 0%, #806040 100%); clip-path: polygon(50% 0, 0 100%, 100% 100%); animation: grp-sand-pile 20s linear infinite; }
.scn-gradual-reduction-possible .marker { position: absolute; bottom: 32%; left: 40%; width: 4px; height: 4px; background: #c8553d; border-radius: 50%; animation: grp-marker 8s ease-in-out infinite; box-shadow: 0 0 6px 2px rgba(200,85,61,0.6); }
.scn-gradual-reduction-possible .book { position: absolute; bottom: 28%; left: 25%; width: 30px; height: 8px; background: linear-gradient(180deg, #5e2a1a 0%, #3a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-gradual-reduction-possible .book:last-child { left: auto; right: 25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
@keyframes grp-sand { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.6); } 100% { transform: translateX(-50%) scaleY(0.2); } }
@keyframes grp-sand-pile { 0% { transform: translateX(-50%) scaleY(0.2); } 50% { transform: translateX(-50%) scaleY(0.6); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes grp-marker { 0%,100% { transform: translateX(0); opacity: 0.8; } 50% { transform: translateX(12px); opacity: 0.5; } }

.scn-moderate-advantage-gradual { background: linear-gradient(180deg, #2a241c 0%, #1f1a14 50%, #14120e 100%), radial-gradient(ellipse at 50% 30%, #3a2e22 0%, transparent 70%); }
.scn-moderate-advantage-gradual .wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #2a241c 0%, #1f1a14 100%); }
.scn-moderate-advantage-gradual .bookshelf { position: absolute; bottom: 20%; left: 5%; width: 30%; height: 70%; background: linear-gradient(180deg, #3a2e22 0%, #2a2018 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4); }
.scn-moderate-advantage-gradual .globe { position: absolute; bottom: 38%; left: 60%; width: 40px; height: 40px; background: radial-gradient(circle at 30% 30%, #6a8a6a 0%, #3a5a3a 40%, #2a4a2a 100%); border-radius: 50%; transform-origin: center; animation: mag-rotate 20s linear infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-moderate-advantage-gradual .globe-stand { position: absolute; bottom: 30%; left: 60%; width: 10px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; }
.scn-moderate-advantage-gradual .armchair { position: absolute; bottom: 10%; left: 10%; width: 60px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: mag-chair 12s ease-in-out infinite; }
.scn-moderate-advantage-gradual .lamp { position: absolute; bottom: 45%; left: 28%; width: 12px; height: 30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 4px; }
.scn-moderate-advantage-gradual .light { position: absolute; bottom: 50%; left: 28%; width: 30px; height: 30px; background: radial-gradient(circle, #ffe0a0 0%, #c0a060 40%, transparent 70%); transform: translate(-50%, 0); animation: mag-glow 4s ease-in-out infinite alternate; }
@keyframes mag-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes mag-chair { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes mag-glow { 0% { opacity: 0.6; transform: translate(-50%, 0) scale(1); } 50% { opacity: 1; transform: translate(-50%, 0) scale(1.2); } 100% { opacity: 0.7; transform: translate(-50%, 0) scale(0.9); } }

.scn-seven-years-war-example { background: linear-gradient(180deg, #1a1815 0%, #12100e 50%, #0a0a08 100%), radial-gradient(ellipse at 40% 50%, #2a2018 0%, transparent 70%); }
.scn-seven-years-war-example .bg-deep { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #1a1815 0%, #0a0a08 100%); }
.scn-seven-years-war-example .table { position: absolute; bottom: 10%; left: 5%; right: 5%; height: 50%; background: linear-gradient(180deg, #3a2e22 0%, #1f1a14 100%); border-radius: 6px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6); }
.scn-seven-years-war-example .map { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%; background: linear-gradient(135deg, #5a4a3a 0%, #8a7a5a 30%, #5a4a3a 60%, #7a6a4a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-seven-years-war-example .pin { position: absolute; bottom: 38%; left: 30%; width: 6px; height: 6px; background: #a0461a; border-radius: 50%; box-shadow: 0 0 4px 2px rgba(160,70,26,0.6); animation: syw-pin 1s ease-in-out infinite alternate; }
.scn-seven-years-war-example .pin-1 { bottom: 40%; left: 35%; animation-delay: 0s; }
.scn-seven-years-war-example .pin-2 { bottom: 36%; left: 55%; animation-delay: 0.3s; }
.scn-seven-years-war-example .pin-3 { bottom: 42%; left: 60%; animation-delay: 0.6s; }
.scn-seven-years-war-example .lantern { position: absolute; bottom: 55%; left: 50%; width: 14px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-seven-years-war-example .glow { position: absolute; bottom: 58%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, 0); background: radial-gradient(circle, #ffc080 0%, transparent 70%); animation: syw-glow 2s ease-in-out infinite alternate; }
@keyframes syw-pin { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-4px) scale(1.3); } }
@keyframes syw-glow { 0% { opacity: 0.7; transform: translate(-50%, 0) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, 0) scale(1.1); } 100% { opacity: 0.6; transform: translate(-50%, 0) scale(0.8); } }

.scn-attack-uniform-no-gradations {
  background: radial-gradient(ellipse at 60% 30%, #f8f4e6 30%, transparent 60%),
              linear-gradient(180deg, #e8e0d0 0%, #c8bca8 50%, #a89880 100%);
}
.scn-attack-uniform-no-gradations .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c9b5 0%, #b8a990 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(180,140,100,.3);
}
.scn-attack-uniform-no-gradations .window {
  position: absolute; top: 10%; left: 55%; width: 120px; height: 150px;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #f0e4c0 70%);
  border: 6px solid #9a7c5c; border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,248,224,.8), 0 0 60px rgba(255,248,224,.3);
  animation: ai1-window 8s ease-in-out infinite alternate;
}
.scn-attack-uniform-no-gradations .desk {
  position: absolute; bottom: 12%; left: 10%; right: 30%; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-attack-uniform-no-gradations .chair {
  position: absolute; bottom: 16%; left: 18%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-attack-uniform-no-gradations .figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 20%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; transform: translateX(-50%);
  animation: ai1-figure 5s ease-in-out infinite alternate;
}
.scn-attack-uniform-no-gradations .lamp {
  position: absolute; bottom: 18%; left: 38%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffe8b0 0%, #d4a050 80%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(212,160,80,.5);
  animation: ai1-lamp 4s ease-in-out infinite;
}
.scn-attack-uniform-no-gradations .book {
  position: absolute; bottom: 13%; left: 14%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-10deg);
}
@keyframes ai1-window { 0% { opacity: .85; box-shadow: inset 0 0 30px rgba(255,248,224,.6); } 100% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,248,224,.9); } }
@keyframes ai1-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ai1-lamp { 0% { transform: translateY(0); box-shadow: 0 0 25px 6px rgba(212,160,80,.4); } 50% { transform: translateY(-1px); box-shadow: 0 0 35px 10px rgba(212,160,80,.6); } 100% { transform: translateY(0); box-shadow: 0 0 25px 6px rgba(212,160,80,.4); } }

.scn-attack-means {
  background: radial-gradient(ellipse at 30% 60%, #f0eadd 30%, transparent 70%),
              linear-gradient(180deg, #dfd3c3 0%, #bca58a 50%, #a0886e 100%);
}
.scn-attack-means .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 20px 20px; box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-attack-means .map {
  position: absolute; bottom: 18%; left: 12%; right: 12%; height: 60px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: ai2-map 12s ease-in-out infinite alternate;
}
.scn-attack-means .candle {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d090 0%, #d4a050 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(212,160,80,.6);
  animation: ai2-candle 3s ease-in-out infinite alternate;
}
.scn-attack-means .hand {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg); transform-origin: bottom center;
  animation: ai2-hand 6s ease-in-out infinite alternate;
}
.scn-attack-means .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.15) 0%, transparent 70%);
  filter: blur(8px); animation: ai2-shadow 8s ease-in-out infinite;
}
.scn-attack-means .fortress {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ai2-fortress 15s ease-in-out infinite alternate;
}
@keyframes ai2-map { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ai2-candle { 0% { box-shadow: 0 0 15px 4px rgba(212,160,80,.5); transform: translateY(0); } 100% { box-shadow: 0 0 25px 8px rgba(212,160,80,.7); transform: translateY(-1px); } }
@keyframes ai2-hand { 0% { transform: rotate(10deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(10deg); } }
@keyframes ai2-shadow { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes ai2-fortress { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-objects-of-attack {
  background: radial-gradient(ellipse at 50% 40%, #f4ede2 30%, transparent 70%),
              linear-gradient(180deg, #d6cbbb 0%, #b8a890 50%, #9a8872 100%);
}
.scn-objects-of-attack .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ccc0ad 0%, #a89a84 100%);
  border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,.1);
}
.scn-objects-of-attack .painting {
  position: absolute; top: 12%; left: 25%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89078 100%);
  border: 4px solid #8a705a; border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: ai3-painting 10s ease-in-out infinite alternate;
}
.scn-objects-of-attack .sofa {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20px 20px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-objects-of-attack .lamp {
  position: absolute; bottom: 30%; right: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px rgba(200,180,140,.4);
  animation: ai3-lamp 4s ease-in-out infinite;
}
.scn-objects-of-attack .rug {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%; opacity: .7;
  animation: ai3-rug 18s ease-in-out infinite alternate;
}
.scn-objects-of-attack .potted-plant {
  position: absolute; bottom: 12%; left: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ai3-plant 7s ease-in-out infinite;
}
@keyframes ai3-painting { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ai3-lamp { 0% { box-shadow: 0 0 15px 3px rgba(200,180,140,.3); } 50% { box-shadow: 0 0 25px 6px rgba(200,180,140,.5); } 100% { box-shadow: 0 0 15px 3px rgba(200,180,140,.3); } }
@keyframes ai3-rug { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes ai3-plant { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-objects-of-attack-gradation {
  background: radial-gradient(ellipse at 40% 50%, #f1ebdd 30%, transparent 70%),
              linear-gradient(180deg, #d9ceb9 0%, #b4a488 50%, #9a8a6e 100%);
}
.scn-objects-of-attack-gradation .desk {
  position: absolute; bottom: 8%; left: 8%; right: 8%; height: 45px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 16px 16px; box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-objects-of-attack-gradation .paper {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 50px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.15);
  animation: ai4-paper 10s ease-in-out infinite alternate;
}
.scn-objects-of-attack-gradation .inkwell {
  position: absolute; bottom: 22%; left: 28%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-objects-of-attack-gradation .quill {
  position: absolute; bottom: 24%; left: 32%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0d4c0 0%, #a09080 100%);
  border-radius: 80% 80% 20% 20% / 90% 90% 10% 10%;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: ai4-quill 6s ease-in-out infinite alternate;
}
.scn-objects-of-attack-gradation .candle {
  position: absolute; bottom: 24%; right: 30%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #f2d8a0 0%, #d4a050 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(212,160,80,.5);
  animation: ai4-candle 3s ease-in-out infinite alternate;
}
.scn-objects-of-attack-gradation .figure {
  position: absolute; bottom: 16%; left: 45%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 20%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: ai4-figure 5s ease-in-out infinite alternate;
}
@keyframes ai4-paper { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ai4-quill { 0% { transform: rotate(-35deg); } 50% { transform: rotate(-25deg); } 100% { transform: rotate(-35deg); } }
@keyframes ai4-candle { 0% { box-shadow: 0 0 15px 4px rgba(212,160,80,.4); transform: translateY(0); } 100% { box-shadow: 0 0 25px 8px rgba(212,160,80,.6); transform: translateY(-1px); } }
@keyframes ai4-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }

.scn-destruction-occupation {
  background: linear-gradient(135deg, #f5e6d0 0%, #d9c6a8 40%, #c0a882 100%), radial-gradient(ellipse at 70% 30%, rgba(200,180,150,0.3) 0%, transparent 60%);
}
.scn-destruction-occupation .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e6d7c0 0%, #cdb89a 100%); }
.scn-destruction-occupation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a68a6a 0%, #7a5e3e 100%); border-top: 4px solid #8a6e4e; }
.scn-destruction-occupation .window { position:absolute; top:12%; left:55%; width:90px; height:100px; background: linear-gradient(180deg, #b0d0f0 0%, #88b0d8 100%); border: 6px solid #6a4a2a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); animation: do-window 8s ease-in-out infinite alternate; }
.scn-destruction-occupation .table { position:absolute; bottom:26%; left:20%; width:140px; height:12px; background: linear-gradient(90deg, #6a4a2a 0%, #8c6b4a 50%, #5a3a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-destruction-occupation .map { position:absolute; bottom:29%; left:24%; width:80px; height:60px; background: linear-gradient(180deg, #e8d8b0 0%, #d4c090 50%, #c0a870 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: do-map 12s ease-in-out infinite alternate; }
.scn-destruction-occupation .figure { position:absolute; bottom:26%; left:48%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: do-figure 6s ease-in-out infinite; }
.scn-destruction-occupation .lamp { position:absolute; top:8%; left:30%; width:10px; height:30px; background: linear-gradient(180deg, #d4a85c 0%, #b08030 100%); border-radius:4px; box-shadow: 0 0 30px 8px rgba(200,150,80,0.4); animation: do-lamp 4s ease-in-out infinite alternate; }
.scn-destruction-occupation .shadow { position:absolute; bottom:24%; left:42%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: do-shadow 6s ease-in-out infinite; }
@keyframes do-window { 0% { opacity:0.8; box-shadow: inset 0 0 30px rgba(255,255,200,0.2); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,200,0.4); } 100% { opacity:0.9; box-shadow: inset 0 0 40px rgba(255,255,200,0.3); } }
@keyframes do-map { 0% { transform: rotate(-2deg) scale(0.98); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.99); } }
@keyframes do-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes do-lamp { 0% { box-shadow: 0 0 20px 4px rgba(200,150,80,0.3); } 50% { box-shadow: 0 0 40px 12px rgba(200,150,80,0.6); } 100% { box-shadow: 0 0 25px 6px rgba(200,150,80,0.4); } }
@keyframes do-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(0.8); opacity:0.8; } 100% { transform: scaleX(1.1); opacity:0.4; } }

.scn-offensive-battle-character {
  background: linear-gradient(180deg, #f0e4d0 0%, #d4c0a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 80%, rgba(200,180,150,0.4) 0%, transparent 70%);
}
.scn-offensive-battle-character .bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d8bc 0%, #c8b090 100%); }
.scn-offensive-battle-character .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #b09878 0%, #d0b898 100%); box-shadow: inset -8px 0 20px rgba(0,0,0,0.1); }
.scn-offensive-battle-character .window-right { position:absolute; top:12%; right:8%; width:80px; height:100px; background: linear-gradient(180deg, #b0d0f0 0%, #88b0d8 100%); border: 5px solid #6a4a2a; border-radius:3px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); animation: obc-window 9s ease-in-out infinite alternate; }
.scn-offensive-battle-character .soldier { position:absolute; bottom:18%; left:35%; width:28px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: obc-soldier 5s ease-in-out infinite; }
.scn-offensive-battle-character .sword { position:absolute; bottom:40%; left:40%; width:4px; height:60px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom; box-shadow: 0 0 4px rgba(192,192,192,0.5); animation: obc-sword 5s ease-in-out infinite; }
.scn-offensive-battle-character .shield { position:absolute; bottom:30%; left:32%; width:24px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: obc-shield 5s ease-in-out infinite; }
.scn-offensive-battle-character .light-ray { position:absolute; top:0; left:55%; width:40px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(255,240,200,0.05) 50%, transparent 100%); transform: skewX(-10deg); filter: blur(10px); animation: obc-ray 6s ease-in-out infinite alternate; }
@keyframes obc-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.2); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,200,0.5); } 100% { opacity:0.9; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); } }
@keyframes obc-soldier { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes obc-sword { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes obc-shield { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes obc-ray { 0% { opacity:0.3; transform: skewX(-10deg) scaleX(0.9); } 50% { opacity:0.6; transform: skewX(-5deg) scaleX(1.1); } 100% { opacity:0.4; transform: skewX(-12deg) scaleX(0.95); } }

.scn-offensive-battle-envelopment {
  background: linear-gradient(180deg, #f0e4cc 0%, #d4c0a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 30%, rgba(200,180,150,0.3) 0%, transparent 60%);
}
.scn-offensive-battle-envelopment .table-surface { position:absolute; bottom:10%; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 6px; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.3); }
.scn-offensive-battle-envelopment .paper { position:absolute; bottom:30%; left:15%; width:70%; height:40%; background: linear-gradient(135deg, #e8d8b0 0%, #d4c090 50%, #c0a870 100%); border-radius: 2px; transform: rotate(-1deg); box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: obe-paper 15s ease-in-out infinite alternate; }
.scn-offensive-battle-envelopment .toy-red { position:absolute; bottom:40%; left:20%; width:12px; height:18px; background: linear-gradient(180deg, #c8553d 0%, #a03a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: obe-toyr 8s ease-in-out infinite; }
.scn-offensive-battle-envelopment .toy-blue { position:absolute; bottom:42%; left:40%; width:12px; height:18px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: obe-toyb 8s ease-in-out infinite 2s; }
.scn-offensive-battle-envelopment .toy-flank { position:absolute; bottom:38%; left:60%; width:12px; height:18px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: obe-toyf 12s ease-in-out infinite; }
.scn-offensive-battle-envelopment .shadow-cast { position:absolute; bottom:30%; left:28%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: obe-shadow 10s ease-in-out infinite alternate; }
.scn-offensive-battle-envelopment .lamp-glare { position:absolute; top:5%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%); filter: blur(15px); animation: obe-glare 5s ease-in-out infinite alternate; }
@keyframes obe-paper { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes obe-toyr { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes obe-toyb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes obe-toyf { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-2px) translateX(8px); } 100% { transform: translateY(0) translateX(0); } }
@keyframes obe-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.3); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.3; } }
@keyframes obe-glare { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-offensive-battle-groping {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 40%, rgba(100,100,120,0.3) 0%, transparent 80%);
}
.scn-offensive-battle-groping .fog-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,200,210,0.1) 0%, rgba(150,150,170,0.05) 50%, transparent 100%); filter: blur(20px); animation: obg-fog 20s ease-in-out infinite alternate; }
.scn-offensive-battle-groping .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: obg-ground 12s ease-in-out infinite alternate; }
.scn-offensive-battle-groping .figure-left { position:absolute; bottom:20%; left:20%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: obg-figure-l 4s ease-in-out infinite; }
.scn-offensive-battle-groping .figure-right { position:absolute; bottom:22%; right:25%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: obg-figure-r 3.5s ease-in-out infinite 1s; }
.scn-offensive-battle-groping .overcast-light { position:absolute; top:0; left:0; right:0; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(180,180,200,0.05) 0%, transparent 60%); pointer-events: none; }
.scn-offensive-battle-groping .murk { position:absolute; bottom:15%; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: obg-murk 8s ease-in-out infinite alternate; }
.scn-offensive-battle-groping .uncertainty-line { position:absolute; top:30%; left:10%; width:80%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(150,150,170,0.3) 20%, rgba(150,150,170,0.5) 50%, rgba(150,150,170,0.3) 80%, transparent 100%); filter: blur(1px); animation: obg-line 6s ease-in-out infinite; }
@keyframes obg-fog { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes obg-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes obg-figure-l { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-6px) rotate(-2deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes obg-figure-r { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes obg-murk { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes obg-line { 0% { transform: translateX(-10px); opacity:0.3; } 50% { transform: translateX(10px); opacity:0.6; } 100% { transform: translateX(-5px); opacity:0.4; } }

/* attack-cantonments-disorganization — tense, overcast */
.scn-attack-cantonments-disorganization {
  background:
    linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 30%, #5a5a6e 60%, #4a4a5a 100%),
    radial-gradient(ellipse at 50% 0%, #6a6a7e 0%, transparent 70%);
}
.scn-attack-cantonments-disorganization .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #5a5a6e 40%, transparent 100%);
  animation: acd-sky 8s ease-in-out infinite alternate;
}
.scn-attack-cantonments-disorganization .ground-mud {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-attack-cantonments-disorganization .tent {
  position: absolute; bottom: 40%; width: 70px; height: 80px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
}
.scn-attack-cantonments-disorganization .t-left { left: 18%; transform: rotate(-8deg); animation: acd-tent-l 4s ease-in-out infinite; }
.scn-attack-cantonments-disorganization .t-right { right: 20%; transform: rotate(5deg); animation: acd-tent-r 4s ease-in-out infinite -1s; }
.scn-attack-cantonments-disorganization .figure-runner {
  position: absolute; bottom: 32%; left: 38%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: acd-run 2.5s ease-in-out infinite;
}
.scn-attack-cantonments-disorganization .figure-fallen {
  position: absolute; bottom: 30%; left: 56%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: rotate(-70deg);
  animation: acd-fallen 6s ease-in-out infinite;
}
.scn-attack-cantonments-disorganization .smoke {
  position: absolute; bottom: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(80,70,60,.5) 0%, rgba(60,50,40,.2) 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-attack-cantonments-disorganization .sm-1 { left: 30%; animation: acd-smoke 12s ease-in-out infinite; }
.scn-attack-cantonments-disorganization .sm-2 { left: 60%; animation: acd-smoke 15s ease-in-out infinite -4s; }
.scn-attack-cantonments-disorganization .flag {
  position: absolute; bottom: 68%; left: 22%; width: 28px; height: 18px;
  background: linear-gradient(180deg, #a0461a 0%, #70300e 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: acd-flag 3s ease-in-out infinite alternate;
}
@keyframes acd-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes acd-tent-l { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes acd-tent-r { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } }
@keyframes acd-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes acd-fallen { 0%,100% { transform: rotate(-70deg) scale(1) } 50% { transform: rotate(-65deg) scale(1.05) } }
@keyframes acd-smoke { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.8); opacity:.2 } 100% { transform: translateY(-40px) scale(2.5); opacity:0 } }
@keyframes acd-flag { 0% { transform: rotate(0deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-8deg) } }

/* attack-cantonments-not-ultimate — calm, bright-interior */
.scn-attack-cantonments-not-ultimate {
  background:
    linear-gradient(135deg, #c8b88a 0%, #d8c8a0 30%, #e8d8b0 60%, #d0c098 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-attack-cantonments-not-ultimate .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #b8a878 0%, #a89868 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,.15);
}
.scn-attack-cantonments-not-ultimate .wall-back {
  position: absolute; left: 25%; top: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #d8c8a0 0%, #c8b890 100%);
}
.scn-attack-cantonments-not-ultimate .floor {
  position: absolute; left: 25%; bottom: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 0 0 0 / 10% 0 0 0;
}
.scn-attack-cantonments-not-ultimate .desk {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: acnu-desk 6s ease-in-out infinite;
}
.scn-attack-cantonments-not-ultimate .chair {
  position: absolute; bottom: 20%; left: 62%; width: 36px; height: 48px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-attack-cantonments-not-ultimate .lamp {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #f0d060 0%, #b88830 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 16px rgba(240,208,96,.35), 0 0 80px 30px rgba(240,208,96,.15);
  animation: acnu-lamp 4s ease-in-out infinite alternate;
}
.scn-attack-cantonments-not-ultimate .paper-stack {
  position: absolute; bottom: 18%; left: 44%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.scn-attack-cantonments-not-ultimate .map-roll {
  position: absolute; bottom: 19%; left: 55%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  animation: acnu-roll 8s ease-in-out infinite;
}
@keyframes acnu-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes acnu-lamp { 0% { box-shadow: 0 0 30px 12px rgba(240,208,96,.3), 0 0 60px 24px rgba(240,208,96,.1); opacity:.85 } 50% { box-shadow: 0 0 50px 20px rgba(240,208,96,.4), 0 0 90px 36px rgba(240,208,96,.2); opacity:1 } 100% { box-shadow: 0 0 35px 14px rgba(240,208,96,.32), 0 0 70px 28px rgba(240,208,96,.12); opacity:.9 } }
@keyframes acnu-roll { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(24deg) } }

/* attack-cantonments-mollwitz — calm, bright-interior (historical scene) */
.scn-attack-cantonments-mollwitz {
  background:
    linear-gradient(180deg, #b09870 0%, #c8b088 30%, #d8c098 60%, #b8a078 100%),
    radial-gradient(ellipse at 50% 30%, #e8d0a8 0%, transparent 60%);
}
.scn-attack-cantonments-mollwitz .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8b088 0%, #b8a078 100%);
}
.scn-attack-cantonments-mollwitz .bed {
  position: absolute; bottom: 15%; left: 12%; width: 90px; height: 55px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-attack-cantonments-mollwitz .figure-king {
  position: absolute; bottom: 28%; left: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: acm-king 5s ease-in-out infinite;
}
.scn-attack-cantonments-mollwitz .figure-aide {
  position: absolute; bottom: 26%; left: 30%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: acm-aide 5s ease-in-out infinite -2s;
}
.scn-attack-cantonments-mollwitz .candle {
  position: absolute; bottom: 30%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,200,80,.5), 0 0 40px 12px rgba(240,200,80,.2);
}
.scn-attack-cantonments-mollwitz .c-1 { left: 38%; animation: acm-candle 3s ease-in-out infinite alternate; }
.scn-attack-cantonments-mollwitz .c-2 { left: 55%; animation: acm-candle 3.5s ease-in-out infinite alternate -1s; }
.scn-attack-cantonments-mollwitz .door {
  position: absolute; bottom: 22%; right: 8%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 6% 6% 2% 2% / 10% 10% 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-attack-cantonments-mollwitz .window-night {
  position: absolute; top: 8%; right: 14%; width: 50px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #2a3a5e 0%, #1a2a4e 70%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: acm-window 10s ease-in-out infinite alternate;
}
@keyframes acm-king { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes acm-aide { 0%,100% { transform: translateX(0) rotate(0deg) translateY(0) } 50% { transform: translateX(3px) rotate(-1deg) translateY(-2px) } }
@keyframes acm-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.85; transform: scaleY(0.95) } }
@keyframes acm-window { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(0,0,0,.5) } 50% { opacity:.8; box-shadow: inset 0 0 30px rgba(0,0,0,.6) } 100% { opacity:.7; box-shadow: inset 0 0 25px rgba(0,0,0,.55) } }

/* attack-cantonments-1806-plan — tense, overcast */
.scn-attack-cantonments-1806-plan {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 30%, #4a4a5e 60%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 40%, #4a4a5e 0%, transparent 60%);
}
.scn-attack-cantonments-1806-plan .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 30% 0 0 / 10% 20% 0 0;
}
.scn-attack-cantonments-1806-plan .wall-map {
  position: absolute; top: 0; left: 8%; right: 8%; bottom: 40%;
  background: linear-gradient(135deg, #3a3a4e 0%, #4a4a5e 50%, #3a3a4e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-attack-cantonments-1806-plan .table-plan {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: acp-table 8s ease-in-out infinite;
}
.scn-attack-cantonments-1806-plan .figure-officer {
  position: absolute; bottom: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-attack-cantonments-1806-plan .figure-officer-a { left: 35%; animation: acp-officer 6s ease-in-out infinite; }
.scn-attack-cantonments-1806-plan .figure-officer-b { left: 48%; animation: acp-officer 6s ease-in-out infinite -1.5s; }
.scn-attack-cantonments-1806-plan .figure-officer-c { left: 60%; animation: acp-officer 6s ease-in-out infinite -3s; }
.scn-attack-cantonments-1806-plan .candle-bank {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08040 0%, #8a602a 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,160,80,.25);
}
.scn-attack-cantonments-1806-plan .shadow-cast {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: acp-shadow 8s ease-in-out infinite;
}
@keyframes acp-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes acp-officer { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes acp-shadow { 0%,100% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.7 } }

.scn-attack-theatre-decision {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #b8987a 100%),
    radial-gradient(ellipse at 60% 50%, #f0d4b0 0%, transparent 70%);
}
.scn-attack-theatre-decision .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b6 0%, #d4bfa0 100%);
}
.scn-attack-theatre-decision .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(135deg, #8b6f4e 0%, #6b4e2e 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
}
.scn-attack-theatre-decision .map {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 18%;
  background: linear-gradient(45deg, #c9b08a 0%, #e0cbaa 50%, #c0a47a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: dec-map 12s ease-in-out infinite alternate;
}
.scn-attack-theatre-decision .hand {
  position: absolute; bottom: 18%; left: 45%; width: 24px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #e3c9a8 0%, #b89a7a 60%, #7a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dec-hand 4s ease-in-out infinite;
}
.scn-attack-theatre-decision .candle {
  position: absolute; bottom: 26%; left: 18%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
}
.scn-attack-theatre-decision .flame {
  position: absolute; bottom: calc(26% + 24px); left: 18%; width: 10px; height: 14px;
  background: radial-gradient(ellipse at 50% 70%, #ffcc80 0%, #e89a3a 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 6px rgba(230,160,60,.5);
  animation: dec-flame 2s ease-in-out infinite alternate;
}
.scn-attack-theatre-decision .paper {
  position: absolute; bottom: 24%; left: 60%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #f4ecdc 0%, #d4c4aa 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
  animation: dec-paper 8s ease-in-out infinite alternate;
}
.scn-attack-theatre-decision .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%);
  pointer-events: none;
}
@keyframes dec-map {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(4px) scale(1.02); }
}
@keyframes dec-hand {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(6px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes dec-flame {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.9; }
  100% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
}
@keyframes dec-paper {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(-5deg) translateX(3px); }
}

.scn-attack-theatre-boldness {
  background: 
    linear-gradient(180deg, #ebd6b0 0%, #d4b890 50%, #b8986e 100%),
    radial-gradient(ellipse at 50% 70%, #f0d4a0 0%, transparent 60%);
}
.scn-attack-theatre-boldness .wall-b {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #dcc8a0 0%, #c8b088 100%);
}
.scn-attack-theatre-boldness .figure-b {
  position: absolute; bottom: 15%; left: 50%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: bol-fig 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-boldness .lamp {
  position: absolute; bottom: 40%; right: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #f0d4a0 0%, #c8a46a 100%);
  border-radius: 2px 2px 50% 50%;
}
.scn-attack-theatre-boldness .lamp-glow {
  position: absolute; bottom: 35%; right: 18%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,120,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bol-glow 3s ease-in-out infinite alternate;
}
.scn-attack-theatre-boldness .window-b {
  position: absolute; top: 15%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #d0c4b4 0%, #b8a890 100%);
  border: 6px solid #5a4a34;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.2);
}
.scn-attack-theatre-boldness .curtain-left {
  position: absolute; top: 10%; right: calc(15% + 66px); width: 10px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: top left;
  animation: bol-curtain 10s ease-in-out infinite alternate;
}
.scn-attack-theatre-boldness .curtain-right {
  position: absolute; top: 10%; right: 15%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px 0 0 4px;
  transform-origin: top right;
  animation: bol-curtain 10s ease-in-out infinite alternate-reverse;
}
@keyframes bol-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes bol-glow {
  0% { transform: scale(0.9); opacity: 0.6; }
  100% { transform: scale(1.1); opacity: 1; }
}
@keyframes bol-curtain {
  0% { transform: rotate(0deg) scaleY(1); }
  100% { transform: rotate(4deg) scaleY(1.02); }
}

.scn-attack-theatre-direction {
  background: 
    linear-gradient(180deg, #f2e6d0 0%, #d4c0a0 50%, #b8a07e 100%),
    radial-gradient(ellipse at 30% 60%, #f0d0a0 0%, transparent 60%);
}
.scn-attack-theatre-direction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(135deg, #6a5040 0%, #4a3424 100%);
  border-radius: 0 0 8px 8px;
}
.scn-attack-theatre-direction .compass-box {
  position: absolute; bottom: 15%; left: 25%; width: 80px; height: 80px;
  background: linear-gradient(135deg, #b8a080 0%, #8a6e52 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: dir-box 8s ease-in-out infinite alternate;
}
.scn-attack-theatre-direction .compass-needle {
  position: absolute; bottom: calc(15% + 30px); left: calc(25% + 40px);
  width: 4px; height: 40px;
  background: linear-gradient(180deg, #c82020 0%, #a01818 50%, #602020 100%);
  border-radius: 2px;
  transform-origin: center 70%;
  animation: dir-needle 12s ease-in-out infinite;
}
.scn-attack-theatre-direction .globe {
  position: absolute; bottom: 18%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #5070a0 0%, #204060 60%, #102030 100%);
  border-radius: 50%;
  box-shadow: inset -10px -10px 20px rgba(0,0,0,.3);
  animation: dir-globe 15s ease-in-out infinite alternate;
}
.scn-attack-theatre-direction .desk-dir {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #7a603e 0%, #5a4020 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.2);
}
.scn-attack-theatre-direction .papers-dir {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e4d0 0%, #d0bca0 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
  animation: dir-papers 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-direction .lamp-dir {
  position: absolute; bottom: 28%; left: 10%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c090 0%, #b09060 100%);
  border-radius: 2px 2px 50% 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,80,.4);
  animation: dir-lamp 4s ease-in-out infinite alternate;
}
@keyframes dir-box {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes dir-needle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes dir-globe {
  0% { transform: rotateX(0deg) rotateY(0deg); }
  100% { transform: rotateX(10deg) rotateY(15deg); }
}
@keyframes dir-papers {
  0% { transform: rotate(15deg) translateX(0); }
  100% { transform: rotate(20deg) translateX(2px); }
}
@keyframes dir-lamp {
  0% { transform: scaleY(0.95); opacity: 0.8; }
  100% { transform: scaleY(1.05); opacity: 1; }
}

.scn-attack-theatre-line-of-communication {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d4bca0 40%, #b89a78 100%),
    radial-gradient(ellipse at 60% 40%, #e0c8a8 0%, transparent 60%);
}
.scn-attack-theatre-line-of-communication .wall-com {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d0b898 100%);
}
.scn-attack-theatre-line-of-communication .table-com {
  position: absolute; bottom: 10%; left: 8%; right: 8%; height: 28%;
  background: linear-gradient(135deg, #8a6e50 0%, #6a4e30 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.2);
}
.scn-attack-theatre-line-of-communication .telegraph {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #1a140e 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: com-teleg 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-line-of-communication .tape {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 4px;
  background: linear-gradient(90deg, #d0c0a0 0%, #b8a080 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: com-tape 3s linear infinite;
}
.scn-attack-theatre-line-of-communication .pin-1 {
  position: absolute; bottom: 45%; left: 20%; width: 6px; height: 8px;
  background: #c85030;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 4px rgba(200,80,48,.6);
  animation: com-pin 5s ease-in-out infinite alternate;
}
.scn-attack-theatre-line-of-communication .pin-2 {
  position: absolute; bottom: 42%; left: 65%; width: 6px; height: 8px;
  background: #c85030;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 4px rgba(200,80,48,.6);
  animation: com-pin 5s ease-in-out infinite alternate-reverse;
}
.scn-attack-theatre-line-of-communication .wire-1 {
  position: absolute; bottom: 46%; left: 22%; width: 45%; height: 2px;
  background: linear-gradient(90deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  animation: com-wire 8s ease-in-out infinite alternate;
}
.scn-attack-theatre-line-of-communication .wire-2 {
  position: absolute; bottom: 44%; left: 30%; width: 30%; height: 2px;
  background: linear-gradient(90deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 1px;
  transform: rotate(3deg);
  animation: com-wire 8s ease-in-out infinite alternate-reverse;
}
.scn-attack-theatre-line-of-communication .lamp-com {
  position: absolute; bottom: 35%; right: 15%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e0c090 0%, #b09060 100%);
  border-radius: 2px 2px 50% 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,.4);
  animation: com-lamp 4s ease-in-out infinite alternate;
}
@keyframes com-teleg {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes com-tape {
  0% { transform: translateX(0); }
  100% { transform: translateX(20px); }
}
@keyframes com-pin {
  0% { transform: scale(1) translateY(0); }
  100% { transform: scale(1.1) translateY(-2px); }
}
@keyframes com-wire {
  0% { transform: rotate(-5deg) scaleY(1); }
  100% { transform: rotate(2deg) scaleY(0.9); }
}
@keyframes com-lamp {
  0% { box-shadow: 0 0 8px 2px rgba(200,160,80,.3); opacity: 0.8; }
  100% { box-shadow: 0 0 16px 6px rgba(200,160,80,.5); opacity: 1; }
}

.scn-culminating-point-judgment { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4bca0 100%), radial-gradient(ellipse at 30% 20%, #fff8ee 0%, transparent 70%); }
.scn-culminating-point-judgment .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0e4d0 0%, #e0ccb0 100%); }
.scn-culminating-point-judgment .desk { position:absolute; bottom:0; left:5%; width:90%; height:40%; background: linear-gradient(180deg, #c4a882 0%, #a4815e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.15); }
.scn-culminating-point-judgment .map { position:absolute; bottom:8%; left:20%; width:55%; height:22%; background: linear-gradient(135deg, #dac09a 40%, #c8a67e 60%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.2); transform: rotate(-2deg); animation: cpj-map 12s ease-in-out infinite; }
.scn-culminating-point-judgment .hand { position:absolute; bottom:12%; left:30%; width:32px; height:48px; background: radial-gradient(circle at 60% 30%, #e8c8a0 0%, #c89c70 100%); border-radius: 60% 40% 50% 50%; transform-origin: bottom; animation: cpj-hand 6s ease-in-out infinite; }
.scn-culminating-point-judgment .candle { position:absolute; bottom:16%; right:25%; width:12px; height:36px; background: linear-gradient(180deg, #f5e8c0 0%, #e0c888 60%, #c8a860 100%); border-radius: 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.2); }
.scn-culminating-point-judgment .glow { position:absolute; bottom:14%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #e8c040 40%, transparent 70%); border-radius: 50%; animation: cpj-glow 4s ease-in-out infinite alternate; }
.scn-culminating-point-judgment .inkwell { position:absolute; bottom:10%; left:15%; width:20px; height:22px; background: radial-gradient(circle at 30% 20%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-culminating-point-judgment .compass { position:absolute; bottom:14%; right:40%; width:18px; height:18px; background: radial-gradient(circle, #c0a070 0%, #8a6a40 60%); border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.3); animation: cpj-compass 20s linear infinite; }
@keyframes cpj-map { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } }
@keyframes cpj-hand { 0%,100% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(4px,-2px) rotate(2deg); } 70% { transform: translate(-2px,-1px) rotate(-1deg); } }
@keyframes cpj-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(0.95); } }
@keyframes cpj-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-sketches-book-viii-intro { background: linear-gradient(180deg, #eae2d0 0%, #d4c8b0 50%, #c0b09a 100%), radial-gradient(ellipse at 70% 40%, #fff8ee 0%, transparent 60%); }
.scn-sketches-book-viii-intro .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8ddce 0%, #daceb8 100%); }
.scn-sketches-book-viii-intro .window { position:absolute; top:8%; left:60%; width:25%; height:50%; background: linear-gradient(180deg, #cce0f0 0%, #a8c8e0 100%); border: 6px solid #b29578; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,240,.6); }
.scn-sketches-book-viii-intro .bookshelf { position:absolute; bottom:20%; left:5%; width:30%; height:60%; background: linear-gradient(180deg, #a08060 0%, #7a5e42 100%); border-radius: 2px; box-shadow: 2px 0 10px rgba(0,0,0,.2); }
.scn-sketches-book-viii-intro .desk-large { position:absolute; bottom:0; left:15%; width:70%; height:35%; background: linear-gradient(180deg, #b89878 0%, #907050 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.15); }
.scn-sketches-book-viii-intro .papers { position:absolute; bottom:5%; left:35%; width:40%; height:12%; background: linear-gradient(135deg, #f0e6d0 0%, #dcc8aa 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.1); transform: rotate(1deg); animation: sbv-papers 8s ease-in-out infinite; }
.scn-sketches-book-viii-intro .quill { position:absolute; bottom:10%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #e8ddd0 0%, #c0b09a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom; animation: sbv-quill 5s ease-in-out infinite; }
.scn-sketches-book-viii-intro .sunbeam { position:absolute; top:8%; right:32%; width:120px; height:80%; background: linear-gradient(180deg, rgba(255,255,240,.35) 0%, rgba(255,255,200,.15) 100%); filter: blur(8px); transform: skewX(-10deg); animation: sbv-sunbeam 20s ease-in-out infinite alternate; }
.scn-sketches-book-viii-intro .armchair { position:absolute; bottom:0; left:8%; width:22%; height:30%; background: radial-gradient(ellipse at 50% 20%, #8a7058 0%, #5a4432 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
@keyframes sbv-papers { 0%,100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-2px); } }
@keyframes sbv-quill { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-8deg); } 60% { transform: rotate(4deg); } }
@keyframes sbv-sunbeam { 0% { opacity:.3; transform: skewX(-10deg) scaleX(1); } 50% { opacity:.8; transform: skewX(-8deg) scaleX(1.05); } 100% { opacity:.4; transform: skewX(-12deg) scaleX(0.95); } }

.scn-sketches-book-viii-simplicity { background: linear-gradient(180deg, #f0e8d8 0%, #ded2be 50%, #cbbaa6 100%), radial-gradient(ellipse at 50% 80%, #e8ddd0 0%, transparent 70%); }
.scn-sketches-book-viii-simplicity .column-bg { position:absolute; inset:0; background: linear-gradient(90deg, #e0d4c0 0%, #f5eee0 30%, #e0d4c0 100%); }
.scn-sketches-book-viii-simplicity .book-stack-1 { position:absolute; bottom:15%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #b08050 0%, #8a6040 100%); border-radius: 2px 2px 0 0; box-shadow: 2px 2px 6px rgba(0,0,0,.2); transform: rotate(-3deg); animation: sbs-stack1 14s ease-in-out infinite; }
.scn-sketches-book-viii-simplicity .book-stack-2 { position:absolute; bottom:25%; left:42%; width:35px; height:50px; background: linear-gradient(180deg, #907060 0%, #604040 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.2); transform: rotate(2deg); animation: sbs-stack2 12s ease-in-out infinite; }
.scn-sketches-book-viii-simplicity .book-stack-3 { position:absolute; bottom:35%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #a08870 0%, #705840 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.2); transform: rotate(-1deg); animation: sbs-stack3 16s ease-in-out infinite; }
.scn-sketches-book-viii-simplicity .light-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.6) 0%, rgba(255,255,200,.2) 50%, transparent 100%); filter: blur(10px); animation: sbs-beam 8s ease-in-out infinite alternate; }
.scn-sketches-book-viii-simplicity .page-leaf { position:absolute; bottom:18%; left:35%; width:20px; height:15px; background: #f0e6d0; border-radius: 0 50% 50% 0; opacity:.3; animation: sbs-leaf 20s linear infinite; }
.scn-sketches-book-viii-simplicity .dust-mote-1 { position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(255,255,240,.6); border-radius:50%; animation: sbs-dust1 25s linear infinite; }
.scn-sketches-book-viii-simplicity .dust-mote-2 { position:absolute; top:30%; left:55%; width:3px; height:3px; background: rgba(255,255,240,.4); border-radius:50%; animation: sbs-dust2 35s linear infinite; animation-delay: -10s; }
.scn-sketches-book-viii-simplicity .dust-mote-3 { position:absolute; top:40%; left:30%; width:5px; height:5px; background: rgba(255,255,240,.5); border-radius:50%; animation: sbs-dust3 30s linear infinite; animation-delay: -5s; }
@keyframes sbs-stack1 { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes sbs-stack2 { 0%,100% { transform: rotate(2deg) translateY(0); } 33% { transform: rotate(3deg) translateY(-2px); } 66% { transform: rotate(1deg) translateY(1px); } }
@keyframes sbs-stack3 { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes sbs-beam { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.05); } 100% { opacity:.4; transform: scaleY(0.95); } }
@keyframes sbs-leaf { 0% { transform: translateX(0) rotate(0deg); opacity:.3; } 50% { transform: translateX(60px) rotate(180deg); opacity:.1; } 100% { transform: translateX(0) rotate(360deg); opacity:.3; } }
@keyframes sbs-dust1 { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:.8; } 50% { transform: translate(30px,-20px) scale(1.5); } 80% { opacity:.6; } 100% { transform: translate(60px,-40px) scale(0.8); opacity:0; } }
@keyframes sbs-dust2 { 0% { transform: translate(0,0) scale(1); opacity:0; } 30% { opacity:.6; } 60% { transform: translate(-40px,-30px) scale(1.8); } 90% { opacity:.4; } 100% { transform: translate(-80px,-60px) scale(0.5); opacity:0; } }
@keyframes sbs-dust3 { 0% { transform: translate(0,0) scale(1); opacity:0; } 15% { opacity:.7; } 45% { transform: translate(20px,-15px) scale(1.3); } 75% { opacity:.5; } 100% { transform: translate(40px,-30px) scale(0.6); opacity:0; } }

.scn-sketches-book-viii-theory-aid { background: linear-gradient(180deg, #e8ddd0 0%, #d4c8b8 50%, #bfae9c 100%), radial-gradient(ellipse at 40% 30%, #fff5e6 0%, transparent 70%); }
.scn-sketches-book-viii-theory-aid .chamber-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #dccfc0 0%, #ccbbaa 100%); }
.scn-sketches-book-viii-theory-aid .lectern { position:absolute; bottom:20%; left:50%; width:16%; height:40%; background: linear-gradient(180deg, #a88868 0%, #806048 100%); transform: translateX(-50%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.2); }
.scn-sketches-book-viii-theory-aid .open-book { position:absolute; bottom:38%; left:48%; width:20%; height:14%; background: linear-gradient(135deg, #f5ead8 0%, #ddd0b8 100%); border-radius: 2px; transform: translateX(-50%) rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: sbt-book 10s ease-in-out infinite; }
.scn-sketches-book-viii-theory-aid .scholar-silhouette { position:absolute; bottom:18%; left:44%; width:12%; height:30%; background: radial-gradient(ellipse at 60% 30%, #3a2a20 0%, #1a120a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sbt-scholar 6s ease-in-out infinite; }
.scn-sketches-book-viii-theory-aid .lamp { position:absolute; top:20%; left:46%; width:8px; height:20px; background: linear-gradient(180deg, #e8c888 0%, #c0a060 100%); border-radius: 4px; box-shadow: 0 0 12px 2px #d4a84a; }
.scn-sketches-book-viii-theory-aid .lamp-glow { position:absolute; top:15%; left:32%; width:36%; height:40%; background: radial-gradient(ellipse at 50% 0%, #ffd580 0%, #e8b850 40%, transparent 80%); filter: blur(12px); animation: sbt-glow 5s ease-in-out infinite alternate; }
.scn-sketches-book-viii-theory-aid .drapery { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #8a7058 0%, #5a4432 100%); border-radius: 0 0 0 40%; opacity:.8; }
.scn-sketches-book-viii-theory-aid .parchment-scroll { position:absolute; bottom:15%; right:15%; width:10%; height:6%; background: linear-gradient(135deg, #e8dcc8 0%, #cbb89a 100%); border-radius: 2px; box-shadow: 0 1px 4px rgba(0,0,0,.2); transform: rotate(8deg); animation: sbt-scroll 14s ease-in-out infinite; }
@keyframes sbt-book { 0%,100% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(-1deg) scale(1.01); } }
@keyframes sbt-scholar { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes sbt-glow { 0% { opacity:.4; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(0.95); } }
@keyframes sbt-scroll { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }

/* Scene 1 – frederick-cordon-system */
.scn-frederick-cordon-system {
  background: linear-gradient(180deg, #1c1a1a 0%, #2a2420 40%, #1e1a16 100%), radial-gradient(ellipse at 50% 80%, #2c2824 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-frederick-cordon-system .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #14100c 100%); }
.scn-frederick-cordon-system .desk { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-frederick-cordon-system .candle { position:absolute; bottom:35%; left:30%; width:10px; height:30px; background: linear-gradient(180deg, #d4b080 0%, #8a6a40 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-2deg); }
.scn-frederick-cordon-system .candle-glow { position:absolute; bottom:45%; left:28%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #b08040 30%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: frc-flicker 0.6s ease-in-out infinite alternate; }
.scn-frederick-cordon-system .map { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); transform: perspective(800px) rotateX(40deg); }
.scn-frederick-cordon-system .figure-silhouette { position:absolute; bottom:10%; left:50%; width:40px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-frederick-cordon-system .shadow-sharp { position:absolute; bottom:5%; left:25%; width:50%; height:20px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: frc-shadow 3s ease-in-out infinite alternate; }
@keyframes frc-flicker { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: .8; transform: scaleY(.95) } }
@keyframes frc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(.9) } }

/* Scene 2 – wisdom-patient-expectation */
.scn-wisdom-patient-expectation {
  background: linear-gradient(180deg, #1a1e2a 0%, #0e121e 40%, #06080c 100%), radial-gradient(ellipse at 50% 60%, #2a3040 0%, transparent 60%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-wisdom-patient-expectation .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1c2028 0%, #12161c 100%); }
.scn-wisdom-patient-expectation .window-frame { position:absolute; top:20%; left:25%; width:50%; height:55%; border: 6px solid #2a2e38; border-radius: 8%; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-wisdom-patient-expectation .night-sky { position:absolute; top:21%; left:26%; width:48%; height:53%; background: linear-gradient(180deg, #0a0e1a 0%, #1a2030 100%); border-radius: 6%; }
.scn-wisdom-patient-expectation .curtain-l { position:absolute; top:20%; left:20%; width:12%; height:60%; background: linear-gradient(90deg, #2a2a32 0%, #1a1a22 100%); border-radius: 0 20% 20% 0; transform-origin: left; animation: wis-curtain 12s ease-in-out infinite alternate; }
.scn-wisdom-patient-expectation .curtain-r { position:absolute; top:20%; right:20%; width:12%; height:60%; background: linear-gradient(-90deg, #2a2a32 0%, #1a1a22 100%); border-radius: 20% 0 0 20%; transform-origin: right; animation: wis-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-wisdom-patient-expectation .figure-waiting { position:absolute; bottom:15%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-wisdom-patient-expectation .small-lamp { position:absolute; bottom:22%; left:42%; width:8px; height:12px; background: radial-gradient(circle, #d4b080 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(180,140,80,.3); animation: wis-lamp 8s ease-in-out infinite alternate; }
@keyframes wis-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.08) } 100% { transform: scaleX(1) } }
@keyframes wis-lamp { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .8; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.95) } }

/* Scene 3 – russian-reinforcements-prospect */
.scn-russian-reinforcements-prospect {
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 50%, #060404 100%), radial-gradient(ellipse at 50% 80%, #2c2420 0%, transparent 60%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-russian-reinforcements-prospect .camp-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 30% 70% 0 0 / 30% 40% 0 0; }
.scn-russian-reinforcements-prospect .tent-left { position:absolute; bottom:25%; left:15%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); transform: skewX(-5deg); animation: rr-tent 6s ease-in-out infinite alternate; }
.scn-russian-reinforcements-prospect .tent-right { position:absolute; bottom:22%; right:20%; width:90px; height:65px; background: linear-gradient(180deg, #3a2e22 0%, #1e140e 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); transform: skewX(3deg); animation: rr-tent 7s ease-in-out infinite alternate-reverse; }
.scn-russian-reinforcements-prospect .campfire { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle, #ff8040 0%, #c04020 40%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: rr-fire 0.8s ease-in-out infinite alternate; }
.scn-russian-reinforcements-prospect .soldier-1 { position:absolute; bottom:18%; left:35%; width:25px; height:50px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: rr-soldier 4s ease-in-out infinite; }
.scn-russian-reinforcements-prospect .soldier-2 { position:absolute; bottom:20%; right:30%; width:28px; height:48px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); animation: rr-soldier 4.5s ease-in-out infinite reverse; }
.scn-russian-reinforcements-prospect .banner { position:absolute; bottom:45%; left:38%; width:5px; height:40px; background: #5a3a2a; transform: rotate(15deg); animation: rr-banner 3s ease-in-out infinite alternate; }
.scn-russian-reinforcements-prospect .smoke { position:absolute; bottom:38%; left:45%; width:40px; height:20px; background: rgba(180,160,140,.15); border-radius:50%; filter: blur(8px); animation: rr-smoke 10s linear infinite; }
@keyframes rr-tent { 0% { transform: skewX(-5deg) scaleY(1) } 50% { transform: skewX(-5deg) scaleY(1.05) } 100% { transform: skewX(-5deg) scaleY(1) } }
@keyframes rr-fire { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes rr-soldier { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rr-banner { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes rr-smoke { 0% { transform: translateY(0) scale(1); opacity: .3 } 50% { transform: translateY(-20px) scale(1.5); opacity: .1 } 100% { transform: translateY(-40px) scale(2); opacity: 0 } }

/* Scene 4 – russian-plan-campaign */
.scn-russian-plan-campaign {
  background: linear-gradient(180deg, #1c1814 0%, #12100c 60%, #080604 100%), radial-gradient(ellipse at 60% 70%, #2a221c 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-russian-plan-campaign .table-top { position:absolute; bottom:0; left:5%; right:5%; height:50%; background: linear-gradient(180deg, #3a2e26 0%, #1e1610 100%); border-radius: 6% 6% 0 0; box-shadow: 0 0 40px rgba(0,0,0,.7); transform: perspective(800px) rotateX(30deg); }
.scn-russian-plan-campaign .map-roll { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #6a5a46 0%, #4a3a2a 100%); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); transform: perspective(800px) rotateX(20deg); }
.scn-russian-plan-campaign .marker-red { position:absolute; bottom:30%; left:35%; width:8px; height:10px; background: #a0461a; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: rpc-marker 4s ease-in-out infinite alternate; }
.scn-russian-plan-campaign .marker-blue { position:absolute; bottom:28%; left:55%; width:8px; height:10px; background: #3a5a7a; border-radius: 50% 50% 0 0; transform: rotate(10deg); animation: rpc-marker 4.5s ease-in-out infinite alternate-reverse; }
.scn-russian-plan-campaign .hand-left { position:absolute; bottom:15%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 20% 20% 30% 30%; transform: rotate(20deg); transform-origin: bottom; animation: rpc-hand 6s ease-in-out infinite; }
.scn-russian-plan-campaign .hand-right { position:absolute; bottom:18%; right:25%; width:28px; height:38px; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); border-radius: 30% 30% 40% 40% / 20% 20% 30% 30%; transform: rotate(-15deg); transform-origin: bottom; animation: rpc-hand 6.5s ease-in-out infinite reverse; }
.scn-russian-plan-campaign .candle-war { position:absolute; bottom:45%; left:25%; width:8px; height:28px; background: linear-gradient(180deg, #d4b080 0%, #8a6a40 100%); border-radius: 30% 30% 10% 10%; transform: rotate(3deg); }
.scn-russian-plan-campaign .candle-glow-war { position:absolute; bottom:52%; left:23%; width:36px; height:36px; background: radial-gradient(circle, #ffd080 0%, #b08040 30%, transparent 70%); border-radius:50%; mix-blend-mode: screen; animation: rpc-flicker 0.7s ease-in-out infinite alternate; }
@keyframes rpc-marker { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(1px) } }
@keyframes rpc-hand { 0% { transform: rotate(20deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.05) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes rpc-flicker { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(.95) } }

/* Scene: interdependence-frederick-subordinate (bright interior, calm) */
.scn-interdependence-frederick-subordinate {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d0b0 30%, #d4b896 70%, #c4a880 100%),
              radial-gradient(ellipse at 50% 80%, #fff7e6 0%, transparent 60%);
}
.scn-interdependence-frederick-subordinate .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #e8d4b4 0%, #f0dec0 50%, #e8d4b4 100%);
}
.scn-interdependence-frederick-subordinate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b08860 0%, #a07850 100%);
}
.scn-interdependence-frederick-subordinate .window {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #b0d8f0 0%, #88c0e0 100%);
  border: 4px solid #a08060; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: ifs-haze 12s ease-in-out infinite;
}
.scn-interdependence-frederick-subordinate .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(30deg);
}
.scn-interdependence-frederick-subordinate .map {
  position: absolute; bottom: 24%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #f0dca0 0%, #dcc080 50%, #f0dca0 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-2deg); animation: ifs-map 20s ease-in-out infinite;
}
.scn-interdependence-frederick-subordinate .candle {
  position: absolute; bottom: 22%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d060 0%, #d0a030 100%);
  border-radius: 3px 3px 0 0; box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: ifs-candle 3s ease-in-out infinite;
}
.scn-interdependence-frederick-subordinate .figure {
  position: absolute; bottom: 18%; left: 55%; 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: ifs-figure 6s ease-in-out infinite;
}
.scn-interdependence-frederick-subordinate .shadow {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: ifs-shadow 6s ease-in-out infinite;
}
@keyframes ifs-haze { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ifs-map { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes ifs-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes ifs-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ifs-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }

/* Scene: frederick-battle-kollen (dim interior, tense) */
.scn-frederick-battle-kollen {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 60%, #0a0500 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-frederick-battle-kollen .tent-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #1a100a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
}
.scn-frederick-battle-kollen .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-frederick-battle-kollen .table {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(25deg);
}
.scn-frederick-battle-kollen .map {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #8a7040 0%, #6a5020 50%, #8a7040 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fbk-map 5s ease-in-out infinite;
}
.scn-frederick-battle-kollen .candle {
  position: absolute; bottom: 18%; left: 40%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0a030 0%, #c07020 100%);
  border-radius: 2px; box-shadow: 0 0 24px 12px rgba(255,160,48,0.5);
  animation: fbk-candle 2s ease-in-out infinite;
}
.scn-frederick-battle-kollen .figure {
  position: absolute; bottom: 10%; left: 48%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fbk-figure 3s ease-in-out infinite;
}
.scn-frederick-battle-kollen .shadow {
  position: absolute; bottom: 6%; left: 45%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%; animation: fbk-shadow 3s ease-in-out infinite;
}
.scn-frederick-battle-kollen .flag {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #6a3010 0%, #8a4020 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: fbk-flag 4s ease-in-out infinite;
}
@keyframes fbk-map { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fbk-candle { 0%,100% { transform: scaleY(1) opacity:0.9 } 50% { transform: scaleY(0.9) opacity:1 } }
@keyframes fbk-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fbk-shadow { 0% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(0.8) opacity:0.7 } 100% { transform: scaleX(1) opacity:0.5 } }
@keyframes fbk-flag { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }

/* Scene: war-differences-centuries (dim interior, calm) */
.scn-war-differences-centuries {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 30%, #2a1a0a 60%, #1a1008 100%),
              radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-war-differences-centuries .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-war-differences-centuries .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-war-differences-centuries .cabinet {
  position: absolute; top: 5%; right: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wdc-ambient 20s ease-in-out infinite;
}
.scn-war-differences-centuries .documents {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(135deg, #c0a070 0%, #a08050 50%, #c0a070 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(1deg); animation: wdc-docs 25s ease-in-out infinite;
}
.scn-war-differences-centuries .globe {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #6a8a6a 0%, #3a5a3a 50%, #2a4a2a 100%);
  border-radius: 50%; box-shadow: -4px 4px 8px rgba(0,0,0,0.4);
  animation: wdc-globe 30s linear infinite;
}
.scn-war-differences-centuries .chair {
  position: absolute; bottom: 22%; left: 18%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-war-differences-centuries .figure {
  position: absolute; bottom: 16%; left: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wdc-figure 8s ease-in-out infinite;
}
@keyframes wdc-ambient { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes wdc-docs { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes wdc-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes wdc-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: considerations-of-extremity (dim interior, tense) */
.scn-considerations-of-extremity {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 30%, #05050e 60%, #000005 100%),
              radial-gradient(ellipse at 80% 20%, #2a2a3a 0%, transparent 70%);
}
.scn-considerations-of-extremity .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%);
}
.scn-considerations-of-extremity .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a10 0%, #000005 100%);
}
.scn-considerations-of-extremity .window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #0a0a20 0%, #050510 100%);
  border: 3px solid #3a3a4a; border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(100,100,150,0.2);
  animation: coe-window 4s ease-in-out infinite alternate;
}
.scn-considerations-of-extremity .storm-outside {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: radial-gradient(circle at 60% 40%, #4a4a6a 0%, transparent 60%);
  opacity: 0.6; animation: coe-storm 3s ease-in-out infinite;
}
.scn-considerations-of-extremity .desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(20deg);
}
.scn-considerations-of-extremity .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coe-figure 6s ease-in-out infinite;
}
.scn-considerations-of-extremity .candle {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #ff9050 0%, #c06020 100%);
  border-radius: 2px; box-shadow: 0 0 16px 6px rgba(255,144,80,0.4);
  animation: coe-candle 1.5s ease-in-out infinite alternate;
}
.scn-considerations-of-extremity .lightning-flash {
  position: absolute; top: 5%; left: 15%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 20%, rgba(255,255,255,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 40%, 100% 50%, 60% 100%, 40% 60%, 0 100%);
  opacity: 0; animation: coe-flash 7s ease-in-out infinite;
}
@keyframes coe-window { 0% { opacity:0.7; filter:brightness(0.8) } 100% { opacity:1; filter:brightness(1.2) } }
@keyframes coe-storm { 0% { transform:scale(1); opacity:0.5 } 50% { transform:scale(1.1); opacity:0.8 } 100% { transform:scale(1); opacity:0.5 } }
@keyframes coe-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes coe-candle { 0% { transform: scaleY(1) opacity:0.8 } 100% { transform: scaleY(0.9) opacity:1 } }
@keyframes coe-flash { 0%, 90%, 100% { opacity:0 } 50% { opacity:0.9 } 60% { opacity:0 } }

.scn-comparative-estimate-no-fight { background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 60%, #3a3a3a 0%, transparent 70%); }
.scn-comparative-estimate-no-fight .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 100%); animation: ce-bg 10s ease-in-out infinite alternate; }
.scn-comparative-estimate-no-fight .table { position:absolute; bottom:8%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); animation: ce-table 6s ease-in-out infinite; }
.scn-comparative-estimate-no-fight .map { position:absolute; bottom:18%; left:30%; width:40%; height:15%; background: linear-gradient(45deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: ce-map 12s ease-in-out infinite alternate; }
.scn-comparative-estimate-no-fight .lamp { position:absolute; top:30%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,0.3); animation: ce-lamp 3s ease-in-out infinite alternate; }
.scn-comparative-estimate-no-fight .figure-left { position:absolute; bottom:15%; left:18%; width:20px; 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: ce-figure-left 4s ease-in-out infinite; }
.scn-comparative-estimate-no-fight .figure-right { position:absolute; bottom:15%; right:18%; width:20px; 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: ce-figure-right 4s ease-in-out infinite 1s; }
.scn-comparative-estimate-no-fight .bookstack { position:absolute; bottom:10%; left:5%; width:30px; height:45px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: ce-bookstack 8s ease-in-out infinite; }
@keyframes ce-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ce-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ce-map { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ce-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.2); opacity:0.8 } 50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.2); opacity:0.85 } }
@keyframes ce-figure-left { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ce-figure-right { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes ce-bookstack { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-campaign-without-actual-combat { background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 50%, #1a1a1a 100%), radial-gradient(ellipse at 30% 60%, #3a3a3a 0%, transparent 60%); }
.scn-campaign-without-actual-combat .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 100%); animation: ca-bg 12s ease-in-out infinite alternate; }
.scn-campaign-without-actual-combat .window { position:absolute; top:15%; left:8%; width:30%; height:50%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a3a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: ca-window 15s ease-in-out infinite alternate; }
.scn-campaign-without-actual-combat .desk { position:absolute; bottom:10%; left:20%; right:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: ca-desk 5s ease-in-out infinite; }
.scn-campaign-without-actual-combat .chair { position:absolute; bottom:12%; right:12%; width:18px; height:35px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: ca-chair 6s ease-in-out infinite; }
.scn-campaign-without-actual-combat .candle { position:absolute; bottom:25%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 20px 10px rgba(255,208,128,0.5); animation: ca-candle 3s ease-in-out infinite alternate; }
.scn-campaign-without-actual-combat .papers { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: ca-papers 8s ease-in-out infinite alternate; }
.scn-campaign-without-actual-combat .globe { position:absolute; bottom:22%; left:45%; width:20px; height:20px; background: radial-gradient(circle at 30% 30%, #5a6a4a, #3a4a2a); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: ca-globe 20s linear infinite; }
@keyframes ca-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ca-window { 0% { filter: brightness(0.8) } 50% { filter: brightness(1) } 100% { filter: brightness(0.9) } }
@keyframes ca-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ca-chair { 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 ca-candle { 0% { box-shadow: 0 0 15px 5px rgba(255,208,128,0.3); opacity:0.8 } 50% { box-shadow: 0 0 25px 15px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 15px 5px rgba(255,208,128,0.3); opacity:0.85 } }
@keyframes ca-papers { 0% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(1) rotate(-1deg) } }
@keyframes ca-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-military-history-examples { background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 50%, #1a1a1a 100%), radial-gradient(ellipse at 70% 50%, #3a3a3a 0%, transparent 60%); }
.scn-military-history-examples .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 100%); animation: mi-bg 10s ease-in-out infinite alternate; }
.scn-military-history-examples .bookshelf { position:absolute; top:10%; left:5%; width:30%; height:80%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.5); animation: mi-shelf 12s ease-in-out infinite; }
.scn-military-history-examples .books-left { position:absolute; top:15%; left:7%; width:10%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: inset -2px 0 4px rgba(0,0,0,0.3); animation: mi-books-left 8s ease-in-out infinite alternate; }
.scn-military-history-examples .books-right { position:absolute; top:12%; left:20%; width:8%; height:75%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: inset 2px 0 4px rgba(0,0,0,0.3); animation: mi-books-right 10s ease-in-out infinite alternate; }
.scn-military-history-examples .figure { position:absolute; bottom:20%; right:20%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-figure 5s ease-in-out infinite; }
.scn-military-history-examples .lamp { position:absolute; top:35%; right:45%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,208,128,0.4); animation: mi-lamp 3s ease-in-out infinite alternate; }
.scn-military-history-examples .rug { position:absolute; bottom:5%; left:15%; right:15%; height:8%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 20%, #4a3a2a 40%, #5a4a3a 60%, #4a3a2a 80%, #5a4a3a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: mi-rug 15s ease-in-out infinite alternate; }
@keyframes mi-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mi-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mi-books-left { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes mi-books-right { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }
@keyframes mi-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mi-lamp { 0% { box-shadow: 0 0 20px 10px rgba(255,208,128,0.2); opacity:0.8 } 50% { box-shadow: 0 0 40px 20px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 20px 10px rgba(255,208,128,0.2); opacity:0.85 } }
@keyframes mi-rug { 0% { filter: blur(2px) brightness(0.8) } 50% { filter: blur(1px) brightness(1) } 100% { filter: blur(2px) brightness(0.9) } }

.scn-unity-of-means-thread { background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 50%, #1a1a1a 100%), radial-gradient(ellipse at 70% 40%, #3a3a3a 0%, transparent 60%); }
.scn-unity-of-means-thread .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #2b2b2b 100%); animation: um-bg 10s ease-in-out infinite alternate; }
.scn-unity-of-means-thread .table { position:absolute; bottom:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,0.5); animation: um-table 6s ease-in-out infinite; }
.scn-unity-of-means-thread .spool { position:absolute; bottom:15%; left:25%; width:16px; height:16px; background: radial-gradient(circle at 50% 50%, #6a5a3a 0%, #4a3a2a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: um-spool 4s ease-in-out infinite alternate; }
.scn-unity-of-means-thread .hand { position:absolute; bottom:18%; left:40%; width:14px; height:20px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: um-hand 3s ease-in-out infinite; }
.scn-unity-of-means-thread .thread { position:absolute; bottom:20%; left:38%; width:1px; height:30px; background: #8a7a5a; transform-origin: bottom center; animation: um-thread 5s ease-in-out infinite; }
.scn-unity-of-means-thread .candle { position:absolute; bottom:20%; right:20%; width:6px; height:18px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 15px 8px rgba(255,208,128,0.4); animation: um-candle 3s ease-in-out infinite alternate; }
.scn-unity-of-means-thread .fabric { position:absolute; bottom:8%; left:55%; width:30px; height:15px; background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: um-fabric 8s ease-in-out infinite alternate; }
@keyframes um-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes um-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes um-spool { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes um-hand { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(1px) rotate(0deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes um-thread { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes um-candle { 0% { box-shadow: 0 0 10px 5px rgba(255,208,128,0.3); opacity:0.8 } 50% { box-shadow: 0 0 20px 12px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 10px 5px rgba(255,208,128,0.3); opacity:0.85 } }
@keyframes um-fabric { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(-1deg) } }

/* Scene 1 – Concentration Principle (calm, bright interior) */
.scn-defence-of-theatre-concentration-principle {
  background: linear-gradient(180deg, #f5edd0 0%, #dbc89a 100%), radial-gradient(ellipse at 50% 100%, #e8dbb0 0%, transparent 70%);
}
.scn-defence-of-theatre-concentration-principle .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dbb0 0%, #cbb587 100%);
  animation: s1-wall 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-concentration-principle .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 32%;
  background: linear-gradient(180deg, #8b684a 0%, #5a3e2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
  animation: s1-table 12s ease-in-out infinite;
}
.scn-defence-of-theatre-concentration-principle .lamp {
  position: absolute; bottom: 38%; left: 50%; width: 24px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #ffde90 0%, #d4a050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(240,200,100,.6), 0 0 80px 30px rgba(240,200,100,.3);
  animation: s1-lamp 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-concentration-principle .paper-stack {
  position: absolute; bottom: 32%; left: 45%; width: 80px; height: 10px;
  background: repeating-linear-gradient(0deg, #f5f0e0 0px, #f5f0e0 3px, #e0d6c0 3px, #e0d6c0 6px);
  border-radius: 2px;
  animation: s1-paper 15s ease-in-out infinite;
}
.scn-defence-of-theatre-concentration-principle .chair-left {
  position: absolute; bottom: 12%; left: 8%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: s1-chair-l 8s ease-in-out infinite;
}
.scn-defence-of-theatre-concentration-principle .chair-right {
  position: absolute; bottom: 12%; right: 8%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: s1-chair-r 8s ease-in-out infinite 2s;
}
.scn-defence-of-theatre-concentration-principle .window {
  position: absolute; top: 6%; left: 60%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #c8daf0 0%, #9abbd8 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(255,255,220,.5);
  animation: s1-window 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-concentration-principle .curtain {
  position: absolute; top: 4%; left: 58%; width: 130px; height: 100px;
  background: linear-gradient(90deg, #b87878 0%, #a05a5a 20%, #b87878 40%, #c88484 60%, #b06060 100%);
  border-radius: 6%; filter: blur(2px);
  animation: s1-curtain 30s ease-in-out infinite alternate;
}
@keyframes s1-wall { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .9 } }
@keyframes s1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes s1-lamp { 0% { box-shadow: 0 0 30px 15px rgba(240,200,100,.5), 0 0 60px 25px rgba(240,200,100,.2); } 50% { box-shadow: 0 0 50px 25px rgba(240,200,100,.7), 0 0 100px 40px rgba(240,200,100,.35); } 100% { box-shadow: 0 0 35px 18px rgba(240,200,100,.5), 0 0 70px 30px rgba(240,200,100,.25); } }
@keyframes s1-paper { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes s1-chair-l { 0%,100% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(-4px) } }
@keyframes s1-chair-r { 0%,100% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(2deg) translateX(4px) } }
@keyframes s1-window { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes s1-curtain { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-8px) scale(1.02) } 100% { transform: translateX(4px) scale(.98) } }

/* Scene 2 – Ascertaining Enemy (calm, bright interior) */
.scn-defence-of-theatre-ascertaining-enemy {
  background: linear-gradient(180deg, #e8dbb0 0%, #cbb587 100%), radial-gradient(ellipse at 50% 100%, #d8c8a0 0%, transparent 70%);
}
.scn-defence-of-theatre-ascertaining-enemy .wall-map {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 55%;
  background: linear-gradient(135deg, #d4c99a 0%, #c1b581 40%, #b0a46e 100%);
  border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.2);
  animation: s2-wall-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-ascertaining-enemy .map-table {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 28%;
  background: linear-gradient(180deg, #7a5e40 0%, #4d3520 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3);
  animation: s2-map-table 14s ease-in-out infinite;
}
.scn-defence-of-theatre-ascertaining-enemy .pincluster-left {
  position: absolute; top: 25%; left: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 0 8px 4px rgba(200,85,61,.4);
  animation: s2-pin-left 5s ease-in-out infinite;
}
.scn-defence-of-theatre-ascertaining-enemy .pincluster-right {
  position: absolute; top: 20%; right: 25%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8553d 0%, #702243 100%);
  border-radius: 50%; box-shadow: 0 0 6px 3px rgba(200,85,61,.3);
  animation: s2-pin-right 5s ease-in-out infinite 2.5s;
}
.scn-defence-of-theatre-ascertaining-enemy .window-light {
  position: absolute; top: 2%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #e8f0ff 0%, #b0c8e0 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(255,255,230,.6);
  animation: s2-window-light 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-ascertaining-enemy .chair {
  position: absolute; bottom: 12%; left: 50%; width: 44px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: s2-chair 9s ease-in-out infinite;
}
.scn-defence-of-theatre-ascertaining-enemy .inkwell {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: s2-inkwell 20s ease-in-out infinite;
}
@keyframes s2-wall-map { 0% { opacity: .75 } 50% { opacity: .85 } 100% { opacity: .8 } }
@keyframes s2-map-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes s2-pin-left { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) } }
@keyframes s2-pin-right { 0%,100% { transform: scale(1) } 50% { transform: scale(1.15) } }
@keyframes s2-window-light { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes s2-chair { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes s2-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* Scene 3 – Uncertainty (tense, overcast) */
.scn-defence-of-theatre-uncertainty {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 70%);
}
.scn-defence-of-theatre-uncertainty .fort-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 0 0 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
  animation: s3-wall 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-uncertainty .guard-silhouette {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-guard 6s ease-in-out infinite;
}
.scn-defence-of-theatre-uncertainty .fog-layer-1 {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(180,190,200,.4) 0%, transparent 60%);
  filter: blur(20px);
  animation: s3-fog1 40s linear infinite;
}
.scn-defence-of-theatre-uncertainty .fog-layer-2 {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 60%, rgba(160,170,180,.3) 0%, transparent 50%);
  filter: blur(30px);
  animation: s3-fog2 50s linear infinite reverse;
}
.scn-defence-of-theatre-uncertainty .lantern-glow {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,208,96,.3), 0 0 120px 60px rgba(255,208,96,.1);
  animation: s3-lantern-glow 2.5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-uncertainty .lantern-body {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 22px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a06030 0%, #603018 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  animation: s3-lantern-body 2.5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-uncertainty .distant-hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  filter: blur(4px);
  animation: s3-hills 22s ease-in-out infinite alternate;
}
@keyframes s3-wall { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .85 } }
@keyframes s3-guard { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes s3-fog1 { 0% { transform: translateX(-10%) scale(1) } 100% { transform: translateX(10%) scale(1.05) } }
@keyframes s3-fog2 { 0% { transform: translateX(10%) scale(1) } 100% { transform: translateX(-10%) scale(1.03) } }
@keyframes s3-lantern-glow { 0% { opacity: .3; box-shadow: 0 0 40px 20px rgba(255,208,96,.2), 0 0 80px 40px rgba(255,208,96,.08); } 50% { opacity: .6; box-shadow: 0 0 80px 40px rgba(255,208,96,.4), 0 0 160px 80px rgba(255,208,96,.15); } 100% { opacity: .4; box-shadow: 0 0 50px 25px rgba(255,208,96,.25), 0 0 100px 50px rgba(255,208,96,.1); } }
@keyframes s3-lantern-body { 0%,100% { opacity: .8; transform: translateX(-50%) rotate(-3deg); } 50% { opacity: .9; transform: translateX(-50%) rotate(3deg); } }
@keyframes s3-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }

/* Scene 4 – Natural Advantage (calm, bright interior) */
.scn-defence-of-theatre-natural-advantage {
  background: linear-gradient(180deg, #f2edd8 0%, #ddd0b0 50%, #c4b48a 100%), radial-gradient(ellipse at 50% 100%, #e8dcb8 0%, transparent 70%);
}
.scn-defence-of-theatre-natural-advantage .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0d4b8 0%, #c8bc9a 100%);
  animation: s4-wall 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-natural-advantage .window-frame {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #b0a070 0%, #8a7a50 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.3);
  animation: s4-window-frame 10s ease-in-out infinite;
}
.scn-defence-of-theatre-natural-advantage .balcony-rail {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%);
  border-radius: 2px;
  animation: s4-rail 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-natural-advantage .horizon-sky {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b0d0e8 0%, #d8e8f0 60%, #f0f0e0 100%);
  border-radius: 20%;
  animation: s4-sky 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-natural-advantage .horizon-hills {
  position: absolute; bottom: 34%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  filter: blur(3px);
  animation: s4-hills 24s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-natural-advantage .sun {
  position: absolute; top: 18%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e0a0 0%, #f0d080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,208,128,.4), 0 0 120px 60px rgba(240,208,128,.15);
  animation: s4-sun 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-natural-advantage .cloud-a {
  position: absolute; top: 14%; left: 20%; width: 60px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: s4-cloud-a 45s linear infinite;
}
.scn-defence-of-theatre-natural-advantage .cloud-b {
  position: absolute; top: 22%; right: 10%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: s4-cloud-b 55s linear infinite reverse;
}
@keyframes s4-wall { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .9 } }
@keyframes s4-window-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes s4-rail { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes s4-sky { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes s4-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(1px) scale(.99) } }
@keyframes s4-sun { 0% { box-shadow: 0 0 40px 20px rgba(240,208,128,.3), 0 0 80px 40px rgba(240,208,128,.1); } 50% { box-shadow: 0 0 80px 40px rgba(240,208,128,.5), 0 0 160px 80px rgba(240,208,128,.2); } 100% { box-shadow: 0 0 50px 25px rgba(240,208,128,.35), 0 0 100px 50px rgba(240,208,128,.12); } }
@keyframes s4-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes s4-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene 1: old-vs-new */
.scn-strategic-manoeuvring-old-vs-new {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c9a8 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e7 0%, transparent 60%);
}
.scn-strategic-manoeuvring-old-vs-new .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e2d4b7 0%, #c6b493 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
}
.scn-strategic-manoeuvring-old-vs-new .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8b6f47 0%, #5e4a2e 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-old-vs-new .map {
  position: absolute; bottom: 40%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #d4b68a 0%, #b8956a 100%);
  border-radius: 4px;
  transform: perspective(600px) rotateX(15deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: smov-map 20s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-old-vs-new .figure-left {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a3b2e 0%, #2c2219 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: smov-fig-l 6s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-old-vs-new .figure-right {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #5c4a38 0%, #3a2d1f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: smov-fig-r 6s ease-in-out infinite alternate-reverse;
}
.scn-strategic-manoeuvring-old-vs-new .candle {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0d9a0 0%, #b8955a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: translateX(-50%);
  animation: smov-candle 4s ease-in-out infinite;
}
.scn-strategic-manoeuvring-old-vs-new .light-glow {
  position: absolute; bottom: 44%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe28a 0%, #ffd060 40%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  opacity: 0.6;
  animation: smov-glow 3s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-old-vs-new .scatter-paper {
  position: absolute; bottom: 25%; left: 30%; width: 8px; height: 6px;
  background: #e7d4a8;
  border-radius: 1px;
  transform: rotate(15deg);
  box-shadow: 2px 3px 0 #c6b087, 5px -2px 0 #dfcba0;
  animation: smov-papers 24s linear infinite;
}
@keyframes smov-map { 0% { transform: perspective(600px) rotateX(15deg) scale(1); } 50% { transform: perspective(600px) rotateX(12deg) scale(1.02); } 100% { transform: perspective(600px) rotateX(15deg) scale(1); } }
@keyframes smov-fig-l { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes smov-fig-r { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes smov-candle { 0%,100% { transform: translateX(-50%) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } }
@keyframes smov-glow { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); } }
@keyframes smov-papers { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(8px); } 100% { transform: rotate(15deg) translateX(0); } }

/* Scene 2: skill-not-honour */
.scn-strategic-manoeuvring-skill-not-honour {
  background:
    linear-gradient(180deg, #eedcc5 0%, #dfcbb0 100%),
    radial-gradient(ellipse at 60% 30%, #fff3e0 0%, transparent 50%);
}
.scn-strategic-manoeuvring-skill-not-honour .room-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #dccbb0 0%, #c4b395 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.08);
}
.scn-strategic-manoeuvring-skill-not-honour .board {
  position: absolute; bottom: 18%; left: 20%; width: 28%; height: 30%;
  background: linear-gradient(135deg, #7a623c 0%, #4c3a22 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: perspective(800px) rotateX(20deg) rotateY(-5deg);
  animation: smsh-board 30s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-skill-not-honour .piece-set {
  position: absolute; bottom: 25%; left: 22%; width: 24%; height: 12%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 4%, #4a3a2a 4%, #4a3a2a 4.5%, transparent 4.5%, transparent 8%);
  border-radius: 2px;
  opacity: 0.6;
  animation: smsh-pieces 12s linear infinite;
}
.scn-strategic-manoeuvring-skill-not-honour .pointing-figure {
  position: absolute; bottom: 12%; left: 45%; width: 18%; height: 48%;
  background: linear-gradient(180deg, #453526 0%, #2b1f14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: smsh-point 5s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-skill-not-honour .standby-figure {
  position: absolute; bottom: 12%; right: 12%; width: 16%; height: 44%;
  background: linear-gradient(180deg, #5c4935 0%, #3a2c1c 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: smsh-stand 8s ease-in-out infinite alternate-reverse;
}
.scn-strategic-manoeuvring-skill-not-honour .beams {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 20%, rgba(255,235,200,0.15) 20%, rgba(255,235,200,0.15) 22%);
  animation: smsh-beams 20s linear infinite reverse;
}
.scn-strategic-manoeuvring-skill-not-honour .shadow-cast {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: smsh-shadow 6s ease-in-out infinite alternate;
}
@keyframes smsh-board { 0% { transform: perspective(800px) rotateX(20deg) rotateY(-5deg); } 50% { transform: perspective(800px) rotateX(18deg) rotateY(-8deg); } 100% { transform: perspective(800px) rotateX(20deg) rotateY(-5deg); } }
@keyframes smsh-pieces { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes smsh-point { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes smsh-stand { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes smsh-beams { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }
@keyframes smsh-shadow { 0% { opacity: 0.8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: 0.8; transform: scaleX(1); } }

/* Scene 3: seven-years-example */
.scn-strategic-manoeuvring-seven-years-example {
  background:
    linear-gradient(180deg, #f2e3cc 0%, #e0cfb5 100%),
    radial-gradient(ellipse at 70% 30%, #fff7ec 0%, transparent 60%);
}
.scn-strategic-manoeuvring-seven-years-example .wall-panel {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #ddccb0 0%, #cbb99a 100%);
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.1);
}
.scn-strategic-manoeuvring-seven-years-example .window {
  position: absolute; top: 8%; left: 65%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #b8d4e0 0%, #8ab4c4 100%);
  border: 8px solid #a08860;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,230,0.5);
  animation: smsx-window 30s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-seven-years-example .table-long {
  position: absolute; bottom: 5%; left: 8%; right: 8%; height: 35%;
  background: linear-gradient(180deg, #7d653f 0%, #58452a 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-seven-years-example .scroll {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #d9c59e 0%, #c3ad82 100%);
  border-radius: 4px;
  transform: perspective(500px) rotateX(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: smsx-scroll 25s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-seven-years-example .group-figures {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, #2c1f12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  opacity: 0.7;
  animation: smsx-group 8s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-seven-years-example .inkwell {
  position: absolute; bottom: 18%; left: 20%; width: 6px; height: 8px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  animation: smsx-ink 15s linear infinite;
}
.scn-strategic-manoeuvring-seven-years-example .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,240,210,0.1) 0%, transparent 50%);
  animation: smsx-dust 40s linear infinite;
}
@keyframes smsx-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes smsx-scroll { 0% { transform: perspective(500px) rotateX(10deg) scaleY(1); } 50% { transform: perspective(500px) rotateX(8deg) scaleY(1.02); } 100% { transform: perspective(500px) rotateX(10deg) scaleY(1); } }
@keyframes smsx-group { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes smsx-ink { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes smsx-dust { 0% { background-position: 0 0; } 50% { background-position: 20px 10px; } 100% { background-position: 0 0; } }

/* Scene 4: theoretical-forms */
.scn-strategic-manoeuvring-theoretical-forms {
  background:
    linear-gradient(180deg, #ecddc4 0%, #dbcab0 100%),
    radial-gradient(ellipse at 30% 50%, #fffaf0 0%, transparent 70%);
}
.scn-strategic-manoeuvring-theoretical-forms .bookshelf {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #5a4832 0%, #3f3220 100%);
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.2);
}
.scn-strategic-manoeuvring-theoretical-forms .bookshelf::before {
  content: none; /* no pseudo-element content, kept for structure */
}
.scn-strategic-manoeuvring-theoretical-forms .desk {
  position: absolute; bottom: 5%; left: 35%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a704a 0%, #5e4a30 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-theoretical-forms .globe {
  position: absolute; bottom: 40%; left: 60%; width: 14%; height: 20%;
  background: radial-gradient(circle at 40% 30%, #c4a87a 0%, #8b6f4a 70%, #5a4530 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: smtf-globe 30s linear infinite;
}
.scn-strategic-manoeuvring-theoretical-forms .reading-figure {
  position: absolute; bottom: 10%; left: 35%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #4b3b2c 0%, #2c1f12 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: smtf-read 7s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-theoretical-forms .stack-papers {
  position: absolute; bottom: 28%; left: 48%; width: 12%; height: 8%;
  background: repeating-linear-gradient(180deg, #e2ccac 0%, #e2ccac 8%, #cbb48a 8%, #cbb48a 16%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: smtf-papers 18s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-theoretical-forms .lamp-glow {
  position: absolute; bottom: 44%; left: 42%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe792 0%, #ffcf5a 40%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: smtf-lamp 4s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-theoretical-forms .floating-ideas {
  position: absolute; top: 15%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: smtf-float 20s ease-in-out infinite;
}
@keyframes smtf-globe { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } }
@keyframes smtf-read { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes smtf-papers { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes smtf-lamp { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes smtf-float { 0% { transform: translate(0,0) scale(1); opacity: 0.6; } 25% { transform: translate(20px,-15px) scale(0.9); opacity: 0.8; } 50% { transform: translate(10px, -30px) scale(1.1); opacity: 0.5; } 75% { transform: translate(-10px,-20px) scale(1); opacity: 0.7; } 100% { transform: translate(0,0) scale(1); opacity: 0.6; } }

/* ---- attack-theatre-roads ---- */
.scn-attack-theatre-roads {
  background:
    linear-gradient(165deg, #f5edd6 0%, #e8dbba 40%, #d8c8a0 100%),
    radial-gradient(circle at 60% 80%, #cbb38a 0%, transparent 70%);
}
.scn-attack-theatre-roads .table {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e6d2 0%, #dacfb0 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
}
.scn-attack-theatre-roads .road {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(90deg, transparent 0%, #b8a47a 20%, #a59068 50%, #b8a47a 80%, transparent 100%);
  border-radius: 4px;
  animation: rd-road 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-roads .field-left {
  position: absolute; bottom: 22%; left: 2%; width: 36%; height: 18%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  clip-path: polygon(0 100%, 100% 60%, 100% 100%);
  animation: rd-field 8s ease-in-out infinite alternate;
}
.scn-attack-theatre-roads .field-right {
  position: absolute; bottom: 22%; right: 2%; width: 36%; height: 18%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  clip-path: polygon(0 60%, 100% 100%, 0 100%);
  animation: rd-field 8s ease-in-out infinite alternate-reverse;
}
.scn-attack-theatre-roads .tree {
  position: absolute; bottom: 28%;
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
}
.scn-attack-theatre-roads .tree-a {
  left: 22%;
  animation: rd-tree-sway 4s ease-in-out infinite;
}
.scn-attack-theatre-roads .tree-b {
  left: 70%;
  animation: rd-tree-sway 4.5s ease-in-out infinite -1.2s;
}
.scn-attack-theatre-roads .tree::after {
  content: '';
  position: absolute; top: -18px; left: -6px; width: 20px; height: 20px;
  background: radial-gradient(circle, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 50%;
}
.scn-attack-theatre-roads .cart {
  position: absolute; bottom: 26%; left: 40%;
  width: 30px; height: 14px;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 6px 6px 4px 4px;
  animation: rd-cart 12s linear infinite;
}
.scn-attack-theatre-roads .compass {
  position: absolute; top: 10%; right: 8%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e0b0 30%, #c8b080 70%, transparent 100%);
  border-radius: 50%;
  animation: rd-compass 8s ease-in-out infinite alternate;
}
@keyframes rd-road { 0% { opacity: 0.7; filter: blur(0); } 50% { opacity: 1; filter: blur(1px); } 100% { opacity: 0.8; filter: blur(0); } }
@keyframes rd-field { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes rd-tree-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes rd-cart { 0% { transform: translateX(-20px); } 100% { transform: translateX(calc(100vw - 50px)); } }
@keyframes rd-compass { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

/* ---- attack-theatre-protection-rear ---- */
.scn-attack-theatre-protection-rear {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b8a888 40%, #9a8a6a 100%),
    radial-gradient(ellipse at 50% 80%, #b0a080 0%, transparent 60%);
}
.scn-attack-theatre-protection-rear .wall {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 45%;
  background: linear-gradient(90deg, #8a7a5a 0%, #a09070 20%, #8a7a5a 40%, #7a6a4a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.15);
}
.scn-attack-theatre-protection-rear .guard {
  position: absolute; bottom: 30%; left: 30%;
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pr-guard 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-protection-rear .flag {
  position: absolute; bottom: 66%; left: 42%;
  width: 4px; height: 24px;
  background: #4a3a2a;
}
.scn-attack-theatre-protection-rear .flag::after {
  content: '';
  position: absolute; top: 0; left: 2px; width: 18px; height: 12px;
  background: linear-gradient(135deg, #a0461a 0%, #803515 100%);
  border-radius: 0 60% 60% 0;
  animation: pr-flag-wind 3s ease-in-out infinite;
}
.scn-attack-theatre-protection-rear .post {
  position: absolute; bottom: 30%; left: 42%;
  width: 4px; height: 10px;
  background: #2a1a0a;
}
.scn-attack-theatre-protection-rear .shadow {
  position: absolute; bottom: 28%; left: 26%;
  width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: pr-shadow 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-protection-rear .ground {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
@keyframes pr-guard { 0% { transform: translateX(0); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes pr-flag-wind { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes pr-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

/* ---- attack-theatre-limited-object ---- */
.scn-attack-theatre-limited-object {
  background:
    linear-gradient(90deg, #e8ddd0 0%, #dad0c0 50%, #c8bcac 100%),
    radial-gradient(circle at 40% 70%, #f0e8e0 0%, transparent 70%);
}
.scn-attack-theatre-limited-object .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #ece4d8 0%, #d4c8b8 100%);
  border-radius: 4px;
}
.scn-attack-theatre-limited-object .pedestal {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #b8a890 0%, #907a60 100%);
  border-radius: 6px 6px 10px 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.scn-attack-theatre-limited-object .chest {
  position: absolute; bottom: 44%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 18px;
  background: linear-gradient(135deg, #c8a86a 0%, #a88848 100%);
  border-radius: 4px;
  animation: lo-chest 5s ease-in-out infinite;
}
.scn-attack-theatre-limited-object .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, rgba(255,240,200,0) 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
  animation: lo-beam 7s ease-in-out infinite alternate;
}
.scn-attack-theatre-limited-object .dust {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-attack-theatre-limited-object .dust-a {
  top: 30%; left: 25%;
  animation: lo-dust 12s linear infinite;
}
.scn-attack-theatre-limited-object .dust-b {
  top: 50%; right: 30%;
  animation: lo-dust 15s linear infinite 4s;
}
.scn-attack-theatre-limited-object .shadow-obj {
  position: absolute; bottom: 20%; left: 48%; width: 44px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: lo-shadow 5s ease-in-out infinite;
}
@keyframes lo-chest { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes lo-beam { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lo-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.4; } 100% { transform: translate(20px, -40px) scale(0.5); opacity: 0; } }
@keyframes lo-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.8); } }

/* ---- attack-theatre-magazine-fortress ---- */
.scn-attack-theatre-magazine-fortress {
  background:
    linear-gradient(135deg, #d6c9b8 0%, #c0b0a0 50%, #a8937f 100%),
    radial-gradient(circle at 70% 30%, #f0e8dc 0%, transparent 60%);
}
.scn-attack-theatre-magazine-fortress .table-wargame {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #e0d4c4 0%, #c8b8a8 100%);
  border-radius: 3%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.06);
}
.scn-attack-theatre-magazine-fortress .model-fort {
  position: absolute; bottom: 12%; left: 20%;
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 60%, #5a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-attack-theatre-magazine-fortress .model-magazine {
  position: absolute; bottom: 22%; left: 40%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #b89a6a 0%, #987a4a 100%);
  border-radius: 4px;
  animation: mf-magazine 6s ease-in-out infinite alternate;
}
.scn-attack-theatre-magazine-fortress .model-gate {
  position: absolute; bottom: 18%; left: 55%;
  width: 12px; height: 20px;
  background: #5a4a2a;
  border-radius: 2px;
  animation: mf-gate 4s ease-in-out infinite;
}
.scn-attack-theatre-magazine-fortress .model-tower {
  position: absolute; bottom: 36%; left: 30%;
  width: 14px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.1);
}
.scn-attack-theatre-magazine-fortress .flag-red {
  position: absolute; bottom: 58%; left: 32%;
  width: 3px; height: 18px;
  background: #4a3a2a;
}
.scn-attack-theatre-magazine-fortress .flag-red::after {
  content: '';
  position: absolute; top: 0; left: 1px;
  width: 12px; height: 8px;
  background: linear-gradient(135deg, #b05030 0%, #803515 100%);
  border-radius: 0 40% 40% 0;
  animation: mf-flag 3s ease-in-out infinite;
}
.scn-attack-theatre-magazine-fortress .flag-blue {
  position: absolute; bottom: 54%; right: 30%;
  width: 3px; height: 14px;
  background: #3a3a4a;
}
.scn-attack-theatre-magazine-fortress .flag-blue::after {
  content: '';
  position: absolute; top: 0; left: 1px;
  width: 10px; height: 7px;
  background: linear-gradient(135deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 0 40% 40% 0;
  animation: mf-flag 3s ease-in-out infinite 1s;
}
.scn-attack-theatre-magazine-fortress .ruler {
  position: absolute; top: 10%; right: 8%;
  width: 60px; height: 6px;
  background: linear-gradient(90deg, #c8b89a 0%, #e0d4c4 50%, #c8b89a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: mf-ruler 10s ease-in-out infinite alternate;
}
@keyframes mf-magazine { 0% { transform: scale(1); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes mf-gate { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes mf-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }
@keyframes mf-ruler { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(-3px); } }

/* decreasing-force-of-attack */
.scn-decreasing-force-of-attack {
  background: linear-gradient(160deg, #eeddcc 0%, #cbb593 40%, #b8966e 80%), radial-gradient(ellipse at 40% 60%, #e0c8a8 0%, transparent 70%);
}
.scn-decreasing-force-of-attack .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #dcc8b0 0%, #b8966e 100%); }
.scn-decreasing-force-of-attack .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b6f4e 0%, #5a442e 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-decreasing-force-of-attack .lamp { position:absolute; bottom:38%; left:50%; width:28px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c9a87e 0%, #7a5d3e 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 16px 8px #f0d0a0; animation: dfa-lamp 6s ease-in-out infinite alternate; }
.scn-decreasing-force-of-attack .glow-soft { position:absolute; bottom:34%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: radial-gradient(circle, #fae4c0 0%, #ecc996 30%, transparent 70%); border-radius:50%; opacity:.7; animation: dfa-glow 4s ease-in-out infinite alternate; }
.scn-decreasing-force-of-attack .shadow { position:absolute; bottom:35%; left:43%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.25) 0%, transparent 70%); animation: dfa-shadow 6s ease-in-out infinite alternate; }
.scn-decreasing-force-of-attack .figure-sitting { position:absolute; bottom:35%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dfa-sit 8s ease-in-out infinite; }
.scn-decreasing-force-of-attack .window-lit { position:absolute; top:10%; right:15%; width:50px; height:60px; background: linear-gradient(135deg, #ffefd0 0%, #d4b88a 100%); border:2px solid #6a4e30; border-radius:4px; box-shadow: 0 0 20px 10px rgba(255,239,208,.3); animation: dfa-window 12s ease-in-out infinite alternate; }
.scn-decreasing-force-of-attack .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(230,200,160,.15) 0%, transparent 50%); filter: blur(2px); animation: dfa-dust 15s linear infinite; }
@keyframes dfa-lamp {
  0% { box-shadow: 0 0 16px 6px #eed0a0; opacity:.9; transform:translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 24px 12px #f0d0a0; opacity:1; transform:translateX(-50%) scale(1.02); }
  100% { box-shadow: 0 0 12px 4px #c9a87e; opacity:.7; transform:translateX(-50%) scale(0.98); }
}
@keyframes dfa-glow {
  0% { opacity:.5; transform:translateX(-50%) scale(1); }
  50% { opacity:.8; transform:translateX(-50%) scale(1.1); }
  100% { opacity:.6; transform:translateX(-50%) scale(0.95); }
}
@keyframes dfa-shadow {
  0% { opacity:.3; transform:scaleX(1); }
  50% { opacity:.5; transform:scaleX(0.9); }
  100% { opacity:.2; transform:scaleX(1.1); }
}
@keyframes dfa-sit {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-2px) rotate(2deg); }
  100% { transform:translateY(0) rotate(-1deg); }
}
@keyframes dfa-window {
  0% { opacity:.6; transform:scale(1); }
  50% { opacity:.9; transform:scale(1.05); }
  100% { opacity:.7; transform:scale(0.98); }
}
@keyframes dfa-dust {
  0% { opacity:.15; background-position:0% 0%; }
  50% { opacity:.3; background-position:20% 40%; }
  100% { opacity:.1; background-position:10% 60%; }
}

/* culminating-point-of-attack */
.scn-culminating-point-of-attack {
  background: linear-gradient(180deg, #e8dac0 0%, #cfbc9a 50%, #b7a07e 100%), radial-gradient(ellipse at 50% 30%, #f2e6d4 0%, transparent 60%);
}
.scn-culminating-point-of-attack .bg-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #dcc8b0 0%, #b99a78 100%); }
.scn-culminating-point-of-attack .table { position:absolute; bottom:30%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #7a5d3e 0%, #543a26 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-culminating-point-of-attack .map-scroll { position:absolute; bottom:35%; left:28%; width:100px; height:60px; background: linear-gradient(135deg, #f2e6d4 0%, #d4c4a8 100%); border-radius:8px; transform:rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,.2); animation: cpa-map 10s ease-in-out infinite; }
.scn-culminating-point-of-attack .candle { position:absolute; bottom:38%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c9a87e 100%); border-radius:20% 20% 10% 10%; animation: cpa-candle 4s ease-in-out infinite alternate; }
.scn-culminating-point-of-attack .flame-glow { position:absolute; bottom:42%; left:55%; width:40px; height:40px; transform:translateX(-14px); background: radial-gradient(circle, #ffdd90 0%, #f0b060 40%, transparent 80%); border-radius:50%; opacity:.8; animation: cpa-flame 2s ease-in-out infinite alternate; }
.scn-culminating-point-of-attack .compass { position:absolute; bottom:30%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #c9a87e 0%, #8b6f4e 100%); border-radius:50%; border:2px solid #5a442e; box-shadow: inset 0 0 6px #543a26; animation: cpa-compass 8s ease-in-out infinite; }
.scn-culminating-point-of-attack .figure-leaning { position:absolute; bottom:33%; right:30%; width:24px; height:45px; background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cpa-lean 6s ease-in-out infinite; }
@keyframes cpa-map {
  0% { transform:rotate(-5deg) translateY(0); }
  50% { transform:rotate(-3deg) translateY(-2px); }
  100% { transform:rotate(-6deg) translateY(0); }
}
@keyframes cpa-candle {
  0% { height:30px; opacity:.9; }
  50% { height:32px; opacity:1; }
  100% { height:28px; opacity:.8; }
}
@keyframes cpa-flame {
  0% { transform:translateX(-14px) scale(1); opacity:.7; }
  50% { transform:translateX(-12px) scale(1.15); opacity:.9; }
  100% { transform:translateX(-16px) scale(0.9); opacity:.6; }
}
@keyframes cpa-compass {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(45deg); }
  100% { transform:rotate(0deg); }
}
@keyframes cpa-lean {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(-3px) rotate(3deg); }
  100% { transform:translateX(1px) rotate(-2deg); }
}

/* culminating-point-discover */
.scn-culminating-point-discover {
  background: linear-gradient(180deg, #1a2a3a 0%, #2c4050 40%, #3a5a6e 100%), radial-gradient(ellipse at 60% 50%, #5a8a9e 0%, transparent 70%);
}
.scn-culminating-point-discover .bg-chill { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c4050 0%, #1a2a3a 100%); }
.scn-culminating-point-discover .door-frame { position:absolute; bottom:10%; left:50%; width:100px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius:6px; border:2px solid #5a4a3a; box-shadow: inset 0 0 20px #1a1a1a; }
.scn-culminating-point-discover .light-beam { position:absolute; bottom:10%; left:50%; width:80px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,240,210,.6) 0%, rgba(255,220,180,.2) 100%); border-radius:4px; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: cpd-beam 3s ease-in-out infinite alternate; }
.scn-culminating-point-discover .shadow-door { position:absolute; bottom:10%; left:50%; width:90px; height:130px; transform:translateX(-55%); background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); opacity:.4; animation: cpd-shadow 5s ease-in-out infinite alternate; }
.scn-culminating-point-discover .figure-reach { position:absolute; bottom:20%; left:38%; width:22px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: cpd-reach 4s ease-in-out infinite; }
.scn-culminating-point-discover .sparkle { position:absolute; bottom:40%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 4px #ffd080; animation: cpd-spark 2s ease-in-out infinite alternate; }
.scn-culminating-point-discover .dust-particles { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, rgba(200,220,230,.1) 0%, transparent 60%); filter: blur(1px); animation: cpd-dust 12s linear infinite; }
@keyframes cpd-beam {
  0% { opacity:.5; transform:translateX(-50%) scaleY(1); }
  50% { opacity:.8; transform:translateX(-50%) scaleY(1.05); }
  100% { opacity:.6; transform:translateX(-50%) scaleY(0.95); }
}
@keyframes cpd-shadow {
  0% { opacity:.3; transform:translateX(-55%) scale(1); }
  50% { opacity:.5; transform:translateX(-55%) scale(0.95); }
  100% { opacity:.4; transform:translateX(-55%) scale(1.02); }
}
@keyframes cpd-reach {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(4px) rotate(5deg); }
  100% { transform:translateX(-2px) rotate(-3deg); }
}
@keyframes cpd-spark {
  0% { transform:scale(1); opacity:.6; }
  50% { transform:scale(1.5); opacity:1; }
  100% { transform:scale(0.8); opacity:.4; }
}
@keyframes cpd-dust {
  0% { opacity:.1; background-position:0% 0%; }
  50% { opacity:.25; background-position:10% 30%; }
  100% { opacity:.15; background-position:5% 20%; }
}

/* destruction-of-enemy-army */
.scn-destruction-of-enemy-army {
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 40%, #2a1e14 100%), radial-gradient(ellipse at 40% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-destruction-of-enemy-army .bg-ruin { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); }
.scn-destruction-of-enemy-army .pillar-broken { position:absolute; bottom:30%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1e 100%); border-radius:4px; transform:rotate(8deg); box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: dea-pillar 10s ease-in-out infinite; }
.scn-destruction-of-enemy-army .rubble { position:absolute; bottom:22%; left:25%; width:80px; height:25px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1e 100%); border-radius:20px; transform:rotate(-3deg); box-shadow: inset 0 2px 4px #1a1a1a; }
.scn-destruction-of-enemy-army .papers-scattered { position:absolute; bottom:25%; left:45%; width:50px; height:35px; background: linear-gradient(135deg, #e0d0b8 0%, #c0a88a 100%); border-radius:2px; transform:rotate(15deg); box-shadow: 1px 1px 6px rgba(0,0,0,.3); animation: dea-papers 8s ease-in-out infinite; }
.scn-destruction-of-enemy-army .candle-flicker { position:absolute; bottom:15%; left:60%; width:12px; height:28px; background: linear-gradient(180deg, #f0d0a0 0%, #c9a87e 100%); border-radius:20%; box-shadow: 0 0 12px 6px #f0d0a0; animation: dea-candle 3s ease-in-out infinite alternate; }
.scn-destruction-of-enemy-army .smoke-wisp { position:absolute; bottom:60%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,.3) 0%, transparent 70%); filter: blur(4px); animation: dea-smoke 15s linear infinite; }
.scn-destruction-of-enemy-army .shadow-creep { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: dea-creep 6s ease-in-out infinite alternate; }
@keyframes dea-pillar {
  0% { transform:rotate(8deg) translateY(0); }
  50% { transform:rotate(8deg) translateY(-2px); }
  100% { transform:rotate(8deg) translateY(0); }
}
@keyframes dea-papers {
  0% { transform:rotate(15deg) translateX(0); opacity:.8; }
  50% { transform:rotate(15deg) translateX(-3px); opacity:1; }
  100% { transform:rotate(15deg) translateX(1px); opacity:.7; }
}
@keyframes dea-candle {
  0% { box-shadow: 0 0 10px 4px #f0d0a0; opacity:.8; height:28px; }
  50% { box-shadow: 0 0 16px 8px #ffdd90; opacity:1; height:30px; }
  100% { box-shadow: 0 0 8px 3px #c9a87e; opacity:.6; height:26px; }
}
@keyframes dea-smoke {
  0% { opacity:.2; transform:translateY(0) scale(1); }
  50% { opacity:.4; transform:translateY(-10px) scale(1.1); }
  100% { opacity:.1; transform:translateY(-20px) scale(0.9); }
}
@keyframes dea-creep {
  0% { opacity:.6; }
  50% { opacity:.8; }
  100% { opacity:.5; }
}

.scn-attack-mountain-turning { background: linear-gradient(135deg, #f5e6c8 0%, #d9c5a0 50%, #c0a880 100%), radial-gradient(circle at 20% 80%, #e8d4b0 0%, transparent 60%); }
.scn-attack-mountain-turning .table { position: absolute; inset: 20% 10% 15% 10%; background: linear-gradient(180deg, #b89870 0%, #8a7048 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.15); }
.scn-attack-mountain-turning .mountain { position: absolute; bottom: 35%; left: 25%; width: 60px; height: 80px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: am-mtn 12s ease-in-out infinite; }
.scn-attack-mountain-turning .arrow-left { position: absolute; bottom: 45%; left: 15%; width: 50px; height: 8px; background: linear-gradient(90deg, #b8785a 0%, transparent 100%); border-radius: 4px; transform: rotate(30deg) translate(10px, 0); animation: am-arrow-l 6s ease-in-out infinite alternate; }
.scn-attack-mountain-turning .arrow-right { position: absolute; bottom: 45%; left: 55%; width: 50px; height: 8px; background: linear-gradient(270deg, #b8785a 0%, transparent 100%); border-radius: 4px; transform: rotate(-30deg) translate(-10px, 0); animation: am-arrow-r 6s ease-in-out infinite alternate; }
.scn-attack-mountain-turning .troop-a { position: absolute; bottom: 30%; left: 20%; width: 10px; height: 16px; background: #5a4a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: am-troop 8s ease-in-out infinite; }
.scn-attack-mountain-turning .troop-b { position: absolute; bottom: 30%; left: 60%; width: 10px; height: 16px; background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: am-troop 8s ease-in-out infinite 2s; }
.scn-attack-mountain-turning .compass { position: absolute; top: 15%; right: 12%; width: 24px; height: 24px; background: radial-gradient(circle, #c8a870 0%, #8a7048 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: am-compass 20s linear infinite; }
.scn-attack-mountain-turning .paper-edge { position: absolute; inset: 18% 8% 13% 8%; border: 2px solid #b89870; border-radius: 4px; opacity: 0.4; animation: am-paper 12s ease-in-out infinite alternate; }
@keyframes am-mtn { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes am-arrow-l { 0% { transform: rotate(30deg) translateX(10px); opacity: 0.6; } 100% { transform: rotate(30deg) translateX(20px); opacity: 1; } }
@keyframes am-arrow-r { 0% { transform: rotate(-30deg) translateX(-10px); opacity: 0.6; } 100% { transform: rotate(-30deg) translateX(-20px); opacity: 1; } }
@keyframes am-troop { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes am-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes am-paper { 0% { opacity: 0.3; border-color: #b89870; } 50% { opacity: 0.5; border-color: #c8a880; } 100% { opacity: 0.3; } }

.scn-attack-on-cordon-lines { background: linear-gradient(180deg, #f0e0c8 0%, #d8c0a0 50%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, #faf0e0 0%, transparent 70%); }
.scn-attack-on-cordon-lines .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c0a888 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.1); }
.scn-attack-on-cordon-lines .cordon-1 { position: absolute; bottom: 30%; left: 20%; width: 4px; height: 100px; background: linear-gradient(180deg, #8a7858 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(-5deg); animation: cl-cordon 4s ease-in-out infinite alternate; }
.scn-attack-on-cordon-lines .cordon-2 { position: absolute; bottom: 30%; left: 35%; width: 4px; height: 90px; background: linear-gradient(180deg, #8a7858 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(5deg); animation: cl-cordon 4s ease-in-out infinite alternate-reverse; }
.scn-attack-on-cordon-lines .sentry { position: absolute; bottom: 32%; left: 28%; width: 14px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-sentry 6s ease-in-out infinite; }
.scn-attack-on-cordon-lines .attacker { position: absolute; bottom: 32%; left: 55%; width: 12px; height: 18px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cl-attacker 7s ease-in-out infinite; }
.scn-attack-on-cordon-lines .dust { position: absolute; bottom: 28%; left: 50%; width: 30px; height: 10px; background: radial-gradient(ellipse, rgba(180,160,120,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: cl-dust 10s linear infinite; }
.scn-attack-on-cordon-lines .sunbeam { position: absolute; top: 0; left: 10%; width: 20px; height: 50%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); transform: skewX(-10deg); animation: cl-sunbeam 8s ease-in-out infinite alternate; }
@keyframes cl-cordon { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-5deg) translateY(-5px); } }
@keyframes cl-sentry { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cl-attacker { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes cl-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(-20px) scale(1.5); opacity: 0.3; } 100% { transform: translateX(20px) scale(1); opacity: 0.6; } }
@keyframes cl-sunbeam { 0% { opacity: 0.3; transform: skewX(-10deg) scaleY(0.8); } 100% { opacity: 0.6; transform: skewX(-10deg) scaleY(1); } }

.scn-manoeuvring-concept { background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 50%, #c8b090 100%), radial-gradient(ellipse at 50% 100%, #f0e8d8 0%, transparent 60%); }
.scn-manoeuvring-concept .board { position: absolute; inset: 25% 15% 25% 15%; background: linear-gradient(45deg, #e8dcc8 25%, #b8a080 25%, #b8a080 50%, #e8dcc8 50%, #e8dcc8 75%, #b8a080 75%); background-size: 50px 50px; border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.15); animation: mc-board 20s ease-in-out infinite alternate; }
.scn-manoeuvring-concept .knight { position: absolute; bottom: 40%; left: 30%; width: 16px; height: 22px; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%; transform: rotate(15deg); animation: mc-knight 5s ease-in-out infinite; }
.scn-manoeuvring-concept .bishop { position: absolute; bottom: 35%; left: 55%; width: 14px; height: 24px; background: linear-gradient(180deg, #a09080 0%, #605040 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; clip-path: polygon(50% 0%, 30% 100%, 70% 100%); animation: mc-bishop 6s ease-in-out infinite alternate; }
.scn-manoeuvring-concept .pawn-a { position: absolute; bottom: 45%; left: 20%; width: 8px; height: 14px; background: #705848; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-pawn 10s linear infinite; }
.scn-manoeuvring-concept .pawn-b { position: absolute; bottom: 45%; left: 70%; width: 8px; height: 14px; background: #584838; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-pawn 10s linear infinite 5s; }
.scn-manoeuvring-concept .path-marker { position: absolute; bottom: 38%; left: 25%; width: 40px; height: 4px; background: linear-gradient(90deg, transparent, #d4a878 50%, transparent); border-radius: 2px; animation: mc-path 8s ease-in-out infinite; }
.scn-manoeuvring-concept .glow-spot { position: absolute; top: 30%; left: 40%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(255,220,160,.5) 0%, transparent 70%); animation: mc-glow 4s ease-in-out infinite alternate; }
@keyframes mc-board { 0% { transform: perspective(300px) rotateX(5deg); } 100% { transform: perspective(300px) rotateX(-5deg); } }
@keyframes mc-knight { 0% { transform: translate(0,0) rotate(15deg); } 25% { transform: translate(8px,-4px) rotate(20deg); } 75% { transform: translate(16px,-2px) rotate(10deg); } 100% { transform: translate(0,0) rotate(15deg); } }
@keyframes mc-bishop { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-8px) scale(1.1); } }
@keyframes mc-pawn { 0% { transform: translateX(0); } 25% { transform: translateX(5px); } 75% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes mc-path { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.3); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.5; } }
@keyframes mc-glow { 0% { opacity: 0.4; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-manoeuvring-interests { background: linear-gradient(180deg, #f2e6d4 0%, #d6c4a8 50%, #b8a488 100%), radial-gradient(ellipse at 50% 80%, #e6d8c0 0%, transparent 60%); }
.scn-manoeuvring-interests .ground { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #d6c4a8 0%, #b8a488 100%); }
.scn-manoeuvring-interests .scale-post { position: absolute; bottom: 30%; left: 50%; width: 8px; height: 80px; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius: 4px; transform: translateX(-50%); animation: mi-post 12s ease-in-out infinite; }
.scn-manoeuvring-interests .scale-left { position: absolute; bottom: 38%; left: 38%; width: 50px; height: 40px; background: linear-gradient(180deg, #c0a888 0%, #a08868 100%); border-radius: 8px 8px 4px 4px; transform-origin: 100% 100%; animation: mi-scale-l 6s ease-in-out infinite alternate; }
.scn-manoeuvring-interests .scale-right { position: absolute; bottom: 38%; left: 48%; width: 50px; height: 40px; background: linear-gradient(180deg, #c0a888 0%, #a08868 100%); border-radius: 8px 8px 4px 4px; transform-origin: 0% 100%; animation: mi-scale-r 6s ease-in-out infinite alternate; }
.scn-manoeuvring-interests .sack-left { position: absolute; bottom: 42%; left: 40%; width: 20px; height: 24px; background: radial-gradient(ellipse at 50% 60%, #8a7050 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mi-sack 4s ease-in-out infinite; }
.scn-manoeuvring-interests .sack-right { position: absolute; bottom: 42%; left: 56%; width: 20px; height: 24px; background: radial-gradient(ellipse at 50% 60%, #9a8060 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mi-sack 4s ease-in-out infinite 2s; }
.scn-manoeuvring-interests .arrow-pivot { position: absolute; bottom: 32%; left: 46%; width: 16px; height: 6px; background: #b8785a; clip-path: polygon(0% 0%, 100% 50%, 0% 100%); animation: mi-arrow 10s ease-in-out infinite; }
.scn-manoeuvring-interests .light-halo { position: absolute; top: 10%; left: 30%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(255,220,160,.3) 0%, transparent 70%); animation: mi-halo 8s ease-in-out infinite alternate; }
@keyframes mi-post { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } }
@keyframes mi-scale-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes mi-scale-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes mi-sack { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } }
@keyframes mi-arrow { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes mi-halo { 0% { opacity: 0.4; transform: scale(0.9); } 100% { opacity: 0.8; transform: scale(1.1); } }

/* defence-of-theatre-fortresses-behind */
.scn-defence-of-theatre-fortresses-behind {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b59a 40%, #a69075 100%), radial-gradient(ellipse at 50% 20%, #f5edd6 0%, transparent 60%);
}
.scn-defence-of-theatre-fortresses-behind .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d6c9b3 0%, #b8a68b 100%);
  animation: dfb-wall 20s ease-in-out infinite;
}
.scn-defence-of-theatre-fortresses-behind .window-arch {
  position: absolute; top: 8%; left: 15%; width: 27%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #b0c8e0 0%, #8caac8 60%, #7a9ab8 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 20px 5px rgba(255,240,200,0.3), 0 0 30px 8px rgba(200,180,140,0.5);
  animation: dfb-glass 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fortresses-behind .beam-light {
  position: absolute; top: 8%; left: 18%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(255,245,210,0.35) 0%, rgba(255,245,210,0.05) 100%);
  transform: skewX(-8deg);
  filter: blur(4px);
  animation: dfb-beam 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fortresses-behind .table {
  position: absolute; bottom: 12%; left: 10%; width: 55%; height: 18%;
  background: linear-gradient(180deg, #8b6f50 0%, #5a4a38 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: dfb-table 20s ease-in-out infinite;
}
.scn-defence-of-theatre-fortresses-behind .candle {
  position: absolute; bottom: 28%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 6px rgba(240,200,120,0.6), 0 0 48px 12px rgba(240,200,120,0.3);
  animation: dfb-candle 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fortresses-behind .book {
  position: absolute; bottom: 14%; left: 30%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: dfb-book 15s ease-in-out infinite;
}
.scn-defence-of-theatre-fortresses-behind .figure-sitting {
  position: absolute; bottom: 14%; left: 40%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dfb-figure 6s ease-in-out infinite;
}
.scn-defence-of-theatre-fortresses-behind .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: dfb-shadow 6s ease-in-out infinite;
}
@keyframes dfb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes dfb-glass { 0% { filter: brightness(0.95) contrast(1.05); } 50% { filter: brightness(1.1) contrast(0.95); } 100% { filter: brightness(1) contrast(1); } }
@keyframes dfb-beam { 0% { opacity: 0.3; transform: skewX(-8deg) translateX(-2px); } 50% { opacity: 0.5; transform: skewX(-6deg) translateX(2px); } 100% { opacity: 0.35; transform: skewX(-8deg) translateX(0); } }
@keyframes dfb-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dfb-candle { 0% { transform: scaleY(1); opacity: 0.85; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.9; } }
@keyframes dfb-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dfb-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dfb-shadow { 0% { transform: scaleX(0.95); opacity: 0.6; } 50% { transform: scaleX(1); opacity: 0.7; } 100% { transform: scaleX(0.95); opacity: 0.6; } }

/* defence-of-theatre-retreat-into-interior */
.scn-defence-of-theatre-retreat-into-interior {
  background: linear-gradient(180deg, #d6c8b0 0%, #b8a890 40%, #9a8a70 100%), radial-gradient(ellipse at 50% 10%, #e8dcc4 0%, transparent 60%);
}
.scn-defence-of-theatre-retreat-into-interior .wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #c4b49c 0%, #a89880 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
  animation: dri-wall 20s ease-in-out infinite;
}
.scn-defence-of-theatre-retreat-into-interior .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #c4b49c 0%, #a89880 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.2);
  animation: dri-wall 20s ease-in-out infinite;
}
.scn-defence-of-theatre-retreat-into-interior .doorway {
  position: absolute; bottom: 10%; left: 38%; width: 24%; height: 70%;
  background: #2a1e12;
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.4) inset;
  animation: dri-door 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-retreat-into-interior .figure-retreating {
  position: absolute; bottom: 16%; left: 44%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: dri-figure 5s ease-in-out infinite;
}
.scn-defence-of-theatre-retreat-into-interior .tile-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: repeating-conic-gradient(#8a7a62 0% 25%, transparent 0% 50%) 0 0 / 20px 20px;
  opacity: 0.4;
  animation: dri-tile 30s linear infinite;
}
.scn-defence-of-theatre-retreat-into-interior .lantern {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(240,200,100,0.5), 0 0 60px 16px rgba(240,200,100,0.2);
  animation: dri-lantern 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-retreat-into-interior .dust-motes-a {
  position: absolute; top: 20%; left: 30%; width: 3px; height: 3px;
  background: rgba(255,240,200,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: dri-dust 12s linear infinite;
}
.scn-defence-of-theatre-retreat-into-interior .dust-motes-b {
  position: absolute; top: 30%; left: 50%; width: 2px; height: 2px;
  background: rgba(255,240,200,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: dri-dust 18s linear infinite reverse;
  animation-delay: -5s;
}
@keyframes dri-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.88; } }
@keyframes dri-door { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.98) scaleY(1.02); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes dri-figure { 0% { transform: scaleX(-1) translateX(0) translateY(0); } 50% { transform: scaleX(-1) translateX(-4px) translateY(-2px); } 100% { transform: scaleX(-1) translateX(0) translateY(0); } }
@keyframes dri-tile { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }
@keyframes dri-lantern { 0% { transform: rotate(-5deg) scale(1); opacity: 0.8; } 50% { transform: rotate(5deg) scale(1.05); opacity: 1; } 100% { transform: rotate(-3deg) scale(0.98); opacity: 0.85; } }
@keyframes dri-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-20px) translateX(5px) scale(1.2); opacity: 0.2; } 100% { transform: translateY(-40px) translateX(-5px) scale(0.8); opacity: 0; } }

/* defence-of-theatre-summary */
.scn-defence-of-theatre-summary {
  background: linear-gradient(180deg, #e0d4be 0%, #c8bca6 40%, #b0a48e 100%), radial-gradient(ellipse at 50% 30%, #f0e8d4 0%, transparent 60%);
}
.scn-defence-of-theatre-summary .desk {
  position: absolute; bottom: 8%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: dts-desk 25s ease-in-out infinite;
}
.scn-defence-of-theatre-summary .map {
  position: absolute; bottom: 18%; left: 10%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 40%, #a09070 100%);
  border-radius: 2px;
  transform: perspective(400px) rotateX(20deg) rotateY(-5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.4);
  animation: dts-map 15s ease-in-out infinite;
}
.scn-defence-of-theatre-summary .inkwell {
  position: absolute; bottom: 22%; left: 60%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: dts-ink 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-summary .quill {
  position: absolute; bottom: 26%; left: 65%; width: 2px; height: 16px;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  transform: rotate(30deg);
  border-radius: 30% 30% 0 0;
  animation: dts-quill 8s ease-in-out infinite;
}
.scn-defence-of-theatre-summary .candle {
  position: absolute; bottom: 28%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(240,200,120,0.5), 0 0 40px 12px rgba(240,200,120,0.2);
  animation: dts-candle 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-summary .hand-writing {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #2a1e12 0%, #1a0e06 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 1px 1px 2px rgba(0,0,0,0.3);
  animation: dts-hand 12s ease-in-out infinite;
}
.scn-defence-of-theatre-summary .shadow-desk {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: dts-shade 15s ease-in-out infinite;
}
@keyframes dts-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dts-map { 0% { transform: perspective(400px) rotateX(20deg) rotateY(-5deg) scale(1); } 50% { transform: perspective(400px) rotateX(22deg) rotateY(-3deg) scale(1.02); } 100% { transform: perspective(400px) rotateX(20deg) rotateY(-5deg) scale(1); } }
@keyframes dts-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dts-quill { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(32deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes dts-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.06) translateY(-1px); opacity: 1; } 100% { transform: scaleY(0.98) translateY(0); opacity: 0.85; } }
@keyframes dts-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes dts-shade { 0% { opacity: 0.5; transform: scaleX(0.95); } 50% { opacity: 0.7; transform: scaleX(1); } 100% { opacity: 0.5; transform: scaleX(0.95); } }

/* defence-of-theatre-close */
.scn-defence-of-theatre-close {
  background: linear-gradient(180deg, #d8ccb8 0%, #beb09a 40%, #a4947e 100%), radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, transparent 60%);
}
.scn-defence-of-theatre-close .door-frame {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 90%;
  border: 8px solid #6a5a48;
  border-radius: 10% 10% 0 0 / 8% 8% 0 0;
  background: transparent;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.3) inset;
  animation: dtc-frame 15s ease-in-out infinite;
}
.scn-defence-of-theatre-close .door-panel {
  position: absolute; top: 7%; left: 32%; width: 36%; height: 82%;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a48 100%);
  border-radius: 8% 8% 0 0 / 6% 6% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: dtc-panel 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-close .window-small {
  position: absolute; top: 15%; left: 42%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #b0c8e0 0%, #8caac8 60%, #7a9ab8 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 5px rgba(200,180,140,0.4);
  animation: dtc-window 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-close .figure-standing {
  position: absolute; bottom: 12%; left: 44%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2e1e 0%, #2a1e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dtc-figure 5s ease-in-out infinite;
}
.scn-defence-of-theatre-close .latch {
  position: absolute; top: 50%; left: 48%; width: 6px; height: 10px;
  background: #5a4a38;
  border-radius: 2px;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
  animation: dtc-latch 8s ease-in-out infinite;
}
.scn-defence-of-theatre-close .floor-line {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a48 100%);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: dtc-floor 30s linear infinite;
}
.scn-defence-of-theatre-close .shadow-close {
  position: absolute; top: 7%; left: 32%; width: 36%; height: 82%;
  background: linear-gradient(135deg, rgba(0,0,0,0.1) 0%, transparent 50%, rgba(0,0,0,0.15) 100%);
  border-radius: 8% 8% 0 0 / 6% 6% 0 0;
  animation: dtc-shadow 10s ease-in-out infinite alternate;
}
@keyframes dtc-frame { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes dtc-panel { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.99) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes dtc-window { 0% { filter: brightness(0.95) contrast(1.05); } 50% { filter: brightness(1.1) contrast(0.95); } 100% { filter: brightness(1) contrast(1); } }
@keyframes dtc-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dtc-latch { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes dtc-floor { 0% { background-position: 0 0; } 100% { background-position: 0 -30px; } }
@keyframes dtc-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; } }

.scn-war-gained-lost-consistency {
  background:
    linear-gradient(180deg, #1f1815 0%, #2c1f1a 40%, #3a2a22 100%),
    radial-gradient(ellipse at 60% 90%, #3a2a22 0%, transparent 70%);
}
.scn-war-gained-lost-consistency .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c1f1a 0%, #1f1815 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.5);
}
.scn-war-gained-lost-consistency .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-top: 3px solid #3a2a22;
}
.scn-war-gained-lost-consistency .table {
  position: absolute; bottom:20%; left:25%; width:50%; height:20%;
  background: linear-gradient(180deg, #4a3328 0%, #2c1f1a 100%);
  border-radius: 4% 4% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,.7);
  transform: rotateX(15deg);
}
.scn-war-gained-lost-consistency .chest {
  position: absolute; bottom:22%; left:45%; width:22%; height:12%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.6), 0 6px 8px rgba(0,0,0,.5);
  animation: sc1-chest 8s ease-in-out infinite;
}
.scn-war-gained-lost-consistency .coins {
  position: absolute; bottom:20%; left:48%; width:10%; height:4%;
  background: radial-gradient(circle, #c8a050 0%, #8a6e30 70%);
  border-radius: 50%;
  box-shadow: 0 2px 10px 2px rgba(200,160,80,.3);
  animation: sc1-coins 3s ease-in-out infinite alternate;
}
.scn-war-gained-lost-consistency .shadow-figure {
  position: absolute; bottom:18%; right:12%; width:14%; height:40%;
  background: linear-gradient(180deg, #0d0a08 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: sc1-shadow 5s ease-in-out infinite alternate;
}
.scn-war-gained-lost-consistency .candle {
  position: absolute; bottom:32%; left:30%; width:2%; height:8%;
  background: linear-gradient(180deg, #dbb06a 0%, #a07030 30%, #2c1f1a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 -10px 30px 6px rgba(219,176,106,.5);
  animation: sc1-candle 2s ease-in-out infinite alternate;
}
@keyframes sc1-chest { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(0deg) scaleY(1.02); } 100% { transform: rotateY(0deg); } }
@keyframes sc1-coins { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes sc1-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .8; } 50% { transform: translateX(-8px) scaleX(1.1); opacity: .9; } 100% { transform: translateX(0) scaleX(1); opacity: .8; } }
@keyframes sc1-candle { 0% { transform: rotate(-2deg); filter: brightness(1); } 50% { transform: rotate(2deg); filter: brightness(1.15); } 100% { transform: rotate(-2deg); filter: brightness(1); } }

/* Scene 2 */
.scn-people-nothing-war-18th {
  background:
    linear-gradient(180deg, #181e24 0%, #1f2833 40%, #2a3545 100%),
    radial-gradient(ellipse at 30% 80%, #2a3545 0%, transparent 60%);
}
.scn-people-nothing-war-18th .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3545 0%, #1f2833 100%);
  box-shadow: inset 0 -30px 40px rgba(0,0,0,.6);
}
.scn-people-nothing-war-18th .wall-panel {
  position: absolute; top:10%; right:5%; width:40%; height:60%;
  background: linear-gradient(135deg, #3a4a5a 0%, #1f2833 100%);
  border-radius: 2% 2% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  border-left: 2px solid #4a5a6a;
}
.scn-people-nothing-war-18th .silhouette-row {
  position: absolute; bottom:20%; left:5%; width:90%; height:30%;
  background: linear-gradient(180deg, #0d0d0d 0%, #050505 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 15% 20%, 20% 100%, 25% 20%, 30% 100%, 35% 20%, 40% 100%, 45% 20%, 50% 100%, 55% 20%, 60% 100%, 65% 20%, 70% 100%, 75% 20%, 80% 100%, 85% 20%, 90% 100%, 95% 20%, 100% 100%);
  animation: sc2-row 6s ease-in-out infinite alternate;
}
.scn-people-nothing-war-18th .silhouette-row.rear {
  bottom:28%; height:20%; opacity: .4;
  animation: sc2-row-rear 8s ease-in-out infinite alternate;
}
.scn-people-nothing-war-18th .ruler-shadow {
  position: absolute; bottom:18%; right:8%; width:18%; height:50%;
  background: linear-gradient(180deg, #111 0%, #000 100%);
  border-radius: 60% 60% 30% 30% / 50% 50% 20% 20%;
  filter: blur(5px);
  transform: scaleX(1.2);
  animation: sc2-ruler 10s ease-in-out infinite alternate;
}
.scn-people-nothing-war-18th .pendulum {
  position: absolute; top:5%; left:50%; width:2px; height:40%;
  background: linear-gradient(180deg, #5a6a7a 0%, #1f2833 100%);
  transform-origin: top center;
  animation: sc2-pendulum 4s ease-in-out infinite;
}
.scn-people-nothing-war-18th .dust {
  position: absolute; top:30%; left:20%; width:60%; height:20%;
  background: radial-gradient(circle, rgba(255,255,255,.05) 0%, transparent 70%);
  filter: blur(10px);
  animation: sc2-dust 15s linear infinite;
}
@keyframes sc2-row { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes sc2-row-rear { 0% { transform: translateX(0) scaleY(1) scaleX(1); opacity: .3; } 50% { transform: translateX(-3px) scaleY(1.01) scaleX(1.05); opacity: .5; } 100% { transform: translateX(0) scaleY(1) scaleX(1); opacity: .3; } }
@keyframes sc2-ruler { 0% { transform: scaleX(1.2) translateX(0) rotate(0deg); } 50% { transform: scaleX(1.3) translateX(2px) rotate(1deg); } 100% { transform: scaleX(1.2) translateX(0) rotate(0deg); } }
@keyframes sc2-pendulum { 0% { transform: rotate(15deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(15deg); } }
@keyframes sc2-dust { 0% { opacity: .1; transform: translateY(0); } 50% { opacity: .3; transform: translateY(-20px); } 100% { opacity: .1; transform: translateY(0); } }

/* Scene 3 */
.scn-defined-limits-war {
  background:
    linear-gradient(180deg, #1c1e22 0%, #252830 40%, #2e333d 100%),
    radial-gradient(ellipse at 50% 100%, #2e333d 0%, transparent 60%);
}
.scn-defined-limits-war .bg-map {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2e333d 0%, #1c1e22 100%);
}
.scn-defined-limits-war .desk {
  position: absolute; bottom:20%; left:2%; right:2%; height:22%;
  background: linear-gradient(180deg, #3a3e48 0%, #1c1e22 100%);
  border-radius: 6% 6% 20% 20%/30% 30% 10% 10%;
  transform: rotateX(10deg);
}
.scn-defined-limits-war .map-paper {
  position: absolute; bottom:28%; left:15%; width:70%; height:14%;
  background: linear-gradient(165deg, #c8b890 0%, #a09378 100%);
  border-radius: 2%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: sc3-paper 12s ease-in-out infinite alternate;
}
.scn-defined-limits-war .border-line {
  position: absolute; bottom:32%; left:25%; width:50%; height:2px;
  background: linear-gradient(90deg, transparent, #8a6e30, #c8b890, #8a6e30, transparent);
  animation: sc3-border 8s ease-in-out infinite;
}
.scn-defined-limits-war .marker-a {
  position: absolute; bottom:31%; left:30%; width:6px; height:6px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,70,26,.5);
  animation: sc3-marker-a 5s ease-in-out infinite alternate;
}
.scn-defined-limits-war .marker-b {
  position: absolute; bottom:33%; right:35%; width:6px; height:6px;
  background: radial-gradient(circle, #2a6a8a 0%, #1a3a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(42,106,138,.5);
  animation: sc3-marker-b 5s ease-in-out infinite alternate;
  animation-delay: 2.5s;
}
.scn-defined-limits-war .lamp {
  position: absolute; top:8%; left:45%; width:10%; height:12%;
  background: radial-gradient(circle, #c8a050 0%, #5a4020 100%);
  border-radius: 50% 50% 30% 30% / 30% 30% 50% 50%;
  box-shadow: 0 0 40px 20px rgba(200,160,80,.3);
  animation: sc3-lamp 6s ease-in-out infinite alternate;
}
@keyframes sc3-paper { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes sc3-border { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .5; } }
@keyframes sc3-marker-a { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-1px) scale(1.2); } 100% { transform: translate(0,0) scale(1); } }
@keyframes sc3-marker-b { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-2px,1px) scale(1.2); } 100% { transform: translate(0,0) scale(1); } }
@keyframes sc3-lamp { 0% { box-shadow: 0 0 30px 15px rgba(200,160,80,.3); } 50% { box-shadow: 0 0 60px 25px rgba(200,160,80,.5); } 100% { box-shadow: 0 0 30px 15px rgba(200,160,80,.3); } }

/* Scene 4 */
.scn-cautious-instrument-war {
  background:
    linear-gradient(180deg, #1a1c22 0%, #22262e 40%, #2c313b 100%),
    radial-gradient(ellipse at 40% 70%, #2c313b 0%, transparent 60%);
}
.scn-cautious-instrument-war .bg-dim {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2c313b 0%, #1a1c22 100%);
}
.scn-cautious-instrument-war .pedestal {
  position: absolute; bottom:15%; left:50%; width:16%; height:30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3e48 0%, #1c1e22 100%);
  border-radius: 10% 10% 40% 40% / 10% 10% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(255,255,255,.1), 0 8px 12px rgba(0,0,0,.6);
}
.scn-cautious-instrument-war .scales {
  position: absolute; bottom:40%; left:50%; width:20%; height:6%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #c8a050 0%, #e0c080 50%, #c8a050 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,.4);
  animation: sc4-scales 8s ease-in-out infinite;
}
.scn-cautious-instrument-war .scale-pan {
  position: absolute; bottom:30%; width:12%; height:12%;
  background: linear-gradient(135deg, #c8a050 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.5);
}
.scn-cautious-instrument-war .scale-pan.left {
  left:33%;
  animation: sc4-pan-left 8s ease-in-out infinite;
}
.scn-cautious-instrument-war .scale-pan.right {
  right:33%;
  animation: sc4-pan-right 8s ease-in-out infinite;
}
.scn-cautious-instrument-war .sword {
  position: absolute; bottom:20%; left:15%; width:2%; height:40%;
  background: linear-gradient(180deg, #888 0%, #4a4a4a 100%);
  transform: rotate(20deg);
  transform-origin: bottom center;
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 4px rgba(255,255,255,.2);
  animation: sc4-sword 6s ease-in-out infinite alternate;
}
.scn-cautious-instrument-war .document {
  position: absolute; bottom:22%; right:12%; width:12%; height:8%;
  background: linear-gradient(165deg, #b8a888 0%, #8a7a68 100%);
  border-radius: 4%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: sc4-doc 10s ease-in-out infinite alternate;
}
@keyframes sc4-scales { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sc4-pan-left { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sc4-pan-right { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes sc4-sword { 0% { transform: rotate(20deg); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(20deg); } }
@keyframes sc4-doc { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }

/* Scene 1: defence-of-streams-substitute-for-direct */
.scn-defence-of-streams-substitute-for-direct {
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%), radial-gradient(ellipse at 50% 80%, #f0e8d0 0%, transparent 70%);
}
.scn-defence-of-streams-substitute-for-direct .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #c8b898 0%, #a89070 100%); opacity:0.6; animation:def1-room 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .window-frame { position:absolute; top:10%; left:20%; width:60%; height:50%; border:12px solid #8a7a5a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.2); background:transparent; animation:def1-frame 15s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .outside { position:absolute; top:10%; left:20%; width:60%; height:50%; background:linear-gradient(180deg, #87ceeb 0%, #6ba3c4 100%); border-radius:2px; overflow:hidden; animation:def1-outside 30s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .hills { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; animation:def1-hills 25s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .river { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(90deg, #4a7a9a 0%, #6a9aba 50%, #4a7a9a 100%); animation:def1-river 18s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .officer { position:absolute; bottom:20%; left:40%; width:20px; height:50px; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:def1-officer 6s ease-in-out infinite; }
.scn-defence-of-streams-substitute-for-direct .table { position:absolute; bottom:5%; left:30%; width:40%; height:10%; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.4); animation:def1-table 12s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .candle { position:absolute; bottom:12%; left:50%; width:6px; height:20px; margin-left:-3px; background:linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%); border-radius:2px; animation:def1-candle 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-substitute-for-direct .candle-flame { position:absolute; bottom:25%; left:50%; width:8px; height:14px; margin-left:-4px; background:radial-gradient(circle, #ffd080 0%, #e0a050 60%, transparent 100%); border-radius:50%; animation:def1-flame 1.5s ease-in-out infinite alternate; }
@keyframes def1-room { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes def1-frame { 0% { border-color:#8a7a5a; box-shadow:inset 0 0 20px rgba(0,0,0,0.2) } 50% { border-color:#9a8a6a; box-shadow:inset 0 0 30px rgba(0,0,0,0.3) } 100% { border-color:#8a7a5a; box-shadow:inset 0 0 20px rgba(0,0,0,0.2) } }
@keyframes def1-outside { 0% { background-position:0 0 } 50% { background-position:10px 0 } 100% { background-position:0 0 } }
@keyframes def1-hills { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes def1-river { 0% { background-position:0 0 } 50% { background-position:20px 0 } 100% { background-position:0 0 } }
@keyframes def1-officer { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(12px) translateY(0) rotate(-1deg) } 75% { transform:translateX(18px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(24px) translateY(0) rotate(0) } }
@keyframes def1-table { 0% { transform:rotate(0) } 50% { transform:rotate(1deg) } 100% { transform:rotate(0) } }
@keyframes def1-candle { 0% { height:20px; opacity:0.9 } 50% { height:22px; opacity:1 } 100% { height:20px; opacity:0.9 } }
@keyframes def1-flame { 0% { transform:scale(1) translateY(0); opacity:0.8 } 50% { transform:scale(1.2) translateY(-2px); opacity:1 } 100% { transform:scale(0.9) translateY(0); opacity:0.7 } }

/* Scene 2: defence-of-streams-elegant-dangerous */
.scn-defence-of-streams-elegant-dangerous {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 60%);
}
.scn-defence-of-streams-elegant-dangerous .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation:def2-sky 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-elegant-dangerous .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; animation:def2-ground 25s ease-in-out infinite alternate; }
.scn-defence-of-streams-elegant-dangerous .river { position:absolute; bottom:15%; left:10%; right:10%; height:8%; background:linear-gradient(90deg, #3a5a6a 0%, #5a7a8a 50%, #3a5a6a 100%); border-radius:2px; animation:def2-river 15s ease-in-out infinite alternate; }
.scn-defence-of-streams-elegant-dangerous .bridge { position:absolute; bottom:20%; left:30%; width:40%; height:4%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; border:1px solid #4a3a2a; animation:def2-bridge 10s ease-in-out infinite alternate; }
.scn-defence-of-streams-elegant-dangerous .tent { position:absolute; bottom:15%; width:0; height:0; border-left:30px solid transparent; border-right:30px solid transparent; border-bottom:40px solid #5a4a3a; animation:def2-tent 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-elegant-dangerous .tent-a { left:20%; animation-delay:0s; }
.scn-defence-of-streams-elegant-dangerous .tent-b { left:55%; border-bottom-color:#4a3a2a; animation-delay:-4s; }
.scn-defence-of-streams-elegant-dangerous .flag { position:absolute; bottom:35%; left:40%; width:8px; height:20px; background:#6a4a3a; transform-origin:bottom center; animation:def2-flag 2s ease-in-out infinite; }
.scn-defence-of-streams-elegant-dangerous .soldier { position:absolute; bottom:8%; left:70%; width:16px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:def2-soldier 4s ease-in-out infinite; }
@keyframes def2-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes def2-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes def2-river { 0% { background-position:0 0 } 50% { background-position:30px 0 } 100% { background-position:0 0 } }
@keyframes def2-bridge { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes def2-tent { 0% { transform:rotate(0) } 50% { transform:rotate(2deg) scale(1.02) } 100% { transform:rotate(0) } }
@keyframes def2-flag { 0% { transform:rotate(-10deg) scaleY(1) } 50% { transform:rotate(15deg) scaleY(1.1) } 100% { transform:rotate(-5deg) scaleY(1) } }
@keyframes def2-soldier { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }

/* Scene 3: defence-of-streams-feigned-defence */
.scn-defence-of-streams-feigned-defence {
  background: linear-gradient(135deg, #d8c8a8 0%, #b8a888 100%), radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, transparent 70%);
}
.scn-defence-of-streams-feigned-defence .desk-bg { position:absolute; inset:0; background:linear-gradient(180deg, #a88a6a 0%, #8a6a4a 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,0.3); }
.scn-defence-of-streams-feigned-defence .map { position:absolute; top:20%; left:20%; width:60%; height:40%; background:linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,0.2); transform-origin:center center; animation:def3-map 30s ease-in-out infinite alternate; }
.scn-defence-of-streams-feigned-defence .papers { position:absolute; top:25%; left:30%; width:25%; height:15%; background:linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.1); animation:def3-papers 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-feigned-defence .compass { position:absolute; top:55%; left:70%; width:40px; height:40px; border-radius:50%; background:radial-gradient(circle at 50% 50%, #c0a880 0%, #a08060 60%, #8a6a4a 100%); border:2px solid #6a5a3a; box-shadow:0 0 8px rgba(0,0,0,0.3); animation:def3-compass 12s linear infinite; }
.scn-defence-of-streams-feigned-defence .candle { position:absolute; top:60%; left:15%; width:8px; height:24px; background:linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%); border-radius:2px; animation:def3-candle 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-feigned-defence .inkwell { position:absolute; top:55%; left:45%; width:20px; height:20px; border-radius:50%; background:radial-gradient(circle at 40% 40%, #3a2a1a 0%, #1a0a0a 100%); box-shadow:inset 0 2px 4px rgba(255,255,255,0.1); animation:def3-ink 8s ease-in-out infinite alternate; }
.scn-defence-of-streams-feigned-defence .quill { position:absolute; top:50%; left:42%; width:3px; height:40px; background:linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); transform-origin:bottom center; border-radius:1px; animation:def3-quill 6s ease-in-out infinite alternate; }
@keyframes def3-map { 0% { transform:rotate(0) scale(1) } 50% { transform:rotate(2deg) scale(1.02) } 100% { transform:rotate(0) scale(1) } }
@keyframes def3-papers { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(4px) scale(1.01) } 100% { transform:translateX(0) scale(1) } }
@keyframes def3-compass { 0% { transform:rotate(0) } 100% { transform:rotate(360deg) } }
@keyframes def3-candle { 0% { height:24px; opacity:0.8 } 50% { height:26px; opacity:1 } 100% { height:24px; opacity:0.8 } }
@keyframes def3-ink { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(1) } }
@keyframes def3-quill { 0% { transform:rotate(-10deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-10deg) } }

/* Scene 4: defence-of-streams-feared-demo-example */
.scn-defence-of-streams-feared-demo-example {
  background: linear-gradient(180deg, #b8a88a 0%, #a89070 50%, #8a7050 100%), radial-gradient(ellipse at 50% 70%, #c8b898 0%, transparent 60%);
}
.scn-defence-of-streams-feared-demo-example .tent-bg { position:absolute; inset:0; background:linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius:10px 10px 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,0.3); animation:def4-tentbg 20s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .tent-poles { position:absolute; top:0; left:30%; width:4px; height:80%; background:linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:2px; box-shadow:30px 0 0 #4a3a2a; animation:def4-poles 15s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .table { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.4); animation:def4-table 12s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .map { position:absolute; bottom:24%; left:25%; width:50%; height:30%; background:linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.2); transform-origin:center; animation:def4-map 25s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .candle { position:absolute; bottom:32%; left:35%; width:6px; height:18px; background:linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%); border-radius:2px; animation:def4-candle 3s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .cup { position:absolute; bottom:28%; left:55%; width:14px; height:16px; background:linear-gradient(180deg, #a08060 0%, #8a6a4a 100%); border-radius:50% 50% 20% 20%; box-shadow:0 2px 4px rgba(0,0,0,0.2); animation:def4-cup 9s ease-in-out infinite alternate; }
.scn-defence-of-streams-feared-demo-example .commander { position:absolute; bottom:8%; left:50%; width:20px; height:55px; margin-left:-10px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:def4-commander 6s ease-in-out infinite; }
.scn-defence-of-streams-feared-demo-example .lantern { position:absolute; top:5%; left:70%; width:10px; height:14px; background:linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 12px 4px rgba(208,160,96,0.4); transform-origin:top center; animation:def4-lantern 5s ease-in-out infinite alternate; }
@keyframes def4-tentbg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes def4-poles { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes def4-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes def4-map { 0% { transform:rotate(0) } 50% { transform:rotate(1deg) } 100% { transform:rotate(0) } }
@keyframes def4-candle { 0% { height:18px; opacity:0.8 } 50% { height:20px; opacity:1 } 100% { height:18px; opacity:0.8 } }
@keyframes def4-cup { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes def4-commander { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(1.02) translateY(-1px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes def4-lantern { 0% { transform:rotate(-5deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-2deg) } }

.scn-manoeuvring-antitheses {
  background: linear-gradient(180deg, #f5f0e8 0%, #e3d8c8 40%, #d4c4b0 100%),
              radial-gradient(ellipse at 30% 20%, #fff8f0 0%, transparent 60%);
}
.scn-manoeuvring-antitheses .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8ddcf 0%, #d4c4b0 100%); }
.scn-manoeuvring-antitheses .window { position:absolute; top:12%; left:10%; width:30%; height:45%; background: linear-gradient(180deg, #b8c8d8 0%, #a0b4c8 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: ant-window 8s ease-in-out infinite alternate; }
.scn-manoeuvring-antitheses .desk { position:absolute; bottom:18%; left:40%; width:35%; height:20%; background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%); border-radius: 6px 6px 0 0; transform: perspective(400px) rotateX(5deg); animation: ant-desk 12s ease-in-out infinite alternate; }
.scn-manoeuvring-antitheses .lamp { position:absolute; bottom:32%; left:52%; width:8%; height:18%; background: linear-gradient(180deg, #d4a860 0%, #b08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 24px 8px rgba(200,150,60,0.5); animation: ant-lamp 3s ease-in-out infinite alternate; }
.scn-manoeuvring-antitheses .books { position:absolute; bottom:18%; left:5%; width:20%; height:15%; background: repeating-linear-gradient(90deg, #7a4a2a 0px, #7a4a2a 12px, #9a6a4a 12px, #9a6a4a 24px); border-radius: 2px; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); animation: ant-books 20s ease-in-out infinite; }
.scn-manoeuvring-antitheses .chair { position:absolute; bottom:18%; left:72%; width:18%; height:22%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; animation: ant-chair 6s ease-in-out infinite alternate; }
.scn-manoeuvring-antitheses .carpet { position:absolute; bottom:0; left:5%; width:90%; height:18%; background: linear-gradient(135deg, #8b6040 0%, #704828 50%, #8b6040 100%); border-radius: 20% 20% 0 0; filter: blur(2px); animation: ant-carpet 15s ease-in-out infinite; }
@keyframes ant-window { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes ant-desk { 0% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(3deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(5deg) translateY(0) } }
@keyframes ant-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,150,60,0.4); opacity:0.9 } 50% { box-shadow: 0 0 30px 12px rgba(200,150,60,0.6); opacity:1 } 100% { box-shadow: 0 0 24px 8px rgba(200,150,60,0.5); opacity:0.95 } }
@keyframes ant-books { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes ant-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ant-carpet { 0% { filter: blur(2px); opacity:0.7 } 50% { filter: blur(1px); opacity:0.9 } 100% { filter: blur(2px); opacity:0.7 } }

.scn-manoeuvring-no-rules {
  background: linear-gradient(180deg, #e6e0d8 0%, #d0c8bc 50%, #b8b0a4 100%),
              radial-gradient(ellipse at 50% 30%, #f0ece0 0%, transparent 60%);
}
.scn-manoeuvring-no-rules .arch { position:absolute; top:0; left:10%; width:80%; height:30%; background: radial-gradient(ellipse at 50% 0, #d8d0c4 0%, transparent 70%); border-radius: 50% 50% 0 0; }
.scn-manoeuvring-no-rules .col-left { position:absolute; top:10%; left:10%; width:6%; height:80%; background: linear-gradient(90deg, #c0b8a8 0%, #e0d8cc 20%, #b8b0a0 80%); border-radius: 10px; box-shadow: 4px 0 8px rgba(0,0,0,0.1); animation: nor-column 12s ease-in-out infinite alternate; }
.scn-manoeuvring-no-rules .col-right { position:absolute; top:10%; right:10%; width:6%; height:80%; background: linear-gradient(90deg, #c0b8a8 0%, #e0d8cc 20%, #b8b0a0 80%); border-radius: 10px; box-shadow: -4px 0 8px rgba(0,0,0,0.1); animation: nor-column 12s ease-in-out infinite alternate-reverse; }
.scn-manoeuvring-no-rules .pedestal { position:absolute; bottom:20%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #d8d0c4 0%, #c0b8a8 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: nor-pedestal 8s ease-in-out infinite; }
.scn-manoeuvring-no-rules .urn { position:absolute; bottom:50%; left:45%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 30%, #e0d0b8 0%, #c0a880 60%, #a09070 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: nor-urn 5s ease-in-out infinite alternate; }
.scn-manoeuvring-no-rules .floor { position:absolute; bottom:0; left:0; width:100%; height:20%; background: repeating-linear-gradient(90deg, #b8b0a4 0px, #b8b0a4 30px, #c8c0b4 30px, #c8c0b4 60px); animation: nor-floor 20s linear infinite; }
.scn-manoeuvring-no-rules .shadow { position:absolute; bottom:20%; left:38%; width:24%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(4px); animation: nor-shadow 6s ease-in-out infinite alternate; }
@keyframes nor-column { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.02); opacity:1 } 100% { transform: scaleY(0.98); opacity:0.95 } }
@keyframes nor-pedestal { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nor-urn { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes nor-floor { 0% { background-position: 0 0 } 100% { background-position: 60px 0 } }
@keyframes nor-shadow { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(0.9) } }

.scn-attack-on-morasses {
  background: linear-gradient(180deg, #f0ead0 0%, #e0d4b8 40%, #c8b898 100%),
              radial-gradient(ellipse at 80% 20%, #faf0d8 0%, transparent 50%);
}
.scn-attack-on-morasses .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%); }
.scn-attack-on-morasses .window-swamp { position:absolute; top:10%; right:8%; width:35%; height:50%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); animation: mor-window 10s ease-in-out infinite alternate; }
.scn-attack-on-morasses .map-table { position:absolute; bottom:15%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #8b7048 0%, #6b5030 100%); border-radius: 6px; transform: perspective(500px) rotateX(8deg); animation: mor-table 14s ease-in-out infinite; }
.scn-attack-on-morasses .candle { position:absolute; bottom:35%; left:50%; width:4%; height:12%; background: linear-gradient(180deg, #f0d080 0%, #d4a040 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,150,60,0.5); animation: mor-candle 4s ease-in-out infinite alternate; }
.scn-attack-on-morasses .map-roll { position:absolute; bottom:18%; left:35%; width:20%; height:4%; background: linear-gradient(90deg, #e0d0b0 0%, #f0e0c0 50%, #c8b898 100%); border-radius: 50%; transform: rotate(-10deg); animation: mor-roll 9s ease-in-out infinite; }
.scn-attack-on-morasses .chair-war { position:absolute; bottom:15%; left:65%; width:12%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; animation: mor-chair 7s ease-in-out infinite alternate; }
@keyframes mor-window { 0% { opacity:0.75; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } 100% { opacity:0.8; transform: scale(0.97) } }
@keyframes mor-table { 0% { transform: perspective(500px) rotateX(8deg) translateY(0) } 50% { transform: perspective(500px) rotateX(6deg) translateY(-3px) } 100% { transform: perspective(500px) rotateX(8deg) translateY(0) } }
@keyframes mor-candle { 0% { box-shadow: 0 0 16px 4px rgba(200,150,60,0.4); opacity:0.9 } 50% { box-shadow: 0 0 28px 10px rgba(200,150,60,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(200,150,60,0.5); opacity:0.95 } }
@keyframes mor-roll { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes mor-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-attack-on-morasses-1787 {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 30%, #3a4a5a 70%, #2a3a4a 100%),
              radial-gradient(ellipse at 60% 10%, #7a8a9a 0%, transparent 60%);
}
.scn-attack-on-morasses-1787 .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: m17-sky 15s ease-in-out infinite alternate; }
.scn-attack-on-morasses-1787 .lake { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: m17-lake 8s ease-in-out infinite alternate; }
.scn-attack-on-morasses-1787 .vessel { position:absolute; bottom:25%; left:30%; width:30%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform: rotate(-3deg); animation: m17-vessel 6s ease-in-out infinite; }
.scn-attack-on-morasses-1787 .sail-main { position:absolute; bottom:45%; left:36%; width:12%; height:25%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); border-radius: 10% 10% 30% 30%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: m17-sail 5s ease-in-out infinite alternate; }
.scn-attack-on-morasses-1787 .sail-jib { position:absolute; bottom:35%; left:26%; width:8%; height:20%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); clip-path: polygon(100% 0, 0 100%, 100% 100%); animation: m17-sail 5s ease-in-out infinite alternate-reverse; }
.scn-attack-on-morasses-1787 .wave-set { position:absolute; bottom:0; left:0; width:200%; height:20%; background: repeating-linear-gradient(90deg, transparent, transparent 40px, #4a5a6a 40px, #4a5a6a 80px); filter: blur(3px); animation: m17-wave 12s linear infinite; }
.scn-attack-on-morasses-1787 .cannon { position:absolute; bottom:28%; left:45%; width:6%; height:4%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%); border-radius: 10% 10% 0 0; transform: rotate(15deg); animation: m17-cannon 3s ease-in-out infinite alternate; }
@keyframes m17-sky { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes m17-lake { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes m17-vessel { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes m17-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes m17-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-50%) } }
@keyframes m17-cannon { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(18deg) translateX(2px) } 100% { transform: rotate(15deg) translateX(0) } }

/* Scene: defence-of-theatre-hochkirch */
.scn-defence-of-theatre-hochkirch {
  background:
    linear-gradient(180deg, #5b5b5b 0%, #3e3e3e 40%, #2a2a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%);
}
.scn-defence-of-theatre-hochkirch .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6e6e6e 0%, #4a4a4a 100%);
  animation: hk-sky 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-hochkirch .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
  animation: hk-ground 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-hochkirch .tent-left {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0 100%, 50% 0%, 100% 100%);
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: hk-tent 20s ease-in-out infinite;
}
.scn-defence-of-theatre-hochkirch .tent-right {
  position: absolute; bottom: 28%; right: 25%; width: 90px; height: 70px;
  background: linear-gradient(225deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0 100%, 50% 0%, 100% 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: hk-tent 22s ease-in-out infinite reverse;
}
.scn-defence-of-theatre-hochkirch .soldier {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hk-soldier 4s ease-in-out infinite;
}
.scn-defence-of-theatre-hochkirch .musket {
  position: absolute; bottom: 28%; left: 50%; width: 4px; height: 40px;
  background: #3a2a1a;
  transform: rotate(15deg) translateX(-10px);
  border-radius: 2px;
  animation: hk-musket 4s ease-in-out infinite;
}
.scn-defence-of-theatre-hochkirch .smoke-1 {
  position: absolute; bottom: 40%; left: 35%; width: 40px; height: 30px;
  background: rgba(180,180,180,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: hk-smoke 15s ease-in-out infinite;
}
.scn-defence-of-theatre-hochkirch .smoke-2 {
  position: absolute; bottom: 45%; right: 30%; width: 50px; height: 35px;
  background: rgba(180,180,180,0.2);
  border-radius: 50%;
  filter: blur(10px);
  animation: hk-smoke 18s ease-in-out infinite reverse;
}
@keyframes hk-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes hk-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hk-tent {
  0%, 100% { transform: scale(1) rotateZ(0deg); }
  50% { transform: scale(1.02) rotateZ(1deg); }
}
@keyframes hk-soldier {
  0% { transform: translateX(0) rotateZ(-2deg); }
  25% { transform: translateX(5px) rotateZ(1deg); }
  50% { transform: translateX(10px) rotateZ(-2deg); }
  75% { transform: translateX(15px) rotateZ(1deg); }
  100% { transform: translateX(20px) rotateZ(0deg); }
}
@keyframes hk-musket {
  0%, 100% { transform: rotate(15deg) translateX(-10px); }
  50% { transform: rotate(20deg) translateX(-8px); }
}
@keyframes hk-smoke {
  0% { opacity: 0; transform: scale(0.8) translateY(0); }
  50% { opacity: 0.6; transform: scale(1.2) translateY(-10px); }
  100% { opacity: 0; transform: scale(1.5) translateY(-20px); }
}

/* Scene: defence-of-theatre-fruitless-victory */
.scn-defence-of-theatre-fruitless-victory {
  background:
    linear-gradient(180deg, #505568 0%, #3a3f50 40%, #2d3240 100%),
    radial-gradient(ellipse at 50% 100%, #404556 0%, transparent 70%);
}
.scn-defence-of-theatre-fruitless-victory .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #666a7a 0%, #4a4e5e 100%);
  animation: fv-bg 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fruitless-victory .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
  animation: fv-field 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fruitless-victory .cannon {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: fv-cannon 8s ease-in-out infinite;
}
.scn-defence-of-theatre-fruitless-victory .flagpole {
  position: absolute; bottom: 20%; left: 60%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  animation: fv-pole 6s ease-in-out infinite;
}
.scn-defence-of-theatre-fruitless-victory .flag {
  position: absolute; bottom: 65%; left: 62%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #a0461a 0%, #6a2a0a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: fv-flag 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-fruitless-victory .soldier {
  position: absolute; bottom: 15%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fv-soldier 4s ease-in-out infinite;
}
.scn-defence-of-theatre-fruitless-victory .smoke-1 {
  position: absolute; bottom: 45%; left: 25%; width: 50px; height: 40px;
  background: rgba(180,180,180,0.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: fv-smoke 20s ease-in-out infinite;
}
.scn-defence-of-theatre-fruitless-victory .smoke-2 {
  position: absolute; bottom: 50%; right: 20%; width: 60px; height: 45px;
  background: rgba(180,180,180,0.2);
  border-radius: 50%;
  filter: blur(12px);
  animation: fv-smoke 25s ease-in-out infinite reverse;
}
@keyframes fv-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes fv-field {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes fv-cannon {
  0%, 100% { transform: rotate(5deg); }
  50% { transform: rotate(8deg) translateY(-2px); }
}
@keyframes fv-pole {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
}
@keyframes fv-flag {
  0% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); }
  50% { clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 70%); }
  100% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); }
}
@keyframes fv-soldier {
  0% { transform: translateX(0) rotateZ(-1deg); }
  25% { transform: translateX(4px) rotateZ(1deg); }
  50% { transform: translateX(8px) rotateZ(-1deg); }
  75% { transform: translateX(12px) rotateZ(1deg); }
  100% { transform: translateX(16px) rotateZ(0deg); }
}
@keyframes fv-smoke {
  0% { opacity: 0; transform: scale(0.8) translateY(0); }
  50% { opacity: 0.5; transform: scale(1.3) translateY(-15px); }
  100% { opacity: 0; transform: scale(2) translateY(-30px); }
}

/* Scene: defence-of-theatre-general's-responsibility */
.scn-defence-of-theatre-general's-responsibility {
  background:
    linear-gradient(180deg, #c8b88a 0%, #a89070 40%, #8a7050 100%),
    radial-gradient(ellipse at 50% 0%, #d8c8a0 0%, transparent 70%);
}
.scn-defence-of-theatre-general's-responsibility .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b09870 0%, #907a5a 100%);
  clip-path: polygon(5% 5%, 95% 5%, 95% 95%, 5% 95%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: gr-room 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-general's-responsibility .table {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  animation: gr-table 15s ease-in-out infinite;
}
.scn-defence-of-theatre-general's-responsibility .map {
  position: absolute; bottom: 32%; left: 15%; width: 70%; height: 18px;
  background: linear-gradient(135deg, #bca060 0%, #9a8040 100%);
  border: 2px solid #7a6a3a;
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gr-map 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-general's-responsibility .candle {
  position: absolute; bottom: 50%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px;
  animation: gr-candle 3s ease-in-out infinite;
}
.scn-defence-of-theatre-general's-responsibility .candle-glow {
  position: absolute; bottom: 55%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5);
  animation: gr-glow 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-general's-responsibility .general {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-general 5s ease-in-out infinite;
}
.scn-defence-of-theatre-general's-responsibility .officer {
  position: absolute; bottom: 20%; right: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-officer 6s ease-in-out infinite;
}
.scn-defence-of-theatre-general's-responsibility .chair {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0% 0% / 20% 20% 0% 0%;
  transform: rotate(-5deg);
  box-shadow: 2px 6px 6px rgba(0,0,0,0.3);
  animation: gr-chair 10s ease-in-out infinite alternate;
}
@keyframes gr-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gr-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes gr-map {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(1deg); }
}
@keyframes gr-candle {
  0%,100% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes gr-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 gr-general {
  0% { transform: translateX(0) rotateZ(0deg); }
  25% { transform: translateX(3px) rotateZ(1deg); }
  50% { transform: translateX(6px) rotateZ(0deg); }
  75% { transform: translateX(9px) rotateZ(-1deg); }
  100% { transform: translateX(12px) rotateZ(0deg); }
}
@keyframes gr-officer {
  0% { transform: translateX(0) rotateZ(1deg); }
  25% { transform: translateX(-2px) rotateZ(-1deg); }
  50% { transform: translateX(-4px) rotateZ(1deg); }
  75% { transform: translateX(-6px) rotateZ(-1deg); }
  100% { transform: translateX(-8px) rotateZ(0deg); }
}
@keyframes gr-chair {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(-5deg); }
}

/* Scene: defence-of-theatre-catastrophe-avoid */
.scn-defence-of-theatre-catastrophe-avoid {
  background:
    linear-gradient(180deg, #12121c 0%, #0a0a14 50%, #02020a 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 80%);
}
.scn-defence-of-theatre-catastrophe-avoid .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  animation: ca-sky 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-catastrophe-avoid .wall {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 80%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 0% 10%, 10% 0%, 90% 0%, 100% 10%, 100% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ca-wall 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-catastrophe-avoid .sentry {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-sentry 4s ease-in-out infinite;
}
.scn-defence-of-theatre-catastrophe-avoid .lantern {
  position: absolute; bottom: 50%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(192,128,64,0.6);
  animation: ca-lantern 3s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-catastrophe-avoid .lantern-glow {
  position: absolute; bottom: 50%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(192,128,64,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ca-glow 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-catastrophe-avoid .shadow-1 {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 40px;
  background: rgba(0,0,0,0.6);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: skewX(-10deg);
  animation: ca-shadow 8s ease-in-out infinite;
}
.scn-defence-of-theatre-catastrophe-avoid .shadow-2 {
  position: absolute; bottom: 10%; right: 30%; width: 25px; height: 50px;
  background: rgba(0,0,0,0.5);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  transform: skewX(10deg);
  animation: ca-shadow 10s ease-in-out infinite reverse;
}
@keyframes ca-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes ca-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes ca-sentry {
  0% { transform: translateX(0) rotateZ(0deg); }
  25% { transform: translateX(3px) rotateZ(2deg); }
  50% { transform: translateX(6px) rotateZ(0deg); }
  75% { transform: translateX(9px) rotateZ(-2deg); }
  100% { transform: translateX(12px) rotateZ(0deg); }
}
@keyframes ca-lantern {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ca-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes ca-shadow {
  0%,100% { transform: skewX(-10deg) scaleY(1); }
  50% { transform: skewX(-12deg) scaleY(1.1); }
}

.scn-defence-of-theatre-successive-resistance {
  background: 
    linear-gradient(180deg, #e8ddd0 0%, #cbbaa0 60%, #a08b70 100%),
    radial-gradient(ellipse at 50% 20%, #faf3e8 0%, transparent 60%);
}
.scn-defence-of-theatre-successive-resistance .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d9cbb8 0%, #c5b49e 100%);
  border-bottom: 2px solid #b09a82;
}
.scn-defence-of-theatre-successive-resistance .window {
  position: absolute; top: 5%; left: 12%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #fef8e8 0%, #e8dcb8 100%);
  border: 6px solid #9c8a72;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,245,200,0.5), 0 4px 12px rgba(0,0,0,0.15);
  animation: dr-window 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-successive-resistance .table {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #a0886e 0%, #7c6750 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-successive-resistance .map {
  position: absolute; bottom: 20%; left: 15%; width: 45%; height: 20%;
  background: linear-gradient(135deg, #eaddc0 0%, #cbb88e 100%);
  border-radius: 30% 10% 20% 40% / 40% 20% 30% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: dr-map 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-successive-resistance .candle-holder {
  position: absolute; bottom: 14%; left: 55%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #6b5a46 0%, #4a3b2c 100%);
  border-radius: 3px 3px 6px 6px;
  box-shadow: 0 3px 4px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-successive-resistance .flame {
  position: absolute; bottom: 40%; left: 55.5%; width: 6px; height: 18px;
  background: radial-gradient(circle, #ffeec0 0%, #ffb840 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,200,80,0.6);
  animation: dr-flame 2s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-successive-resistance .quill {
  position: absolute; bottom: 18%; left: 68%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #d4c4ac 0%, #bda78c 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: 10% 90%;
  animation: dr-quill 5s ease-in-out infinite alternate;
}
@keyframes dr-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(255,245,200,0.5); }
  100% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,245,200,0.7); }
}
@keyframes dr-map {
  0% { transform: rotate(-2deg) scale(1); }
  100% { transform: rotate(0deg) scale(1.02); }
}
@keyframes dr-flame {
  0% { opacity: 0.8; transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(1.15) translateY(-2px); }
  50% { opacity: 1; transform: scaleY(0.9) translateY(1px); }
  75% { transform: scaleY(1.1) translateY(-1px); }
  100% { opacity: 0.85; transform: scaleY(1) translateY(0); }
}
@keyframes dr-quill {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(-28deg) scale(1.02); }
  100% { transform: rotate(-32deg) scale(0.98); }
}

.scn-defence-of-theatre-transfer-decision {
  background:
    linear-gradient(180deg, #d9cfbb 0%, #b8a68c 100%),
    radial-gradient(ellipse at 50% 70%, #e6dac8 0%, transparent 60%);
}
.scn-defence-of-theatre-transfer-decision .bg-columns {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #c4b49e 0%, #a08972 50%, #c4b49e 100%);
  border-bottom: 2px solid #8f7a64;
}
.scn-defence-of-theatre-transfer-decision .plinth-left {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #a08a72 0%, #7c6852 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-transfer-decision .plinth-right {
  position: absolute; bottom: 20%; right: 20%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #a08a72 0%, #7c6852 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-transfer-decision .sphere {
  position: absolute; bottom: 38%; left: 20%; width: 8%; aspect-ratio: 1;
  background: radial-gradient(circle at 35% 35%, #f0e0b0 0%, #c8a870 60%, #8a6a40 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(200,160,80,0.4);
  animation: dt-sphere 6s ease-in-out infinite;
}
.scn-defence-of-theatre-transfer-decision .light-beam {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,245,200,0.1) 10%, rgba(255,245,200,0.3) 50%, rgba(255,245,200,0.1) 90%, transparent 100%);
  pointer-events: none;
  animation: dt-beam 6s ease-in-out infinite;
}
.scn-defence-of-theatre-transfer-decision .shadow {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: rgba(0,0,0,0.08);
  border-radius: 50%;
  filter: blur(6px);
  animation: dt-shadow 6s ease-in-out infinite;
}
@keyframes dt-sphere {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(50%) scale(1.1); }
  50% { transform: translateX(100%) scale(1); }
  75% { transform: translateX(50%) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes dt-beam {
  0% { opacity: 0.3; }
  25% { opacity: 0.8; }
  50% { opacity: 0.4; }
  75% { opacity: 0.9; }
  100% { opacity: 0.3; }
}
@keyframes dt-shadow {
  0% { transform: scaleX(0.6); opacity: 0.3; }
  25% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.6); opacity: 0.3; }
  75% { transform: scaleX(0.9); opacity: 0.5; }
  100% { transform: scaleX(0.6); opacity: 0.3; }
}

.scn-defence-of-theatre-victory-sphere {
  background:
    linear-gradient(180deg, #d9cbb8 0%, #b8a68c 60%, #9a846e 100%),
    radial-gradient(ellipse at 50% 30%, #f0e4d0 0%, transparent 70%);
}
.scn-defence-of-theatre-victory-sphere .arch {
  position: absolute; top: 0; left: 15%; right: 15%; height: 65%;
  background: linear-gradient(180deg, #a08a72 0%, #7c6852 100%);
  border-radius: 50% / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-victory-sphere .pedestal {
  position: absolute; bottom: 5%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #8f7a64 0%, #6b5a46 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-victory-sphere .sphere {
  position: absolute; bottom: 25%; left: 30%; width: 40%; aspect-ratio: 1;
  background: radial-gradient(circle at 30% 30%, #ffe8b0 0%, #d4a860 40%, #a07030 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px rgba(200,160,80,0.5);
  animation: dv-sphere 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-victory-sphere .glow {
  position: absolute; bottom: 20%; left: 25%; right: 25%; top: 10%;
  background: radial-gradient(circle, rgba(255,230,150,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: dv-glow 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-victory-sphere .leaf-a {
  position: absolute; top: 10%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 20% 80% 50% 50% / 40% 60% 40% 60%;
  transform: rotate(20deg);
  animation: dv-leaf-a 5s ease-in-out infinite;
}
.scn-defence-of-theatre-victory-sphere .leaf-b {
  position: absolute; top: 15%; right: 25%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #b09868 0%, #8a7048 100%);
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(-15deg);
  animation: dv-leaf-b 6s ease-in-out infinite 1s;
}
@keyframes dv-sphere {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.03) rotate(3deg); }
  100% { transform: scale(0.97) rotate(-3deg); }
}
@keyframes dv-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes dv-leaf-a {
  0% { transform: rotate(20deg) translateY(0) scale(1); opacity: 0.7; }
  25% { transform: rotate(30deg) translateY(-10px) scale(1.1); opacity: 1; }
  50% { transform: rotate(10deg) translateY(-5px) scale(0.9); opacity: 0.8; }
  75% { transform: rotate(25deg) translateY(-15px) scale(1.05); opacity: 0.9; }
  100% { transform: rotate(20deg) translateY(0) scale(1); opacity: 0.7; }
}
@keyframes dv-leaf-b {
  0% { transform: rotate(-15deg) translateY(0) scale(1); opacity: 0.6; }
  25% { transform: rotate(-25deg) translateY(-8px) scale(1.15); opacity: 0.9; }
  50% { transform: rotate(-5deg) translateY(-3px) scale(0.85); opacity: 0.7; }
  75% { transform: rotate(-20deg) translateY(-12px) scale(1.1); opacity: 1; }
  100% { transform: rotate(-15deg) translateY(0) scale(1); opacity: 0.6; }
}

.scn-defence-of-theatre-immovable-reserves {
  background:
    linear-gradient(180deg, #d4c4ac 0%, #b8a68c 50%, #9a846e 100%),
    radial-gradient(ellipse at 50% 80%, #c4b49e 0%, transparent 70%);
}
.scn-defence-of-theatre-immovable-reserves .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7c6852 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-defence-of-theatre-immovable-reserves .block {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 25%;
  background: linear-gradient(180deg, #8a745e 0%, #6b5a46 100%);
  border-radius: 6px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,255,240,0.1);
  animation: ir-block 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-immovable-reserves .chain-left {
  position: absolute; bottom: 45%; left: 25%; width: 8px; height: 30%;
  background: repeating-linear-gradient(0deg, #706050 0px, #706050 6px, transparent 6px, transparent 12px);
  border-radius: 2px;
  animation: ir-chain 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-immovable-reserves .chain-right {
  position: absolute; bottom: 45%; right: 25%; width: 8px; height: 30%;
  background: repeating-linear-gradient(0deg, #706050 0px, #706050 6px, transparent 6px, transparent 12px);
  border-radius: 2px;
  animation: ir-chain 4s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-immovable-reserves .seal {
  position: absolute; bottom: 25%; left: 50%; width: 18%; aspect-ratio: 1;
  background: radial-gradient(circle, #c8a060 0%, #a08040 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ir-seal 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-immovable-reserves .pillar-left {
  position: absolute; bottom: 30%; left: 12%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #a08a72 0%, #7c6852 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-immovable-reserves .pillar-right {
  position: absolute; bottom: 30%; right: 12%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #a08a72 0%, #7c6852 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
@keyframes ir-block {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes ir-chain {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes ir-seal {
  0% { opacity: 0.7; transform: translateX(-50%) rotate(0deg); }
  50% { opacity: 1; transform: translateX(-50%) rotate(5deg); }
  100% { opacity: 0.8; transform: translateX(-50%) rotate(-5deg); }
}

.scn-space-between-general-and-second { background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #1a0f0a 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%); position:relative; width:100%; height:100%; }
.scn-space-between-general-and-second .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; }
.scn-space-between-general-and-second .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-space-between-general-and-second .table { position:absolute; bottom:22%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-space-between-general-and-second .figure-left { position:absolute; bottom:28%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-fig-left 6s ease-in-out infinite alternate; }
.scn-space-between-general-and-second .figure-right { position:absolute; bottom:28%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-fig-right 7s ease-in-out infinite alternate; }
.scn-space-between-general-and-second .lantern { position:absolute; bottom:38%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #b87a30 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b87a30, 0 0 40px 12px rgba(184,122,48,.3); animation: s1-lantern 3s ease-in-out infinite alternate; }
.scn-space-between-general-and-second .paper { position:absolute; bottom:28%; left:47%; width:40px; height:30px; background: linear-gradient(135deg, #e0c080 0%, #c0a060 100%); border-radius: 5%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: s1-paper 15s ease-in-out infinite; }
.scn-space-between-general-and-second .inkwell { position:absolute; bottom:30%; left:55%; width:12px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes s1-fig-left { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes s1-fig-right { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes s1-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 4px #b87a30; } 50% { opacity:1; box-shadow: 0 0 30px 10px #f0c060, 0 0 50px 18px rgba(240,192,96,.3); } 100% { opacity:.8; box-shadow: 0 0 20px 6px #b87a30; } }
@keyframes s1-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-distinguished-talents-inferior-positions { background: linear-gradient(180deg, #1a0a05 0%, #2a1508 50%, #1a0a05 100%), radial-gradient(ellipse at 60% 50%, #3a1a0a 0%, transparent 70%); position:relative; width:100%; height:100%; }
.scn-distinguished-talents-inferior-positions .bg-shadow { position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 60%); }
.scn-distinguished-talents-inferior-positions .desk { position:absolute; bottom:20%; left:30%; right:30%; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-distinguished-talents-inferior-positions .figure-seated { position:absolute; bottom:30%; left:20%; width:25px; height:45px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-figure 8s ease-in-out infinite alternate; }
.scn-distinguished-talents-inferior-positions .candle { position:absolute; bottom:32%; left:50%; width:8px; height:18px; background: linear-gradient(180deg, #d4a040 0%, #b87a30 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 10px 2px #f0c060; animation: s2-candle 4s ease-in-out infinite; }
.scn-distinguished-talents-inferior-positions .map { position:absolute; bottom:22%; left:35%; width:50px; height:35px; background: linear-gradient(135deg, #b0a070 0%, #908050 100%); border-radius: 5%; transform: rotate(-3deg); box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: s2-map 20s linear infinite; }
.scn-distinguished-talents-inferior-positions .book { position:absolute; bottom:22%; left:55%; width:20px; height:28px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 5% 5% 15% 15%; transform: rotate(2deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-distinguished-talents-inferior-positions .glow { position:absolute; bottom:30%; left:48%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,192,96,.15) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: s2-glow 5s ease-in-out infinite alternate; }
@keyframes s2-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes s2-candle { 0%,100% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.05); opacity:1; } }
@keyframes s2-map { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes s2-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }

.scn-each-station-particular-genius { background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%); position:relative; width:100%; height:100%; }
.scn-each-station-particular-genius .bg-deep { position:absolute; inset:0; background: linear-gradient(0deg, #0a0a12 0%, transparent 40%); }
.scn-each-station-particular-genius .staircase { position:absolute; bottom:0; left:30%; right:30%; height:100%; background: repeating-linear-gradient(0deg, #3a2a1a 0px, #2a1a0a 8px, #3a2a1a 16px); clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%); }
.scn-each-station-particular-genius .figure-ascending { position:absolute; bottom:20%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s3-climb 12s ease-in-out infinite; }
.scn-each-station-particular-genius .lamp-post { position:absolute; bottom:40%; left:35%; width:6px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; }
.scn-each-station-particular-genius .shadow { position:absolute; bottom:0; left:40%; width:40px; height:100%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 60%); border-radius:50%; transform: translateX(-50%); animation: s3-shadow 6s ease-in-out infinite alternate; }
.scn-each-station-particular-genius .light-rays { position:absolute; top:30%; left:30%; width:100px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,100,.1) 0%, transparent 70%); transform: rotate(30deg); filter: blur(15px); animation: s3-light 20s linear infinite; }
.scn-each-station-particular-genius .dust { position:absolute; top:50%; left:45%; width:4px; height:4px; background: rgba(200,180,100,.6); border-radius:50%; filter: blur(2px); animation: s3-dust 10s ease-in-out infinite; }
@keyframes s3-climb { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-20px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes s3-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes s3-light { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(32deg) translateX(5px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes s3-dust { 0% { transform: translateY(0) translateX(0); opacity:.5; } 25% { transform: translateY(-10px) translateX(5px); opacity:.8; } 50% { transform: translateY(-20px) translateX(-5px); opacity:.4; } 75% { transform: translateY(-30px) translateX(10px); opacity:.7; } 100% { transform: translateY(-40px) translateX(0); opacity:.5; } }

.scn-general-statesman-coincide { background: linear-gradient(180deg, #1a0a0a 0%, #2a1510 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a2015 0%, transparent 70%); position:relative; width:100%; height:100%; }
.scn-general-statesman-coincide .backdrop { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; }
.scn-general-statesman-coincide .desk-center { position:absolute; bottom:20%; left:20%; right:20%; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-general-statesman-coincide .figure-left { position:absolute; bottom:28%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-fig-left 8s ease-in-out infinite alternate; }
.scn-general-statesman-coincide .figure-right { position:absolute; bottom:28%; right:25%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-fig-right 9s ease-in-out infinite alternate; }
.scn-general-statesman-coincide .map-roll { position:absolute; bottom:24%; left:40%; width:60px; height:20px; background: linear-gradient(135deg, #c0a070 0%, #a08050 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: s4-map 20s ease-in-out infinite; }
.scn-general-statesman-coincide .lantern { position:absolute; bottom:36%; left:50%; width:12px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #f0c060 0%, #b87a30 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b87a30, 0 0 40px 12px rgba(184,122,48,.3); animation: s4-lantern 3.5s ease-in-out infinite alternate; }
.scn-general-statesman-coincide .globe { position:absolute; bottom:26%; left:55%; width:25px; height:25px; background: radial-gradient(circle at 30% 30%, #3a5a3a 0%, #1a2a1a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: s4-globe 15s linear infinite; }
@keyframes s4-fig-left { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes s4-fig-right { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes s4-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes s4-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 4px #b87a30; } 50% { opacity:1; box-shadow: 0 0 30px 10px #f0c060, 0 0 50px 18px rgba(240,192,96,.3); } 100% { opacity:.8; box-shadow: 0 0 20px 6px #b87a30; } }
@keyframes s4-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* allies-limited-contingents (calm dim-interior) */
.scn-allies-limited-contingents {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 30%, #3a2a1e 60%, #2a1e16 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a1e 0%, transparent 70%);
}
.scn-allies-limited-contingents .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,15,10,0.8) 0%, rgba(40,30,20,0.6) 100%);
  animation: aI-roomfade 12s ease-in-out infinite alternate;
}
.scn-allies-limited-contingents .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3222 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: aI-desk 8s ease-in-out infinite alternate;
}
.scn-allies-limited-contingents .candle {
  position: absolute; bottom: 27%; left: 25%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 3px 3px 1px 1px;
}
.scn-allies-limited-contingents .candle-glow {
  position: absolute; bottom: 29%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0) 70%);
  transform: translate(-50%, 50%); animation: aI-glow 3s ease-in-out infinite alternate;
}
.scn-allies-limited-contingents .figure-left {
  position: absolute; bottom: 16%; left: 15%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aI-figL 6s ease-in-out infinite alternate;
}
.scn-allies-limited-contingents .figure-right {
  position: absolute; bottom: 16%; right: 15%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aI-figR 7s ease-in-out infinite alternate;
}
.scn-allies-limited-contingents .paper {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 28px;
  background: #d4c4a0; border-radius: 2px; opacity: 0.7;
  transform: rotate(-3deg); animation: aI-paper 10s ease-in-out infinite;
}
.scn-allies-limited-contingents .shadow-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: aI-shad 14s ease-in-out infinite alternate;
}
@keyframes aI-roomfade { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes aI-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes aI-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.95); } }
@keyframes aI-figL { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes aI-figR { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes aI-paper { 0% { opacity: 0.6; transform: rotate(-3deg) translateY(0); } 50% { opacity: 0.8; transform: rotate(-2deg) translateY(-1px); } 100% { opacity: 0.65; transform: rotate(-4deg) translateY(0); } }
@keyframes aI-shad { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }

/* natural-way-modern-wars (tense dim-interior) */
.scn-natural-way-modern-wars {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e16 30%, #3a2a1e 60%, #2a1e16 100%),
              radial-gradient(ellipse at 70% 40%, #4a3222 0%, transparent 70%);
}
.scn-natural-way-modern-wars .warroom-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,8,6,0.9) 0%, rgba(30,20,15,0.7) 100%);
  animation: nw-roomfade 8s ease-in-out infinite alternate;
}
.scn-natural-way-modern-wars .map {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a3222 50%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: nw-map 6s ease-in-out infinite;
}
.scn-natural-way-modern-wars .lantern {
  position: absolute; bottom: 55%; left: 20%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius: 2px;
  animation: nw-lanternsway 4s ease-in-out infinite;
}
.scn-natural-way-modern-wars .lantern-glow {
  position: absolute; bottom: 55%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,180,80,0.5) 0%, rgba(255,180,80,0) 70%);
  transform: translate(-50%, 50%); animation: nw-glow 2s ease-in-out infinite alternate;
}
.scn-natural-way-modern-wars .figure-point {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a0e08 0%, #050201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-point 3s ease-in-out infinite;
}
.scn-natural-way-modern-wars .figure-stand {
  position: absolute; bottom: 18%; right: 25%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a0e08 0%, #050201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nw-stand 5s ease-in-out infinite alternate;
}
.scn-natural-way-modern-wars .arrow-marker {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 10px;
  background: #a0461a; clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: nw-arrow 1.5s ease-in-out infinite;
}
.scn-natural-way-modern-wars .dust {
  position: absolute; top: 10%; left: 0; right: 0; height: 100%;
  background: radial-gradient(circle at 30% 20%, rgba(200,180,150,0.05) 0%, transparent 50%);
  animation: nw-dust 20s linear infinite;
}
@keyframes nw-roomfade { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes nw-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) } }
@keyframes nw-lanternsway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes nw-glow { 0% { opacity: 0.4; transform: translate(-50%, 50%) scale(0.9) } 50% { opacity: 0.9; transform: translate(-50%, 50%) scale(1.2) } 100% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.95) } }
@keyframes nw-point { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(-5deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-2px) rotate(3deg) } }
@keyframes nw-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nw-arrow { 0% { transform: translateY(0) scaleY(1); opacity: 1 } 50% { transform: translateY(-4px) scaleY(1.5); opacity: 0.5 } 100% { transform: translateY(0) scaleY(1); opacity: 1 } }
@keyframes nw-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-20px) } }

/* political-cause-influence (calm dim-interior) */
.scn-political-cause-influence {
  background: linear-gradient(180deg, #1e1814 0%, #2e221c 40%, #1e1814 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2e 0%, transparent 70%);
}
.scn-political-cause-influence .study-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,12,10,0.8) 0%, rgba(30,22,18,0.6) 100%);
  animation: pI-room 15s ease-in-out infinite alternate;
}
.scn-political-cause-influence .chair {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 22%;
  background: linear-gradient(180deg, #5a4232 0%, #3a2a1e 100%); border-radius: 6px 6px 2px 2px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: pI-chair 10s ease-in-out infinite alternate;
}
.scn-political-cause-influence .figure-writing {
  position: absolute; bottom: 22%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pI-write 4s ease-in-out infinite;
}
.scn-political-cause-influence .inkwell {
  position: absolute; bottom: 24%; left: 50%; width: 8px; height: 8px;
  background: #1a0a0a; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
.scn-political-cause-influence .candle-desk {
  position: absolute; bottom: 26%; left: 55%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 2px 2px 1px 1px;
}
.scn-political-cause-influence .candle-glow-warm {
  position: absolute; bottom: 28%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0) 70%);
  transform: translate(-50%, 50%); animation: pI-glow 3s ease-in-out infinite alternate;
}
.scn-political-cause-influence .bookshelf {
  position: absolute; top: 10%; right: 8%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a10 100%);
  border-radius: 3px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
  animation: pI-shelf 20s ease-in-out infinite;
}
@keyframes pI-room { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes pI-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pI-write { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes pI-glow { 0% { opacity: 0.4; transform: translate(-50%, 50%) scale(0.8) } 50% { opacity: 0.8; transform: translate(-50%, 50%) scale(1.1) } 100% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9) } }
@keyframes pI-shelf { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

/* stagnation-weak-motives (tense dim-interior) */
.scn-stagnation-weak-motives {
  background: linear-gradient(180deg, #0f0a08 0%, #1a1210 30%, #2a1e1a 60%, #1a1210 100%),
              radial-gradient(ellipse at 30% 60%, #2a1e1a 0%, transparent 70%);
}
.scn-stagnation-weak-motives .cell-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,3,2,0.9) 0%, rgba(15,10,8,0.7) 100%);
  animation: sW-roomfade 8s ease-in-out infinite alternate;
}
.scn-stagnation-weak-motives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  animation: sW-floor 12s ease-in-out infinite;
}
.scn-stagnation-weak-motives .figure-slumped {
  position: absolute; bottom: 10%; left: 40%; width: 26px; height: 32px;
  background: linear-gradient(180deg, #1a0e08 0%, #050201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sW-slump 5s ease-in-out infinite;
}
.scn-stagnation-weak-motives .chain {
  position: absolute; bottom: 13%; left: 35%; width: 40px; height: 4px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  border-radius: 2px; animation: sW-chain 3s ease-in-out infinite alternate;
}
.scn-stagnation-weak-motives .flicker-light {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,150,80,0.3) 0%, rgba(200,150,80,0) 70%);
  animation: sW-flicker 2s ease-in-out infinite alternate;
}
.scn-stagnation-weak-motives .shadow-bar {
  position: absolute; top: 0; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #0a0605 20%, #0a0605 80%, transparent 100%);
  opacity: 0.6; animation: sW-bar 7s ease-in-out infinite;
}
.scn-stagnation-weak-motives .drop {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 6px;
  background: #4a3a2a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: sW-drop 4s ease-in-out infinite;
}
@keyframes sW-roomfade { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes sW-floor { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes sW-slump { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(2px) rotate(3deg) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes sW-chain { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sW-flicker { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 0.6; transform: scale(1.15) } 100% { opacity: 0.3; transform: scale(0.9) } }
@keyframes sW-bar { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sW-drop { 0% { transform: translateY(0) opacity: 0.4 } 50% { transform: translateY(8px) opacity: 0.8 } 100% { transform: translateY(16px) opacity: 0.2 } }

/* people-war-natural-weight */
.scn-people-war-natural-weight {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 80%);
}
.scn-people-war-natural-weight .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%);
  animation: pw-bg 12s ease-in-out infinite alternate;
}
.scn-people-war-natural-weight .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: pw-table 8s ease-in-out infinite;
}
.scn-people-war-natural-weight .scale {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 20px 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: pw-scale 6s ease-in-out infinite;
}
.scn-people-war-natural-weight .weight {
  position: absolute; bottom: 35%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle at 40% 40%, #6a5a4a, #3a2a1a);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: pw-weight 6s ease-in-out infinite reverse;
}
.scn-people-war-natural-weight .candle {
  position: absolute; bottom: 28%; left: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 50%, #604020 100%);
  border-radius: 2px 2px 1px 1px;
}
.scn-people-war-natural-weight .flame {
  position: absolute; bottom: 56%; left: 30.5%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: pw-flame 2s ease-in-out infinite alternate, pw-float 3s ease-in-out infinite;
}
.scn-people-war-natural-weight .shadow-left {
  position: absolute; bottom: 28%; left: 10%; width: 30px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: pw-shadow 7s ease-in-out infinite;
}
.scn-people-war-natural-weight .shadow-right {
  position: absolute; bottom: 28%; right: 10%; width: 30px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: pw-shadow 7s ease-in-out infinite reverse;
}
@keyframes pw-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pw-scale { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes pw-weight { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-2px) } 100% { transform: translate(-2px,0) } }
@keyframes pw-flame { 0% { transform: scaleY(1) rotate(-3deg) } 50% { transform: scaleY(1.2) rotate(3deg) } 100% { transform: scaleY(0.9) rotate(-1deg) } }
@keyframes pw-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pw-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* bonaparte-perfects-power */
.scn-bonaparte-perfects-power {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 80%);
}
.scn-bonaparte-perfects-power .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%);
  animation: bp-bg 14s ease-in-out infinite alternate;
}
.scn-bonaparte-perfects-power .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px; box-shadow: inset 0 6px 12px rgba(0,0,0,0.7);
}
.scn-bonaparte-perfects-power .map {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 40%, #5a4a3a 70%, #3a2a1a 100%);
  border: 2px solid #2a1a0a; border-radius: 2px;
  transform: rotate(-3deg);
  animation: bp-map 20s ease-in-out infinite;
}
.scn-bonaparte-perfects-power .hand {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bp-hand 5s ease-in-out infinite;
}
.scn-bonaparte-perfects-power .quill {
  position: absolute; bottom: 28%; left: 58%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #ffffff 0%, #e0d0c0 30%, #806040 100%);
  transform: rotate(-20deg);
  animation: bp-quill 3s ease-in-out infinite alternate;
}
.scn-bonaparte-perfects-power .inkwell {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #4a3a2a, #1a0a00);
  border-radius: 10px 10px 4px 4px;
  border-bottom: 3px solid #0a0a0a;
}
.scn-bonaparte-perfects-power .candle {
  position: absolute; bottom: 22%; left: 25%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 50%, #604020 100%);
  border-radius: 2px;
}
.scn-bonaparte-perfects-power .flame {
  position: absolute; bottom: 48%; left: 25.5%; width: 6px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: bp-flame 2s ease-in-out infinite alternate, bp-float 3s ease-in-out infinite;
}
@keyframes bp-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bp-map { 0% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-3deg) } }
@keyframes bp-hand { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } }
@keyframes bp-quill { 0% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(-25deg) translateY(-2px) } }
@keyframes bp-flame { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.15) rotate(2deg) } 100% { transform: scaleY(0.9) rotate(-1deg) } }
@keyframes bp-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

/* prussia-rises-national-war */
.scn-prussia-rises-national-war {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a2a 0%, transparent 80%);
}
.scn-prussia-rises-national-war .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%);
  animation: pr-bg 15s ease-in-out infinite;
}
.scn-prussia-rises-national-war .chair {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-prussia-rises-national-war .figure {
  position: absolute; bottom: 20%; left: 38%; 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: pr-rise 6s ease-in-out infinite;
}
.scn-prussia-rises-national-war .lantern {
  position: absolute; bottom: 25%; left: 55%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-prussia-rises-national-war .lantern-light {
  position: absolute; bottom: 28%; left: 56%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,200,100,0.4);
  animation: pr-glow 3s ease-in-out infinite alternate;
}
.scn-prussia-rises-national-war .shadow-floor {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 80%);
  animation: pr-shadow 5s ease-in-out infinite;
}
@keyframes pr-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes pr-rise { 0% { transform: translateY(0) scaleY(0.9) } 30% { transform: translateY(-8px) scaleY(1) } 60% { transform: translateY(-2px) scaleY(1) } 100% { transform: translateY(0) scaleY(0.9) } }
@keyframes pr-glow { 0% { opacity:0.7; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.8; transform: scale(0.9) } }
@keyframes pr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } 100% { transform: scaleX(1) } }

/* new-style-campaigns */
.scn-new-style-campaigns {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 80%);
}
.scn-new-style-campaigns .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e1e 40%, #1a1210 100%);
  animation: ns-bg 18s ease-in-out infinite alternate;
}
.scn-new-style-campaigns .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
.scn-new-style-campaigns .compass {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 30px;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%; border: 3px solid #4a3a2a;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ns-compass 10s linear infinite, ns-bob 4s ease-in-out infinite;
}
.scn-new-style-campaigns .needle {
  position: absolute; bottom: 32%; left: 42%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #ffffff 50%, #202060 100%);
  transform-origin: center bottom;
  animation: ns-needle 8s ease-in-out infinite;
}
.scn-new-style-campaigns .cog {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%; border: 3px solid #3a2a1a;
  clip-path: polygon(50% 0%, 60% 20%, 80% 20%, 70% 40%, 80% 60%, 60% 60%, 50% 80%, 40% 60%, 20% 60%, 30% 40%, 20% 20%, 40% 20%);
  animation: ns-cog 12s linear infinite;
}
.scn-new-style-campaigns .cog-small {
  position: absolute; bottom: 32%; left: 58%; width: 16px; height: 16px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%;
  clip-path: polygon(50% 0%, 60% 20%, 80% 20%, 70% 40%, 80% 60%, 60% 60%, 50% 80%, 40% 60%, 20% 60%, 30% 40%, 20% 20%, 40% 20%);
  animation: ns-cog-small 8s linear infinite reverse;
}
.scn-new-style-campaigns .candle {
  position: absolute; bottom: 28%; left: 25%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 50%, #604020 100%);
  border-radius: 2px;
}
.scn-new-style-campaigns .flame {
  position: absolute; bottom: 54%; left: 25.5%; width: 6px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 10px rgba(255,200,100,0.5);
  animation: ns-flame 2s ease-in-out infinite alternate, ns-float 3s ease-in-out infinite;
}
@keyframes ns-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ns-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ns-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ns-needle { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }
@keyframes ns-cog { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ns-cog-small { 0% { transform: rotate(0deg) } 100% { transform: rotate(-360deg) } }
@keyframes ns-flame { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.2) rotate(2deg) } 100% { transform: scaleY(0.9) rotate(-1deg) } }
@keyframes ns-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-attack-cantonments-organisation {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4b88a 70%, #c4a070 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-attack-cantonments-organisation .wall      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0dbb8 0%, #e0c8a0 100%); }
.scn-attack-cantonments-organisation .bookshelf { position:absolute; top:8%; right:6%; width:28%; height:42%; background: linear-gradient(135deg, #8b6b45 0%, #6a4f30 50%, #5a3f20 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 6px 12px rgba(0,0,0,.2); animation: aco-shelf 20s ease-in-out infinite alternate; }
.scn-attack-cantonments-organisation .desk      { position:absolute; bottom:15%; left:15%; width:55%; height:28%; background: linear-gradient(180deg, #b8956a 0%, #a07a4e 50%, #8a5f30 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.35); }
.scn-attack-cantonments-organisation .map       { position:absolute; bottom:22%; left:22%; width:38%; height:18%; background: linear-gradient(135deg, #f5e6c0 0%, #e8d0a0 50%, #d4b888 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: aco-map 8s ease-in-out infinite alternate; }
.scn-attack-cantonments-organisation .candle    { position:absolute; bottom:30%; left:60%; width:8px; height:40px; background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4b88a 70%, #c4a070 100%); border-radius: 3px 3px 1px 1px; box-shadow: 0 0 8px rgba(255,200,80,.3); animation: aco-candle 6s ease-in-out infinite; }
.scn-attack-cantonments-organisation .flame     { position:absolute; bottom:44%; left:60%; transform:translateX(-0.5px); width:10px; height:14px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ffa040 50%, #e06020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 24px 6px #ffb060, 0 0 48px 14px rgba(255,160,64,.4); animation: aco-flame 2s ease-in-out infinite alternate; }
.scn-attack-cantonments-organisation .shadow    { position:absolute; bottom:14%; left:18%; width:50%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.25) 0%, transparent 70%); animation: aco-shadow 12s ease-in-out infinite alternate; }
@keyframes aco-shelf   { 0% { transform: translateY(0) scale(1); opacity:.95 } 50% { transform: translateY(-2px) scale(1.01); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.95 } }
@keyframes aco-map     { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(3px) } 100% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes aco-candle  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes aco-flame   { 0% { transform: translateX(-0.5px) scaleY(1) rotate(-1deg); opacity:.9 } 50% { transform: translateX(0.5px) scaleY(1.08) rotate(2deg); opacity:1 } 100% { transform: translateX(-0.5px) scaleY(1) rotate(-1deg); opacity:.9 } }
@keyframes aco-shadow  { 0% { transform: scaleX(1) translateX(0); opacity:.5 } 50% { transform: scaleX(1.05) translateX(5px); opacity:.7 } 100% { transform: scaleX(1) translateX(0); opacity:.5 } }

.scn-attack-cantonments-tactics {
  background: linear-gradient(180deg, #e8d4b0 0%, #d8c098 30%, #c8a880 70%, #b89060 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%);
}
.scn-attack-cantonments-tactics .wall-bg   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #dcc8a8 0%, #c8b490 100%); }
.scn-attack-cantonments-tactics .table     { position:absolute; bottom:18%; left:10%; width:80%; height:30%; background: linear-gradient(145deg, #a0825a 0%, #886a3e 50%, #70502a 100%); border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,.4); animation: act-table 14s ease-in-out infinite alternate; }
.scn-attack-cantonments-tactics .map-roll  { position:absolute; bottom:28%; left:20%; width:40%; height:14%; background: linear-gradient(160deg, #f0dbb8 0%, #e0c8a0 50%, #c8a880 100%); border-radius: 0 0 4px 4px; transform: rotate(3deg); box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: act-maproll 10s ease-in-out infinite alternate; }
.scn-attack-cantonments-tactics .candle-war{ position:absolute; bottom:35%; left:65%; width:7px; height:35px; background: linear-gradient(180deg, #f5e6c8 0%, #e8d0a0 30%, #d4b080 70%, #c09860 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(255,200,80,.25); animation: act-candle 7s ease-in-out infinite; }
.scn-attack-cantonments-tactics .flame-war { position:absolute; bottom:44%; left:65%; transform:translateX(-0.5px); width:9px; height:12px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ffa040 50%, #e06020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px #ffb060, 0 0 40px 12px rgba(255,160,64,.35); animation: act-flame 2.5s ease-in-out infinite alternate; }
.scn-attack-cantonments-tactics .shield    { position:absolute; top:12%; left:8%; width:40px; height:50px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 14px rgba(0,0,0,.3); animation: act-shield 18s ease-in-out infinite alternate; }
.scn-attack-cantonments-tactics .banner    { position:absolute; top:18%; right:12%; width:30px; height:45px; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 2px; transform: skew(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: act-banner 22s ease-in-out infinite alternate; }
.scn-attack-cantonments-tactics .shadow-war{ position:absolute; bottom:16%; left:12%; width:76%; height:12%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2) 0%, transparent 70%); animation: act-shadow 10s ease-in-out infinite alternate; }
@keyframes act-table   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes act-maproll { 0% { transform: rotate(3deg) translateX(0); opacity:.9 } 50% { transform: rotate(2deg) translateX(4px); opacity:1 } 100% { transform: rotate(4deg) translateX(-2px); opacity:.9 } }
@keyframes act-candle  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes act-flame   { 0% { transform: translateX(-0.5px) scaleY(1) rotate(-2deg); opacity:.85 } 50% { transform: translateX(0.5px) scaleY(1.1) rotate(3deg); opacity:1 } 100% { transform: translateX(-0.5px) scaleY(1) rotate(-2deg); opacity:.85 } }
@keyframes act-shield  { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes act-banner  { 0% { transform: skew(-5deg) translateX(0) } 50% { transform: skew(-3deg) translateX(-3px) } 100% { transform: skew(-5deg) translateX(0) } }
@keyframes act-shadow  { 0% { transform: scaleX(1) translateX(0); opacity:.4 } 50% { transform: scaleX(1.06) translateX(4px); opacity:.6 } 100% { transform: scaleX(1) translateX(0); opacity:.4 } }

.scn-diversion-concept {
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a0 30%, #d0b488 70%, #c0a070 100%),
              radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 60%);
}
.scn-diversion-concept .floor       { position:absolute; top:65%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #b8946a 0%, #a07848 50%, #886030 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-diversion-concept .globe-stand { position:absolute; bottom:22%; left:45%; width:10%; height:38%; background: linear-gradient(180deg, #8a6a42 0%, #6a4a22 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: dco-stand 16s ease-in-out infinite alternate; }
.scn-diversion-concept .globe       { position:absolute; bottom:38%; left:40%; width:20%; height:24%; background: radial-gradient(ellipse at 40% 35%, #6a9a6a 0%, #4a7a4a 30%, #3a5a3a 60%, #2a4a2a 100%); border-radius: 50%; box-shadow: 0 8px 18px rgba(0,0,0,.35); animation: dco-globe 12s linear infinite; }
.scn-diversion-concept .compass     { position:absolute; bottom:20%; left:62%; width:14%; height:14%; background: radial-gradient(circle, #c8a868 0%, #a88444 50%, #886428 100%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: dco-compass 8s ease-in-out infinite alternate; }
.scn-diversion-concept .papers      { position:absolute; bottom:24%; left:22%; width:44%; height:10%; background: linear-gradient(140deg, #f5e6c0 0%, #e8d0a0 50%, #d4b888 100%); border-radius: 2px; transform: rotate(-4deg); box-shadow: 0 3px 8px rgba(0,0,0,.15); animation: dco-papers 9s ease-in-out infinite alternate; }
.scn-diversion-concept .candle-dip  { position:absolute; bottom:38%; left:70%; width:6px; height:30px; background: linear-gradient(180deg, #f5e6c8 0%, #e8d0a0 30%, #d4b080 70%, #c09860 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(255,200,80,.2); animation: dco-candle 5s ease-in-out infinite; }
.scn-diversion-concept .flame-dip   { position:absolute; bottom:46%; left:70%; transform:translateX(-0.5px); width:8px; height:11px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ffa040 50%, #e06020 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 18px 4px #ffb060, 0 0 36px 10px rgba(255,160,64,.3); animation: dco-flame 2.8s ease-in-out infinite alternate; }
.scn-diversion-concept .shadow-dip  { position:absolute; bottom:18%; left:16%; width:68%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.18) 0%, transparent 70%); animation: dco-shadow 14s ease-in-out infinite alternate; }
@keyframes dco-stand   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dco-globe   { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes dco-compass { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes dco-papers  { 0% { transform: rotate(-4deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(3px) } 100% { transform: rotate(-5deg) translateX(-2px) } }
@keyframes dco-candle  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dco-flame   { 0% { transform: translateX(-0.5px) scaleY(1) rotate(-1deg); opacity:.9 } 50% { transform: translateX(0.5px) scaleY(1.06) rotate(2deg); opacity:1 } 100% { transform: translateX(-0.5px) scaleY(1) rotate(-1deg); opacity:.9 } }
@keyframes dco-shadow  { 0% { transform: scaleX(1) translateX(0); opacity:.45 } 50% { transform: scaleX(1.04) translateX(6px); opacity:.65 } 100% { transform: scaleX(1) translateX(0); opacity:.45 } }

.scn-diversion-conditions {
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a0 30%, #d0b488 70%, #c0a070 100%),
              radial-gradient(ellipse at 50% 10%, #fff4e0 0%, transparent 60%);
}
.scn-diversion-conditions .floor-cham   { position:absolute; top:70%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #b8946a 0%, #a07848 50%, #886030 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; }
.scn-diversion-conditions .column-l     { position:absolute; top:8%; left:12%; width:8%; height:70%; background: linear-gradient(90deg, #c8a878 0%, #b89868 30%, #a88858 70%, #987848 100%); border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,.3); animation: dcn-col 20s ease-in-out infinite alternate; }
.scn-diversion-conditions .column-r     { position:absolute; top:8%; right:12%; width:8%; height:70%; background: linear-gradient(-90deg, #c8a878 0%, #b89868 30%, #a88858 70%, #987848 100%); border-radius: 6px; box-shadow: 0 10px 25px rgba(0,0,0,.3); animation: dcn-col 20s ease-in-out infinite alternate-reverse; }
.scn-diversion-conditions .candle-array { position:absolute; bottom:28%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #d4b888 100%); border-radius: 50%; box-shadow: 0 0 20px rgba(255,200,80,.15); }
.scn-diversion-conditions .flame-array  { position:absolute; bottom:38%; left:40%; width:40px; height:40px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ffa040 40%, #e06020 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px #ffb060, 0 0 60px 18px rgba(255,160,64,.3); animation: dcn-flame-array 3s ease-in-out infinite alternate; }
.scn-diversion-conditions .emissary     { position:absolute; bottom:18%; left:35%; width:16px; height:42px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 6px 14px rgba(0,0,0,.35); animation: dcn-emissary 8s ease-in-out infinite alternate; }
.scn-diversion-conditions .shadow-array { position:absolute; bottom:14%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.22) 0%, transparent 70%); animation: dcn-shadow 10s ease-in-out infinite alternate; }
@keyframes dcn-col          { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dcn-flame-array  { 0% { transform: scaleY(1) rotate(-1deg); opacity:.85 } 50% { transform: scaleY(1.08) rotate(2deg); opacity:1 } 100% { transform: scaleY(1) rotate(-1deg); opacity:.85 } }
@keyframes dcn-emissary     { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes dcn-shadow       { 0% { transform: scaleX(1) translateX(0); opacity:.5 } 50% { transform: scaleX(1.08) translateX(4px); opacity:.7 } 100% { transform: scaleX(1) translateX(0); opacity:.5 } }

.scn-absolute-real-war {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d6c5a9 40%, #b8a38a 100%),
    radial-gradient(ellipse at 30% 40%, #fff8ee 0%, transparent 70%);
}
.scn-absolute-real-war .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d9c4 0%, #c4b096 100%); }
.scn-absolute-real-war .window-light { position:absolute; top:5%; left:20%; width:180px; height:240px; background: linear-gradient(180deg, rgba(255,255,230,0.9), rgba(255,255,200,0.3)); border-radius:4px; box-shadow: 0 0 60px 30px rgba(255,250,210,0.5); animation: arw1-window 8s ease-in-out infinite alternate; }
.scn-absolute-real-war .desk { position:absolute; bottom:10%; left:25%; width:300px; height:100px; background: linear-gradient(180deg, #9c7c61 0%, #6a4f3a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-absolute-real-war .paper { position:absolute; bottom:22%; left:30%; width:140px; height:90px; background: linear-gradient(180deg, #fdf5e6 0%, #ece0c8 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transform:rotate(-3deg); animation: arw1-paper 12s ease-in-out infinite; }
.scn-absolute-real-war .lamp { position:absolute; bottom:30%; left:50%; width:12px; height:40px; background: linear-gradient(180deg, #b08a5a 0%, #7a5a3a 100%); border-radius:2px 2px 0 0; transform:rotate(10deg); transform-origin: bottom center; }
.scn-absolute-real-war .lamp::after { content:''; position:absolute; top:-10px; left:-14px; width:40px; height:30px; background: radial-gradient(circle, #ffddaa 0%, #ffcc7700 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,200,100,0.6); animation: arw1-glow 4s ease-in-out infinite alternate; }
.scn-absolute-real-war .figure { position:absolute; bottom:12%; left:55%; width:30px; height:70px; background: linear-gradient(180deg, #4a3b2e 0%, #2a1f16 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: arw1-figure 6s ease-in-out infinite; }
.scn-absolute-real-war .chair { position:absolute; bottom:10%; left:55%; width:60px; height:90px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius:8px 8px 4px 4px; }
@keyframes arw1-window { 0%{opacity:0.7;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.02)} 100%{opacity:0.8;transform:scaleY(0.98)} }
@keyframes arw1-paper { 0%{transform:rotate(-3deg) translateX(0)} 50%{transform:rotate(1deg) translateX(5px)} 100%{transform:rotate(-3deg) translateX(0)} }
@keyframes arw1-glow { 0%{opacity:0.7;box-shadow:0 0 20px 5px rgba(255,200,100,0.4)} 50%{opacity:1;box-shadow:0 0 40px 15px rgba(255,200,100,0.7)} 100%{opacity:0.8;box-shadow:0 0 25px 8px rgba(255,200,100,0.5)} }
@keyframes arw1-figure { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(2deg)} 50%{transform:translateY(-1px) rotate(-1deg)} 75%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }

.scn-absolute-real-war-modifications {
  background:
    linear-gradient(180deg, #f2ead8 0%, #dbcdb0 50%, #bca989 100%),
    radial-gradient(ellipse at 40% 30%, #fff5e0 0%, transparent 60%);
}
.scn-absolute-real-war-modifications .walls { position:absolute; inset:0; background: linear-gradient(180deg, #e3d5bc 0%, #c3b096 100%); }
.scn-absolute-real-war-modifications .bookshelf { position:absolute; top:10%; right:5%; width:120px; height:300px; background: linear-gradient(180deg, #6a4f3a 0%, #4a3220 100%); border-radius:4px; box-shadow: -2px 2px 8px rgba(0,0,0,0.3); }
.scn-absolute-real-war-modifications .bookshelf::before { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: repeating-linear-gradient(0deg, #8a6a4a 0px, #8a6a4a 8px, #a88a6a 8px, #a88a6a 16px); border-radius:2px; }
.scn-absolute-real-war-modifications .desk { position:absolute; bottom:12%; left:20%; width:280px; height:80px; background: linear-gradient(180deg, #a0856a 0%, #7a5f4a 100%); border-radius:2px; box-shadow: 0 -2px 10px rgba(0,0,0,0.2); }
.scn-absolute-real-war-modifications .papers { position:absolute; bottom:25%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #fdf5e6 0%, #ece0c8 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform:rotate(2deg); animation: arw2-papers 14s ease-in-out infinite; }
.scn-absolute-real-war-modifications .quill { position:absolute; bottom:30%; left:35%; width:4px; height:60px; background: linear-gradient(180deg, #d4b896 0%, #a08060 100%); border-radius:2px; transform:rotate(-15deg); transform-origin: bottom center; }
.scn-absolute-real-war-modifications .inkwell { position:absolute; bottom:22%; left:38%; width:20px; height:18px; background: radial-gradient(circle, #1a1a1a 0%, #333 60%, #1a1a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-absolute-real-war-modifications .hands { position:absolute; bottom:18%; left:30%; width:40px; height:30px; background: radial-gradient(ellipse, #c8b098 0%, #9a8068 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: arw2-hands 4s ease-in-out infinite alternate; }
@keyframes arw2-papers { 0%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-3px)} 100%{transform:rotate(2deg) translateY(0)} }
@keyframes arw2-hands { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-5px) scale(0.95)} 100%{transform:translateY(0) scale(1)} }

.scn-absolute-real-war-inconsistency {
  background:
    linear-gradient(180deg, #7b7d7f 0%, #5a5c5e 40%, #3e4042 100%),
    radial-gradient(ellipse at 50% 0%, #8a8c8e 0%, transparent 60%);
}
.scn-absolute-real-war-inconsistency .overcast-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a8c8e 0%, #5a5c5e 100%); }
.scn-absolute-real-war-inconsistency .window-frame { position:absolute; top:5%; left:10%; width:200px; height:300px; border:8px solid #3a3c3e; background: linear-gradient(180deg, #c0c2c4 0%, #a0a2a4 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-absolute-real-war-inconsistency .window-frame::after { content:''; position:absolute; inset:0; background: repeating-linear-gradient(90deg, #3a3c3e 0px, #3a3c3e 8px, transparent 8px, transparent 12px); }
.scn-absolute-real-war-inconsistency .table { position:absolute; bottom:20%; left:35%; width:200px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
.scn-absolute-real-war-inconsistency .figure-left { position:absolute; bottom:15%; left:25%; width:35px; height:80px; background: #1a1a1a; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation: arw3-fig-left 5s ease-in-out infinite alternate; }
.scn-absolute-real-war-inconsistency .figure-right { position:absolute; bottom:15%; right:30%; width:35px; height:80px; background: #1a1a1a; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: arw3-fig-right 5s ease-in-out infinite alternate; }
.scn-absolute-real-war-inconsistency .chandelier { position:absolute; top:8%; left:50%; width:60px; height:40px; background: radial-gradient(ellipse, #ffddaa 0%, #ccaa7700 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(200,180,100,0.4); animation: arw3-flicker 1.5s ease-in-out infinite; }
.scn-absolute-real-war-inconsistency .shadow-layer { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,20,25,0.3) 0%, rgba(10,10,15,0.6) 100%); pointer-events:none; }
@keyframes arw3-fig-left { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(2deg) translateY(-5px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes arw3-fig-right { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-2deg) translateY(-5px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes arw3-flicker { 0%{opacity:0.6;box-shadow:0 0 20px 10px rgba(200,180,100,0.3)} 25%{opacity:0.9;box-shadow:0 0 40px 20px rgba(200,180,100,0.6)} 50%{opacity:0.7;box-shadow:0 0 25px 12px rgba(200,180,100,0.4)} 75%{opacity:0.85;box-shadow:0 0 35px 18px rgba(200,180,100,0.5)} 100%{opacity:0.6;box-shadow:0 0 20px 10px rgba(200,180,100,0.3)} }

.scn-absolute-real-war-choice {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d9cbb0 50%, #beaa8a 100%),
    radial-gradient(ellipse at 60% 30%, #fffbe6 0%, transparent 60%);
}
.scn-absolute-real-war-choice .interior-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e3d5bc 0%, #c3b096 100%); }
.scn-absolute-real-war-choice .sunbeam { position:absolute; top:10%; left:50%; width:200px; height:400px; background: linear-gradient(180deg, rgba(255,255,230,0.8) 0%, rgba(255,255,200,0) 100%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: arw4-beam 10s ease-in-out infinite alternate; }
.scn-absolute-real-war-choice .map-table { position:absolute; bottom:10%; left:20%; width:300px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px; box-shadow: 0 -2px 10px rgba(0,0,0,0.2); }
.scn-absolute-real-war-choice .compass { position:absolute; bottom:25%; left:35%; width:30px; height:30px; background: radial-gradient(circle, #d4b896 0%, #a08060 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: arw4-compass 6s ease-in-out infinite; }
.scn-absolute-real-war-choice .compass::after { content:''; position:absolute; top:50%; left:50%; width:4px; height:4px; background:#3a2a1a; border-radius:50%; transform:translate(-50%,-50%); box-shadow: 0 -8px 0 #3a2a1a, 0 8px 0 #3a2a1a, -8px 0 0 #3a2a1a, 8px 0 0 #3a2a1a; }
.scn-absolute-real-war-choice .figure { position:absolute; bottom:12%; left:55%; width:35px; height:80px; background: linear-gradient(180deg, #4a3b2e 0%, #2a1f16 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: arw4-figure 7s ease-in-out infinite; }
.scn-absolute-real-war-choice .globe { position:absolute; bottom:15%; left:40%; width:50px; height:50px; background: radial-gradient(circle at 30% 30%, #6a8a5a 0%, #3a5a3a 40%, #2a3a2a 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: arw4-globe 20s linear infinite; }
.scn-absolute-real-war-choice .book { position:absolute; bottom:20%; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%); border-radius:2px; transform:rotate(-5deg); }
.scn-absolute-real-war-choice .candle { position:absolute; bottom:28%; left:50%; width:8px; height:50px; background: linear-gradient(180deg, #e8d4b8 0%, #c8a880 100%); border-radius:2px; }
.scn-absolute-real-war-choice .candle::after { content:''; position:absolute; top:-15px; left:-6px; width:20px; height:20px; background: radial-gradient(circle, #ffddaa 0%, #ffcc7700 100%); border-radius:50%; animation: arw4-candle 3s ease-in-out infinite alternate; }
@keyframes arw4-beam { 0%{opacity:0.6;transform:rotate(-2deg)} 50%{opacity:1;transform:rotate(1deg)} 100%{opacity:0.7;transform:rotate(-1deg)} }
@keyframes arw4-compass { 0%{transform:rotate(0deg)} 50%{transform:rotate(180deg)} 100%{transform:rotate(360deg)} }
@keyframes arw4-figure { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-3px) rotate(3deg)} 50%{transform:translateY(-1px) rotate(-2deg)} 75%{transform:translateY(-4px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes arw4-globe { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(1.02)} 100%{transform:rotate(360deg) scale(1)} }
@keyframes arw4-candle { 0%{opacity:0.7;box-shadow:0 0 15px 5px rgba(255,200,100,0.4)} 50%{opacity:1;box-shadow:0 0 30px 12px rgba(255,200,100,0.7)} 100%{opacity:0.8;box-shadow:0 0 20px 8px rgba(255,200,100,0.5)} }

.scn-question-hold-conquest { background: linear-gradient(180deg, #1e1b18 0%, #2c2520 40%, #3a2f26 100%), radial-gradient(ellipse at 50% 0%, #4a3d32 0%, transparent 70%); }
.scn-question-hold-conquest .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2c2520 0%, #1e1b18 100%); animation: qhc-wall 20s ease-in-out infinite alternate; }
.scn-question-hold-conquest .table { position:absolute; bottom:10%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #4a3d32 0%, #3a2f26 30%, #2c2520 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); transform: perspective(800px) rotateX(10deg); }
.scn-question-hold-conquest .map { position:absolute; bottom:18%; left:20%; right:20%; height:30%; background: linear-gradient(135deg, #b89a7a 0%, #9a7a5a 50%, #7a5a3a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: qhc-map 6s ease-in-out infinite alternate; }
.scn-question-hold-conquest .candle { position:absolute; bottom:28%; left:48%; width:8px; height:50px; background: linear-gradient(180deg, #e8d4a0 0%, #b89a7a 30%, #7a5a3a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: qhc-candle 4s ease-in-out infinite; }
.scn-question-hold-conquest .hand { position:absolute; bottom:20%; left:35%; width:40px; height:36px; background: radial-gradient(ellipse at 40% 30%, #6a4a3a 0%, #3a2a1a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: qhc-hand 3s ease-in-out infinite; box-shadow: -4px -2px 8px rgba(0,0,0,.3); }
.scn-question-hold-conquest .shadow { position:absolute; bottom:12%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(8px); animation: qhc-shadow 8s ease-in-out infinite alternate; }
.scn-question-hold-conquest .inkwell { position:absolute; bottom:22%; right:25%; width:18px; height:24px; background: #1a1612; border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: qhc-inkwell 10s linear infinite; }
@keyframes qhc-wall { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes qhc-map { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(0.98) rotate(-0.5deg) } }
@keyframes qhc-candle { 0%,100% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes qhc-hand { 0% { transform: rotate(12deg) translateX(0) } 30% { transform: rotate(18deg) translateX(4px) } 60% { transform: rotate(10deg) translateX(-2px) } 100% { transform: rotate(15deg) translateX(2px) } }
@keyframes qhc-shadow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.5; transform: scaleY(0.9) } }
@keyframes qhc-inkwell { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(1px) rotate(1deg) } }

.scn-offensive-not-always-compensate { background: linear-gradient(180deg, #1a1814 0%, #2a2420 40%, #3a3028 100%), radial-gradient(ellipse at 50% 100%, #3a3028 0%, transparent 70%); }
.scn-offensive-not-always-compensate .bg-curtain { position:absolute; inset:0; background: linear-gradient(135deg, #2a2420 0%, #1a1814 100%); animation: onac-curtain 18s ease-in-out infinite alternate; }
.scn-offensive-not-always-compensate .scale-post { position:absolute; bottom:20%; left:50%; width:24px; height:60%; margin-left:-12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: onac-post 8s ease-in-out infinite; }
.scn-offensive-not-always-compensate .scale-left { position:absolute; bottom:52%; left:20%; width:80px; height:8px; background: #5a4a3a; border-radius: 4px; transform-origin: right center; animation: onac-arm-l 6s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-offensive-not-always-compensate .scale-right { position:absolute; bottom:52%; right:20%; width:80px; height:8px; background: #5a4a3a; border-radius: 4px; transform-origin: left center; animation: onac-arm-r 6s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-offensive-not-always-compensate .weight-left { position:absolute; bottom:50%; left:12%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #8a7a6a, #4a3a2a 70%); border-radius: 50%; box-shadow: 0 0 16px 2px rgba(0,0,0,.4); animation: onac-wt-l 6s ease-in-out infinite; }
.scn-offensive-not-always-compensate .weight-right { position:absolute; bottom:50%; right:12%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #6a5a4a, #3a2a1a 70%); border-radius: 50%; box-shadow: 0 0 16px 2px rgba(0,0,0,.4); animation: onac-wt-r 6s ease-in-out infinite; }
.scn-offensive-not-always-compensate .coin { position:absolute; bottom:40%; left:32%; width:14px; height:4px; background: #b89a7a; border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: onac-coin 9s linear infinite; }
@keyframes onac-curtain { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes onac-post { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes onac-arm-l { 0%,100% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-5deg) translateY(-2px) } 70% { transform: rotate(5deg) translateY(2px) } }
@keyframes onac-arm-r { 0%,100% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(5deg) translateY(2px) } 70% { transform: rotate(-5deg) translateY(-2px) } }
@keyframes onac-wt-l { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-4px) } 70% { transform: translateY(4px) } }
@keyframes onac-wt-r { 0%,100% { transform: translateY(0) } 30% { transform: translateY(4px) } 70% { transform: translateY(-4px) } }
@keyframes onac-coin { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(20px) rotate(180deg) } 100% { transform: translateX(40px) rotate(360deg) } }

.scn-loss-conquest-value { background: linear-gradient(180deg, #151210 0%, #221e1a 50%, #2f2822 100%), radial-gradient(ellipse at 30% 70%, #3a2c20 0%, transparent 70%); }
.scn-loss-conquest-value .bg-rubble { position:absolute; inset:0; background: linear-gradient(135deg, #1a1612 0%, #221e1a 40%, #2f2822 100%); animation: lcv-rubble 22s ease-in-out infinite alternate; }
.scn-loss-conquest-value .pillar { position:absolute; bottom:10%; width:20px; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); }
.scn-loss-conquest-value .fragment-a { left:30%; transform: rotate(-8deg); animation: lcv-fall-a 12s ease-in-out infinite; }
.scn-loss-conquest-value .fragment-b { left:55%; height:40%; bottom:5%; transform: rotate(12deg); animation: lcv-fall-b 16s ease-in-out infinite; }
.scn-loss-conquest-value .spiderweb { position:absolute; top:18%; left:60%; width:50px; height:50px; background: radial-gradient(circle, transparent 40%, rgba(255,255,255,.1) 41%, transparent 42%); border-radius: 50%; animation: lcv-web 25s linear infinite; }
.scn-loss-conquest-value .crack { position:absolute; bottom:30%; left:20%; width:120px; height:4px; background: #3a3028; border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: lcv-crack 9s ease-in-out infinite alternate; }
.scn-loss-conquest-value .lamp { position:absolute; top:12%; left:45%; width:14px; height:24px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #b08040, 0 0 60px 16px rgba(176,128,64,.3); animation: lcv-lamp 3s ease-in-out infinite alternate; }
@keyframes lcv-rubble { 0%,100% { opacity:.7; filter: blur(1px) } 50% { opacity:1; filter: blur(0) } }
@keyframes lcv-fall-a { 0% { transform: rotate(-8deg) translateY(0) } 30% { transform: rotate(-10deg) translateY(6px) } 70% { transform: rotate(-6deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes lcv-fall-b { 0% { transform: rotate(12deg) translateY(0) } 30% { transform: rotate(14deg) translateY(4px) } 70% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes lcv-web { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.02) } 100% { opacity:.3; transform: scale(0.98) } }
@keyframes lcv-crack { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-15deg) scaleX(1.05) } 100% { transform: rotate(-15deg) scaleX(0.95) } }
@keyframes lcv-lamp { 0% { opacity:.8; box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,.2) } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 20px rgba(255,208,128,.4) } 100% { opacity:.9; box-shadow: 0 0 25px 6px #b08040, 0 0 50px 12px rgba(176,128,64,.3) } }

.scn-strategic-attack-moderate-object { background: linear-gradient(180deg, #1c1a16 0%, #2c2822 40%, #3c342e 100%), radial-gradient(ellipse at 50% 30%, #3c342e 0%, transparent 70%); }
.scn-strategic-attack-moderate-object .bg-parchment { position:absolute; inset:0; background: linear-gradient(135deg, #3c342e 0%, #2c2822 50%, #1c1a16 100%); animation: samo-parch 25s ease-in-out infinite alternate; }
.scn-strategic-attack-moderate-object .grid-board { position:absolute; bottom:15%; left:15%; right:15%; height:50%; background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #3a2a1a 80%); border: 4px solid #4a3a2a; border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 20px rgba(0,0,0,.7); transform: perspective(600px) rotateX(20deg); animation: samo-grid 10s ease-in-out infinite alternate; }
.scn-strategic-attack-moderate-object .piece-king { position:absolute; bottom:35%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 60%, #5a3a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(10deg); animation: samo-king 5s ease-in-out infinite; }
.scn-strategic-attack-moderate-object .piece-pawn { position:absolute; bottom:30%; left:45%; width:14px; height:22px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 60%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-10deg); animation: samo-pawn 6s ease-in-out infinite; }
.scn-strategic-attack-moderate-object .arrow-main { position:absolute; bottom:40%; left:40%; width:60px; height:6px; background: linear-gradient(90deg, transparent, #d08040 40%, #b06020 100%); clip-path: polygon(0 20%, 100% 20%, 100% 0, 100% 100%, 0 80%); transform-origin: left center; animation: samo-arr-m 4s ease-in-out infinite; opacity:.7; }
.scn-strategic-attack-moderate-object .arrow-secondary { position:absolute; bottom:30%; left:50%; width:40px; height:4px; background: linear-gradient(90deg, transparent, #a06030 40%, #804020 100%); clip-path: polygon(0 20%, 100% 20%, 100% 0, 100% 100%, 0 80%); transform: rotate(-30deg) scale(0.8); animation: samo-arr-s 7s ease-in-out infinite reverse; opacity:.5; }
.scn-strategic-attack-moderate-object .glow-target { position:absolute; bottom:38%; left:38%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: samo-glow 3s ease-in-out infinite alternate; }
@keyframes samo-parch { 0%,100% { opacity:.85; filter: contrast(.9) } 50% { opacity:1; filter: contrast(1) } }
@keyframes samo-grid { 0% { transform: perspective(600px) rotateX(18deg) } 50% { transform: perspective(600px) rotateX(22deg) } 100% { transform: perspective(600px) rotateX(20deg) } }
@keyframes samo-king { 0%,100% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 75% { transform: rotate(8deg) translateY(2px) } }
@keyframes samo-pawn { 0%,100% { transform: rotate(-10deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(3px) } 75% { transform: rotate(-12deg) translateY(-1px) } }
@keyframes samo-arr-m { 0% { transform: scaleX(1) rotate(5deg) } 50% { transform: scaleX(1.1) rotate(0deg) } 100% { transform: scaleX(0.9) rotate(10deg) } }
@keyframes samo-arr-s { 0% { transform: rotate(-30deg) scale(0.8) translateX(0) } 50% { transform: rotate(-30deg) scale(0.85) translateX(4px) } 100% { transform: rotate(-30deg) scale(0.75) translateX(-2px) } }
@keyframes samo-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(0.9) } }

.scn-attack-defence-complement {
  background: 
    linear-gradient(180deg, #f4e8d0 0%, #e0c8a0 100%),
    radial-gradient(ellipse at 50% 80%, #f0d8b0 0%, transparent 70%);
}
.scn-attack-defence-complement .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #8b6f47 0%, #65492e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: adc-desk 12s ease-in-out infinite alternate;
}
.scn-attack-defence-complement .lamp {
  position: absolute; bottom: 48%; left: 28%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #c0a060 0%, #8b6f47 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  animation: adc-lamp 6s ease-in-out infinite;
}
.scn-attack-defence-complement .lamp::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 26px; height: 20px;
  background: radial-gradient(circle, #ffe0a0 0%, #e0c060 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,224,160,0.6);
  animation: adc-glow 3s ease-in-out infinite alternate;
}
.scn-attack-defence-complement .book {
  position: absolute; bottom: 26%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #5a3e2a 0%, #3a2616 100%);
  border-radius: 2px; transform: rotate(-8deg);
  animation: adc-book 8s ease-in-out infinite;
}
.scn-attack-defence-complement .chair {
  position: absolute; bottom: 16%; left: 32%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3420 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.2);
  animation: adc-chair 10s ease-in-out infinite alternate;
}
.scn-attack-defence-complement .window {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c8e0ff 0%, #a0c8ff 100%);
  border: 6px solid #8b6f47; border-radius: 4px;
  transform: translateX(-50%); animation: adc-window 20s ease-in-out infinite alternate;
}
.scn-attack-defence-complement .figure {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: adc-figure 9s ease-in-out infinite;
}
.scn-attack-defence-complement .shelf {
  position: absolute; top: 28%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, #8b6f47 0%, #65492e 50%, #8b6f47 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: adc-shelf 14s ease-in-out infinite alternate;
}
@keyframes adc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes adc-lamp { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes adc-glow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes adc-book { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-1px); } }
@keyframes adc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes adc-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes adc-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes adc-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(1); } }

.scn-nature-of-attack {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e0c8a0 100%),
    radial-gradient(ellipse at 50% 50%, #f5e6d0 0%, transparent 70%);
}
.scn-nature-of-attack .table {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e26 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 16px rgba(0,0,0,0.3);
  animation: noa-table 14s ease-in-out infinite alternate;
}
.scn-nature-of-attack .candle {
  position: absolute; bottom: 50%; left: 35%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  animation: noa-candle 7s ease-in-out infinite;
}
.scn-nature-of-attack .candle::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #e0a040 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,224,128,0.5);
  animation: noa-flame 2s ease-in-out infinite alternate;
}
.scn-nature-of-attack .figure {
  position: absolute; bottom: 24%; left: 32%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: noa-figure 10s ease-in-out infinite;
}
.scn-nature-of-attack .map {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #e8d8a0 0%, #c8b880 50%, #e0cc90 100%);
  border-radius: 4px; transform: rotate(5deg);
  animation: noa-map 20s ease-in-out infinite alternate;
}
.scn-nature-of-attack .compass {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e0c0 0%, #b09060 100%);
  border-radius: 50%; border: 2px solid #7a5e3e;
  animation: noa-compass 10s ease-in-out infinite alternate;
}
.scn-nature-of-attack .flag {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 24px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px 6px 6px 2px; transform-origin: left center;
  animation: noa-flag 5s ease-in-out infinite;
}
.scn-nature-of-attack .lantern {
  position: absolute; bottom: 48%; right: 30%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #c0a060 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px rgba(192,160,96,0.5);
  animation: noa-lantern 4s ease-in-out infinite alternate;
}
@keyframes noa-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes noa-candle { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } }
@keyframes noa-flame { 0% { transform: scaleY(0.9); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.9; } }
@keyframes noa-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg); } }
@keyframes noa-map { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes noa-compass { 0% { transform: rotate(0); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0); } }
@keyframes noa-flag { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } }
@keyframes noa-lantern { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

.scn-attack-defence-alternating {
  background: 
    linear-gradient(180deg, #f4e8d0 0%, #e0c8a0 100%),
    radial-gradient(ellipse at 50% 90%, #f0d8b0 0%, transparent 60%);
}
.scn-attack-defence-alternating .board {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%); width: 120px; height: 100px;
  background: linear-gradient(135deg, #a08060 0%, #705030 50%, #a08060 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: ada-board 18s ease-in-out infinite alternate;
}
.scn-attack-defence-alternating .board::before {
  content: ''; position: absolute; inset: 10%; background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 2px, #e0c8a0 2px, #e0c8a0 4px);
  background-size: 100% 12px; opacity: 0.4;
}
.scn-attack-defence-alternating .white-pieces {
  position: absolute; bottom: 28%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b0 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: ada-white 6s ease-in-out infinite;
}
.scn-attack-defence-alternating .black-pieces {
  position: absolute; bottom: 22%; right: 44%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: ada-black 6s ease-in-out infinite;
}
.scn-attack-defence-alternating .figure-left {
  position: absolute; bottom: 10%; left: 14%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: ada-figure-l 12s ease-in-out infinite;
}
.scn-attack-defence-alternating .figure-right {
  position: absolute; bottom: 10%; right: 14%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: ada-figure-r 12s ease-in-out infinite;
}
.scn-attack-defence-alternating .clock {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e0c0 0%, #b09060 100%);
  border-radius: 50%; border: 4px solid #7a5e3e;
  animation: ada-clock 30s linear infinite;
}
.scn-attack-defence-alternating .window {
  position: absolute; top: 12%; right: 6%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c8e0ff 0%, #a0c8ff 100%);
  border: 6px solid #8b6f47; border-radius: 4px;
  animation: ada-window 18s ease-in-out infinite alternate;
}
@keyframes ada-board { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ada-white { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes ada-black { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-5deg); } }
@keyframes ada-figure-l { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes ada-figure-r { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ada-clock { 0% { transform: translateX(-50%) rotate(0); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes ada-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

.scn-attack-defence-weak-element {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 30% 100%, #6a7a8a 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.4);
}
.scn-attack-defence-weak-element .wall {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0 / 4% 4% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: adw-wall 15s ease-in-out infinite alternate;
}
.scn-attack-defence-weak-element .guard {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: adw-guard 8s ease-in-out infinite;
}
.scn-attack-defence-weak-element .banner {
  position: absolute; top: 18%; left: 30%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #7a442a 0%, #5a2a1a 100%);
  border-radius: 2px 8px 8px 2px; transform-origin: left center;
  animation: adw-banner 6s ease-in-out infinite;
}
.scn-attack-defence-weak-element .parapet {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: adw-parapet 12s ease-in-out infinite alternate;
}
.scn-attack-defence-weak-element .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%);
  animation: adw-sky 20s ease-in-out infinite alternate;
}
.scn-attack-defence-weak-element .lantern {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #b0a080 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 6px rgba(176,160,128,0.4);
  animation: adw-lantern 5s ease-in-out infinite alternate;
}
.scn-attack-defence-weak-element .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: adw-shadow 10s ease-in-out infinite alternate;
}
@keyframes adw-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes adw-guard { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } }
@keyframes adw-banner { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(15deg); } }
@keyframes adw-parapet { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes adw-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes adw-lantern { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes adw-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-defence-of-theatre-cordon-natural {
  background:
    linear-gradient(180deg, #fff8e7 0%, #f5e6c8 40%, #d4c4a0 100%),
    radial-gradient(ellipse at 50% 60%, #e0d0b0 0%, transparent 70%);
}
.scn-defence-of-theatre-cordon-natural .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fffcf0 0%, #f5e6c8 100%);
  animation: dtcn-sky 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-cordon-natural .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.1);
}
.scn-defence-of-theatre-cordon-natural .river {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(135deg, #a0c0d0 0%, #7a9aaa 50%, #5a7a8a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  opacity: 0.7;
  animation: dtcn-river 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-cordon-natural .bank {
  position: absolute; bottom: 26%; left: 15%; width: 70%; height: 6%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-cordon-natural .wall {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: dtcn-wall 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-cordon-natural .sentry-a {
  position: absolute; bottom: 18%; left: 30%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: dtcn-sentry 4s ease-in-out infinite;
}
.scn-defence-of-theatre-cordon-natural .sentry-b {
  position: absolute; bottom: 18%; right: 30%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: dtcn-sentry 4s ease-in-out infinite reverse;
  animation-delay: 2s;
}
.scn-defence-of-theatre-cordon-natural .flag {
  position: absolute; bottom: 24%; left: 48%; width: 4px; height: 14px;
  background: #5a3a1a;
  transform-origin: bottom center;
  animation: dtcn-flag 6s ease-in-out infinite;
}
.scn-defence-of-theatre-cordon-natural .flag::before {
  content: '';
  position: absolute; top: 0; left: 2px; width: 10px; height: 6px;
  background: #b87878;
  border-radius: 0 4px 4px 0;
}
@keyframes dtcn-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dtcn-river {
  0% { transform: translateY(0); opacity: 0.7; }
  50% { transform: translateY(2px); opacity: 0.8; }
  100% { transform: translateY(-1px); opacity: 0.75; }
}
@keyframes dtcn-wall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dtcn-sentry {
  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 dtcn-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

.scn-defence-of-theatre-flank-defence {
  background:
    linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 40%, #c0a888 100%),
    radial-gradient(ellipse at 50% 50%, #e8d8b8 0%, transparent 70%);
}
.scn-defence-of-theatre-flank-defence .floor {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-defence-of-theatre-flank-defence .bastion {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(135deg, #d0b090 0%, #b09070 80%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.2);
  animation: dtfd-bastion 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-flank-defence .crochet-l {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 20%;
  background: linear-gradient(90deg, #b09070 0%, #a08060 100%);
  border-radius: 0 6px 6px 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: dtfd-crochet 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-flank-defence .crochet-r {
  position: absolute; bottom: 20%; right: 30%; width: 8%; height: 20%;
  background: linear-gradient(270deg, #b09070 0%, #a08060 100%);
  border-radius: 6px 0 0 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: dtfd-crochet 8s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-flank-defence .reserve {
  position: absolute; bottom: 15%; left: 46%; width: 8%; height: 10%;
  background: radial-gradient(circle, #c8a878 0%, #a08050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(160,128,80,0.5);
  animation: dtfd-reserve 6s ease-in-out infinite;
}
.scn-defence-of-theatre-flank-defence .support-flank-a {
  position: absolute; bottom: 25%; left: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30%;
  animation: dtfd-support 5s ease-in-out infinite;
}
.scn-defence-of-theatre-flank-defence .support-flank-b {
  position: absolute; bottom: 25%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30%;
  animation: dtfd-support 5s ease-in-out infinite reverse;
  animation-delay: 2.5s;
}
.scn-defence-of-theatre-flank-defence .lantern {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: dtfd-lantern 3s ease-in-out infinite alternate;
}
@keyframes dtfd-bastion {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes dtfd-crochet {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}
@keyframes dtfd-reserve {
  0% { transform: scale(0.9) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.1) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.95) translateY(0); opacity: 0.8; }
}
@keyframes dtfd-support {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dtfd-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(255,208,128,0.5); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.8); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,208,128,0.6); opacity: 0.9; }
}

.scn-defence-of-theatre-active-means {
  background:
    linear-gradient(180deg, #f5ecd8 0%, #e8d8c0 50%, #d0c0a0 100%),
    radial-gradient(ellipse at 50% 40%, #e8d8b8 0%, transparent 60%);
}
.scn-defence-of-theatre-active-means .map-bg {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(135deg, #d4d0b8 0%, #c8c0a8 100%);
  border: 2px solid #a09878;
  border-radius: 4px;
}
.scn-defence-of-theatre-active-means .grid {
  position: absolute; inset: 5% 5% 5% 5%;
  background-image: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 21px), repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 21px);
  opacity: 0.3;
  animation: dtam-grid 30s linear infinite;
}
.scn-defence-of-theatre-active-means .corps-a {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c87050 0%, #a05030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,112,80,0.5);
  animation: dtam-corps 12s ease-in-out infinite;
}
.scn-defence-of-theatre-active-means .corps-b {
  position: absolute; bottom: 40%; left: 60%; width: 16px; height: 16px;
  background: radial-gradient(circle, #50a080 0%, #307060 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(80,160,128,0.5);
  animation: dtam-corps 12s ease-in-out infinite reverse;
  animation-delay: 6s;
}
.scn-defence-of-theatre-active-means .reserve-marker {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 24px;
  border: 3px solid #a08050;
  border-radius: 50%;
  background: radial-gradient(circle, transparent 40%, #c8a868 50%, transparent 60%);
  animation: dtam-reserve 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-active-means .arrow-path {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 4px;
  background: linear-gradient(90deg, #c07040 0%, #e0a070 50%, #c07040 100%);
  border-radius: 2px;
  clip-path: polygon(0 0, 100% 0, 95% 50%, 100% 100%, 0 100%, 5% 50%);
  animation: dtam-arrow 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-active-means .active-marker {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 12px;
  background: #e0b060;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,176,96,0.6);
  animation: dtam-active 4s ease-in-out infinite;
}
@keyframes dtam-grid {
  0% { transform: translateY(0); }
  50% { transform: translateY(10px); }
  100% { transform: translateY(0); }
}
@keyframes dtam-corps {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(10px, -5px) scale(1.1); }
  50% { transform: translate(20px, 0) scale(1); }
  75% { transform: translate(10px, -3px) scale(1.05); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes dtam-reserve {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes dtam-arrow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(0.95); }
  100% { transform: translateX(-5px) scaleX(1.05); }
}
@keyframes dtam-active {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(3px, -3px) rotate(10deg); }
  50% { transform: translate(6px, 0) rotate(0deg); }
  75% { transform: translate(3px, -2px) rotate(-10deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

.scn-defence-of-theatre-best-defence {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 40%, #c8a880 100%),
    radial-gradient(ellipse at 30% 50%, #e8d0a8 0%, transparent 60%);
}
.scn-defence-of-theatre-best-defence .terrain-bg {
  position: absolute; inset: 10% 5% 5% 5%;
  background: linear-gradient(135deg, #d4c098 0%, #c0a880 50%, #a08868 100%);
  border-radius: 20% 10% 30% 10% / 10% 20% 10% 30%;
  opacity: 0.8;
  animation: dtbd-terrain 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-best-defence .hill-left {
  position: absolute; bottom: 25%; left: 10%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.1);
  animation: dtbd-hill 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-best-defence .hill-right {
  position: absolute; bottom: 20%; right: 10%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #a89070 0%, #806850 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.1);
  animation: dtbd-hill 15s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-best-defence .general-figure {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dtbd-general 5s ease-in-out infinite;
}
.scn-defence-of-theatre-best-defence .general-figure::before {
  content: '';
  position: absolute; top: -4px; left: 2px; width: 10px; height: 4px;
  background: #b87878;
  border-radius: 2px 2px 0 0;
}
.scn-defence-of-theatre-best-defence .troop-line {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 6px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  opacity: 0.7;
  animation: dtbd-troops 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-best-defence .talent-glow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: dtbd-talent 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-best-defence .country-texture {
  position: absolute; inset: 10% 5% 5% 5%;
  background-image: radial-gradient(circle at 30% 40%, #b8a080 2px, transparent 2px), radial-gradient(circle at 70% 60%, #b8a080 1.5px, transparent 1.5px);
  background-size: 40px 40px, 30px 30px;
  opacity: 0.15;
  animation: dtbd-texture 30s linear infinite;
}
@keyframes dtbd-terrain {
  0% { transform: scale(1) translateY(0); border-radius: 20% 10% 30% 10% / 10% 20% 10% 30%; }
  50% { transform: scale(1.02) translateY(-2px); border-radius: 25% 15% 25% 15% / 15% 25% 15% 25%; }
  100% { transform: scale(0.98) translateY(0); border-radius: 15% 25% 15% 25% / 25% 15% 25% 15%; }
}
@keyframes dtbd-hill {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes dtbd-general {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes dtbd-troops {
  0% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(5px); opacity: 0.8; }
  100% { transform: translateX(-5px); opacity: 0.7; }
}
@keyframes dtbd-talent {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes dtbd-texture {
  0% { background-position: 0 0, 0 0; }
  100% { background-position: 40px 40px, 30px 30px; }
}

/* defence-of-theatre-composition-reasons (calm, bright-interior) */
.scn-defence-of-theatre-composition-reasons {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c5a0 50%, #b89a70 100%), 
              radial-gradient(ellipse at 50% 50%, #fff5e0 0%, transparent 70%);
}
.scn-defence-of-theatre-composition-reasons .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 55%;
  background: linear-gradient(180deg, #8c6b40 0%, #5a4020 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  transform: perspective(800px) rotateX(12deg); animation: cr-table 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-composition-reasons .map {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(135deg, #d4c3a0 0%, #b8a280 40%, #c0ac88 100%);
  border-radius: 4px; box-shadow: inset 0 0 0 2px #8c7a60, 0 4px 12px rgba(0,0,0,0.3);
  animation: cr-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-composition-reasons .figurine {
  position: absolute; width: 8px; height: 18px; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  background: linear-gradient(180deg, #c8553d 0%, #8c3a28 100%); /* terracotta not red */
  transform-origin: bottom center;
}
.scn-defence-of-theatre-composition-reasons .cavalry {
  bottom: 30%; left: 30%; animation: cr-figurine 8s ease-in-out infinite;
}
.scn-defence-of-theatre-composition-reasons .infantry {
  bottom: 30%; left: 45%; height: 16px; width: 6px; animation: cr-figurine 10s ease-in-out infinite 2s;
}
.scn-defence-of-theatre-composition-reasons .horse {
  bottom: 30%; left: 38%; height: 14px; width: 20px; border-radius: 50% 40% 40% 50% / 40% 50% 50% 40%;
  background: linear-gradient(180deg, #6a5020 0%, #3a2a10 100%); animation: cr-figurine 9s ease-in-out infinite 1s;
}
.scn-defence-of-theatre-composition-reasons .candle {
  position: absolute; bottom: 45%; left: 48%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f5d080 0%, #c08840 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 -8px 16px 4px rgba(255,200,100,0.5); animation: cr-candle 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-composition-reasons .glow {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #ffd080 0%, transparent 70%);
  opacity: 0.3; mix-blend-mode: screen; animation: cr-glow 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-composition-reasons .curtain {
  position: absolute; top: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #8c5050 0%, #5a3030 100%);
}
.scn-defence-of-theatre-composition-reasons .left { left: 0; border-radius: 0 40% 40% 0; }
.scn-defence-of-theatre-composition-reasons .right { right: 0; border-radius: 40% 0 0 40%; }
@keyframes cr-table {
  0% { transform: perspective(800px) rotateX(12deg) translateY(0); }
  100% { transform: perspective(800px) rotateX(12deg) translateY(-2px); }
}
@keyframes cr-map {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.95; transform: scale(1); }
}
@keyframes cr-figurine {
  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 cr-candle {
  0% { transform: scaleY(1) rotate(-1deg); opacity: 0.9; }
  50% { transform: scaleY(1.1) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(-0.5deg); opacity: 0.95; }
}
@keyframes cr-glow {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.35; transform: scale(1.05); }
  100% { opacity: 0.25; transform: scale(0.96); }
}

/* defence-of-theatre-wait-attack-methods (calm, bright-interior) */
.scn-defence-of-theatre-wait-attack-methods {
  background: linear-gradient(180deg, #e0d4c0 0%, #c0b098 40%, #a89880 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 80%);
}
.scn-defence-of-theatre-wait-attack-methods .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 35%;
  background: linear-gradient(180deg, #8c7a60 0%, #5a4a3a 100%);
  border-top: 4px solid #7a6a50; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: wa-floor 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 65%;
  background: linear-gradient(135deg, #d4c0a8 0%, #b8a088 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: wa-wall 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .trench {
  position: absolute; bottom: 18%; left: 10%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: wa-trench 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .barricade {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateY(-5deg); animation: wa-barricade 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .soldier {
  position: absolute; bottom: 15%; left: 22%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a5a4a 0%, #1a2a1a 100%); /* subdued green */
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: wa-soldier 8s ease-in-out infinite;
}
.scn-defence-of-theatre-wait-attack-methods .musket {
  position: absolute; bottom: 20%; left: 18%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(20deg); transform-origin: left center;
  animation: wa-musket 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .lantern {
  position: absolute; bottom: 40%; left: 55%; width: 14px; height: 22px;
  background: radial-gradient(circle, #f5d080 0%, #c08840 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 6px #d0a050, 0 0 48px 12px rgba(208,160,80,0.3);
  animation: wa-lantern 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-wait-attack-methods .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  pointer-events: none; animation: wa-shadow 30s ease-in-out infinite alternate;
}
@keyframes wa-floor {
  0% { transform: translateY(0); }
  100% { transform: translateY(-1px); }
}
@keyframes wa-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.96; }
}
@keyframes wa-trench {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes wa-barricade {
  0% { transform: perspective(600px) rotateY(-5deg) translateX(0); }
  50% { transform: perspective(600px) rotateY(-3deg) translateX(-2px); }
  100% { transform: perspective(600px) rotateY(-6deg) translateX(1px); }
}
@keyframes wa-soldier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wa-musket {
  0% { transform: rotate(20deg) scaleX(1); }
  100% { transform: rotate(18deg) scaleX(1.05); }
}
@keyframes wa-lantern {
  0% { box-shadow: 0 0 20px 4px #d0a050, 0 0 40px 8px rgba(208,160,80,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 30px 8px #e0b060, 0 0 60px 16px rgba(224,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 24px 6px #d0a050, 0 0 48px 12px rgba(208,160,80,0.35); opacity: 0.9; }
}
@keyframes wa-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* defence-of-theatre-entrenched-camp (calm, bright-interior) */
.scn-defence-of-theatre-entrenched-camp {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a080 40%, #8c7050 100%),
              radial-gradient(ellipse at 50% 120%, #e8d8b8 0%, transparent 70%);
}
.scn-defence-of-theatre-entrenched-camp .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #6a5a40 0%, #3a2a1a 100%);
  border-top: 3px solid #5a4a30; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: ec-ground 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-camp .tent {
  position: absolute; bottom: 25%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #b0a080 0%, #6a5a40 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset 0 -8px 16px rgba(0,0,0,0.3);
  transform-origin: bottom center;
}
.scn-defence-of-theatre-entrenched-camp .tent-1 { left: 20%; animation: ec-tent1 12s ease-in-out infinite alternate; }
.scn-defence-of-theatre-entrenched-camp .tent-2 { right: 20%; width: 50px; height: 40px; animation: ec-tent2 15s ease-in-out infinite alternate reverse; }
.scn-defence-of-theatre-entrenched-camp .flag {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #5a4a30 0%, #2a1a0a 100%);
  transform-origin: bottom center;
}
.scn-defence-of-theatre-entrenched-camp .flag::after {
  content: ''; position: absolute; top: -10px; left: 4px; width: 20px; height: 12px;
  background: linear-gradient(135deg, #5a6a8c 0%, #3a4a6a 100%); /* subdued blue */
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
}
.scn-defence-of-theatre-entrenched-camp .campfire {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c08840 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 12px #d0a050, 0 0 80px 24px rgba(208,160,80,0.3);
  animation: ec-fire 5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-camp .sentinel {
  position: absolute; bottom: 15%; left: 35%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: ec-sentinel 8s ease-in-out infinite;
}
.scn-defence-of-theatre-entrenched-camp .palisade {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateY(-8deg); animation: ec-palisade 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-camp .smoke {
  position: absolute; bottom: 45%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, rgba(150,130,100,0.4) 0%, transparent 70%);
  filter: blur(8px); animation: ec-smoke 12s ease-out infinite;
}
@keyframes ec-ground {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes ec-tent1 {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.05) translateX(-3px); }
  100% { transform: scaleY(1) translateX(2px); }
}
@keyframes ec-tent2 {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.08) translateX(2px); }
  100% { transform: scaleY(1) translateX(-3px); }
}
@keyframes ec-fire {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 30px 8px #d0a050; }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 50px 16px #e0b060; }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 35px 10px #c08840; }
}
@keyframes ec-sentinel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ec-palisade {
  0% { transform: perspective(400px) rotateY(-8deg) translateX(0); }
  50% { transform: perspective(400px) rotateY(-6deg) translateX(-2px); }
  100% { transform: perspective(400px) rotateY(-10deg) translateX(1px); }
}
@keyframes ec-smoke {
  0% { transform: translateY(0) scale(0.5); opacity: 0.5; }
  50% { transform: translateY(-30px) scale(1.5); opacity: 0.2; }
  100% { transform: translateY(-60px) scale(2); opacity: 0; }
}

/* defence-of-theatre-entrenched-danger (tense, overcast) */
.scn-defence-of-theatre-entrenched-danger {
  background: linear-gradient(180deg, #4a5060 0%, #3a4050 40%, #2a3038 100%),
              radial-gradient(ellipse at 50% 0%, #6a7080 0%, transparent 80%);
}
.scn-defence-of-theatre-entrenched-danger .sky {
  position: absolute; top: 0; left: 0; width: 100%; height: 55%;
  background: linear-gradient(180deg, #5a6070 0%, #3a4050 60%, #2a3038 100%);
  animation: ed-sky 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-danger .trench {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #3a3020 0%, #1a1008 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,0.7);
  animation: ed-trench 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-danger .soldier {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: ed-soldier 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-defence-of-theatre-entrenched-danger .rifle {
  position: absolute; bottom: 25%; left: 25%; width: 35px; height: 4px;
  background: linear-gradient(90deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 2px; transform: rotate(25deg); transform-origin: right center;
  animation: ed-rifle 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-entrenched-danger .enemy-silhouette {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #0a0a0e 0%, #1a1a20 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  opacity: 0.6; animation: ed-enemy 8s ease-in-out infinite;
}
.scn-defence-of-theatre-entrenched-danger .lightning {
  position: absolute; top: 10%; left: 50%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #c0c8d0 0%, transparent 100%);
  filter: blur(1px); opacity: 0; animation: ed-lightning 4s step-end infinite;
}
.scn-defence-of-theatre-entrenched-danger .rain {
  position: absolute; inset: 0; background: repeating-linear-gradient(
    transparent, transparent 4px,
    rgba(160,170,180,0.1) 4px, rgba(160,170,180,0.1) 6px
  ); pointer-events: none;
  animation: ed-rain 1s linear infinite;
}
@keyframes ed-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ed-trench {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.03) translateY(-2px); }
  100% { transform: scaleX(0.97) translateY(1px); }
}
@keyframes ed-soldier {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-5px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ed-rifle {
  0% { transform: rotate(25deg) scaleX(1); }
  100% { transform: rotate(22deg) scaleX(1.03); }
}
@keyframes ed-enemy {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(-10px) scaleX(1.05); opacity: 0.7; }
  100% { transform: translateX(5px) scaleX(0.95); opacity: 0.6; }
}
@keyframes ed-lightning {
  0%, 10%, 50%, 100% { opacity: 0; }
  5% { opacity: 0.8; }
  8% { opacity: 0.3; }
  55% { opacity: 0.4; }
  58% { opacity: 0; }
}
@keyframes ed-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}

/* Scene 1: envy-jealousy-intercessors - calm dim interior */
.scn-envy-jealousy-intercessors {
  background:
    linear-gradient(180deg, #1a1520 0%, #2a2230 40%, #1a1520 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a40 0%, transparent 60%);
}
.scn-envy-jealousy-intercessors .bg-dark {
  position:absolute; inset:0; background: inherit;
  animation: ej-bgsoft 6s ease-in-out infinite alternate;
}
.scn-envy-jealousy-intercessors .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #2a1a18 0%, #3a2a28 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ej-floor 12s ease-in-out infinite;
}
.scn-envy-jealousy-intercessors .table {
  position:absolute; bottom:22%; left:50%; width:120px; height:18px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-envy-jealousy-intercessors .candle {
  position:absolute; bottom:44%; left:50%; width:10px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #c8b090 0%, #8a7050 100%);
  border-radius: 3px 3px 5px 5px;
}
.scn-envy-jealousy-intercessors .flame {
  position:absolute; bottom:68%; left:50%; width:12px; height:20px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #b06020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 0 20px 8px #b06020, 0 0 40px 16px rgba(176,96,32,0.4);
  animation: ej-flame 3s ease-in-out infinite alternate;
}
.scn-envy-jealousy-intercessors .figure-unfortunate {
  position:absolute; bottom:16%; left:50%; width:24px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ej-fig-center 8s ease-in-out infinite;
}
.scn-envy-jealousy-intercessors .figure-intercessor {
  position:absolute; bottom:14%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a2028 0%, #151015 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  animation: ej-fig-left 10s ease-in-out infinite;
}
.scn-envy-jealousy-intercessors .left {
  left:28%; animation: ej-fig-left 10s ease-in-out infinite;
}
.scn-envy-jealousy-intercessors .right {
  right:28%; animation: ej-fig-right 10s ease-in-out infinite;
}
.scn-envy-jealousy-intercessors .back {
  left:44%; width:18px; height:38px;
  animation: ej-fig-back 12s ease-in-out infinite;
}
@keyframes ej-bgsoft {
  0%   { opacity:0.85; }
  50%  { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes ej-floor {
  0%,100% { transform: scaleY(1); }
  50%     { transform: scaleY(1.01) translateY(-2px); }
}
@keyframes ej-flame {
  0%   { transform:translateX(-50%) scaleY(1); opacity:0.9; }
  50%  { transform:translateX(-50%) scaleY(1.15) rotate(2deg); opacity:1; }
  100% { transform:translateX(-50%) scaleY(0.95) rotate(-2deg); opacity:0.85; }
}
@keyframes ej-fig-center {
  0%,100% { transform:translateX(-50%) scale(1) rotate(0deg); }
  25%     { transform:translateX(-50%) scale(1.02) rotate(1deg); }
  75%     { transform:translateX(-50%) scale(0.98) rotate(-1deg); }
}
@keyframes ej-fig-left {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-4px) rotate(2deg); }
}
@keyframes ej-fig-right {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-4px) rotate(-2deg); }
}
@keyframes ej-fig-back {
  0%,100% { transform: translateY(0) scale(0.95); opacity:0.7; }
  50%     { transform: translateY(-3px) scale(0.98); opacity:0.8; }
}

/* Scene 2: conquered-provinces-importance - tense dim interior */
.scn-conquered-provinces-importance {
  background:
    linear-gradient(180deg, #101520 0%, #1a2030 40%, #0e1218 100%),
    radial-gradient(ellipse at 70% 40%, #2a3a4a 0%, transparent 60%);
}
.scn-conquered-provinces-importance .bg-tense {
  position:absolute; inset:0; background: inherit;
  animation: cp-bgpulse 4s ease-in-out infinite alternate;
}
.scn-conquered-provinces-importance .table-map {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #3a3028 0%, #2a201a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  transform: perspective(600px) rotateX(20deg);
}
.scn-conquered-provinces-importance .map-grid {
  position:absolute; bottom:25%; left:18%; right:18%; height:20%;
  background:
    repeating-linear-gradient(0deg, #4a4038 0px, #4a4038 2px, transparent 2px, transparent 6px),
    repeating-linear-gradient(90deg, #4a4038 0px, #4a4038 2px, transparent 2px, transparent 6px);
  opacity:0.3;
  animation: cp-grid 8s linear infinite;
}
.scn-conquered-provinces-importance .token {
  position:absolute; bottom:30%; width:14px; height:14px;
  background: radial-gradient(circle, #a08050 0%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: cp-token 6s ease-in-out infinite;
}
.scn-conquered-provinces-importance .token-a { left:30%; animation-delay:0s; }
.scn-conquered-provinces-importance .token-b { left:45%; animation-delay:-2s; }
.scn-conquered-provinces-importance .token-c { left:60%; animation-delay:-4s; }
.scn-conquered-provinces-importance .commander {
  position:absolute; bottom:12%; left:15%; width:30px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-commander 3s ease-in-out infinite alternate;
}
.scn-conquered-provinces-importance .shadow-sharp {
  position:absolute; bottom:2%; left:10%; right:70%; height:12%;
  background: linear-gradient(135deg, #1a1a2a 0%, transparent 100%);
  filter: blur(4px);
  animation: cp-shadow 3s ease-in-out infinite alternate;
}
@keyframes cp-bgpulse {
  0%   { opacity:0.9; }
  50%  { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes cp-grid {
  0%   { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes cp-token {
  0%,100% { transform: scale(1); }
  50%     { transform: scale(1.2); }
}
@keyframes cp-commander {
  0%   { transform: rotate(0deg) translateY(0); }
  50%  { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes cp-shadow {
  0%   { opacity:0.5; transform: scale(1); }
  100% { opacity:0.8; transform: scale(1.05); }
}

/* Scene 3: time-factor-forces - calm dim interior with hourglass */
.scn-time-factor-forces {
  background:
    linear-gradient(180deg, #1a1820 0%, #2a2830 40%, #1a1820 100%),
    radial-gradient(ellipse at 50% 60%, #3a3840 0%, transparent 70%);
}
.scn-time-factor-forces .bg-calm {
  position:absolute; inset:0; background: inherit;
  animation: tf-bgdrift 8s ease-in-out infinite alternate;
}
.scn-time-factor-forces .wall-edge {
  position:absolute; bottom:20%; left:5%; right:5%; height:60%;
  background: linear-gradient(90deg, #2a2830 0%, #3a3840 30%, #2a2830 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-time-factor-forces .hourglass-frame {
  position:absolute; bottom:15%; left:50%; width:100px; height:200px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #504840 0%, #302820 100%);
  border-radius: 20px 20px 10px 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
}
.scn-time-factor-forces .sand-top {
  position:absolute; bottom:60%; left:50%; width:60px; height:70px;
  transform:translatex(-50%);
  background: linear-gradient(180deg, #c0a040 0%, #a08020 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 80%);
  animation: tf-sandfall 4s ease-in-out infinite;
}
.scn-time-factor-forces .sand-bottom {
  position:absolute; bottom:18%; left:50%; width:60px; height:50px;
  transform:translatex(-50%);
  background: linear-gradient(0deg, #c0a040 0%, #a08020 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: tf-sandpile 4s ease-in-out infinite;
}
.scn-time-factor-forces .thin-pillar {
  position:absolute; bottom:15%; left:50%; width:4px; height:200px;
  transform:translatex(-50%);
  background: linear-gradient(180deg, #504840 0%, #302820 100%);
  z-index:-1;
}
.scn-time-factor-forces .pendulum {
  position:absolute; bottom:35%; left:50%; width:6px; height:90px;
  transform-origin: top center;
  background: linear-gradient(180deg, #706050 0%, #403830 100%);
  border-radius: 0 0 3px 3px;
  animation: tf-pendulum 6s ease-in-out infinite;
}
@keyframes tf-bgdrift {
  0%   { opacity:0.8; }
  50%  { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes tf-sandfall {
  0%   { height:70px; }
  50%  { height:60px; }
  100% { height:70px; }
}
@keyframes tf-sandpile {
  0%   { height:50px; }
  50%  { height:60px; }
  100% { height:50px; }
}
@keyframes tf-pendulum {
  0%   { transform: rotate(0deg); }
  25%  { transform: rotate(10deg); }
  75%  { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}

/* Scene 4: quick-conquest-essential - tense dim interior with marching soldier */
.scn-quick-conquest-essential {
  background:
    linear-gradient(180deg, #10181a 0%, #1a2225 40%, #0c1214 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a3a 0%, transparent 60%);
}
.scn-quick-conquest-essential .bg-tense-dark {
  position:absolute; inset:0; background: inherit;
  animation: qc-bgstrobe 3s ease-in-out infinite alternate;
}
.scn-quick-conquest-essential .ground-rushed {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: qc-ground 2s ease-in-out infinite;
}
.scn-quick-conquest-essential .soldier-figure {
  position:absolute; bottom:20%; left:40%; width:28px; height:70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qc-soldier 0.8s ease-in-out infinite;
}
.scn-quick-conquest-essential .rifle {
  position:absolute; bottom:32%; left:44%; width:4px; height:40px;
  background: linear-gradient(180deg, #504a40 0%, #302a20 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: qc-rifle 0.8s ease-in-out infinite;
}
.scn-quick-conquest-essential .dust-cloud {
  position:absolute; bottom:15%; width:30px; height:20px;
  background: radial-gradient(ellipse, rgba(120,110,100,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: qc-dust 2s linear infinite;
}
.scn-quick-conquest-essential .dust-a {
  left:30%; animation-delay:0s;
}
.scn-quick-conquest-essential .dust-b {
  left:50%; animation-delay:-1s;
}
@keyframes qc-bgstrobe {
  0%   { opacity:0.9; }
  50%  { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes qc-ground {
  0%   { transform: scale(1) translateY(0); }
  50%  { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes qc-soldier {
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-4px) rotate(3deg); }
  50%  { transform: translateY(0) rotate(0deg); }
  75%  { transform: translateY(-4px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes qc-rifle {
  0%   { transform: rotate(-30deg) translateY(0); }
  25%  { transform: rotate(-25deg) translateY(-2px); }
  50%  { transform: rotate(-30deg) translateY(0); }
  75%  { transform: rotate(-35deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes qc-dust {
  0%   { transform: scale(1) translateY(0); opacity:0.6; }
  100% { transform: scale(2) translateY(-20px); opacity:0; }
}

/* military-strength-choice - calm dim-interior */
.scn-military-strength-choice {
  background: 
    linear-gradient(180deg, #2a2420 0%, #1a1512 60%, #0f0b08 100%),
    radial-gradient(ellipse at 60% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-military-strength-choice .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); animation: ms-bg 20s ease-in-out infinite; }
.scn-military-strength-choice .table-wood { position:absolute; bottom:20%; left:10%; right:20%; height:20%; background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%); border-radius: 2% 2% 20% 20% / 5% 5% 30% 30%; box-shadow: inset 0 6px 12px rgba(0,0,0,0.6); }
.scn-military-strength-choice .map-parch { position:absolute; bottom:28%; left:22%; width:45%; height:16%; background: linear-gradient(135deg, #c8b28a 0%, #a08860 100%); border-radius: 2% 8% 2% 6%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: ms-map 12s ease-in-out infinite; }
.scn-military-strength-choice .candle-body { position:absolute; bottom:40%; left:65%; width:6%; height:15%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 40%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); }
.scn-military-strength-choice .candle-flame { position:absolute; bottom:54%; left:65%; width:3%; height:6%; background: radial-gradient(circle at 50% 30%, #ffe8b0 0%, #f0a040 50%, #804020 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #f0a040, 0 0 40px 16px rgba(240,160,64,0.4); animation: ms-flame 2s ease-in-out infinite alternate; }
.scn-military-strength-choice .figure-sil { position:absolute; bottom:20%; left:52%; width:12%; height:30%; background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-fig 8s ease-in-out infinite; }
.scn-military-strength-choice .fig-shadow { position:absolute; bottom:18%; left:50%; width:18%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: ms-shad 8s ease-in-out infinite; }
.scn-military-strength-choice .smoke { position:absolute; top:10%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%); filter: blur(8px); animation: ms-smoke 15s linear infinite; }
@keyframes ms-bg { 0%,100% { opacity:0.8 } 50% { opacity:0.7 } }
@keyframes ms-map { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes ms-flame { 0% { transform: scaleY(1) translateY(0) opacity:0.9 } 50% { transform: scaleY(1.15) translateY(-2px) opacity:1 } 100% { transform: scaleY(0.95) translateY(1px) opacity:0.8 } }
@keyframes ms-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(-0.5deg) } 50% { transform: translateX(2px) translateY(-3px) rotate(0.5deg) } }
@keyframes ms-shad { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes ms-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.3 } 50% { transform: translate(-10px,-20px) scale(1.2); opacity:0.1 } 100% { transform: translate(-20px,-40px) scale(1.5); opacity:0 } }

/* small-state-attack - tense dim-interior */
.scn-small-state-attack {
  background: 
    linear-gradient(180deg, #1c1a24 0%, #12101a 60%, #0a0810 100%),
    radial-gradient(ellipse at 30% 40%, #2a2a44 0%, transparent 70%);
}
.scn-small-state-attack .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,20,40,0.7) 0%, transparent 40%, rgba(0,0,0,0.5) 100%); animation: sa-bg 15s ease-in-out infinite; }
.scn-small-state-attack .floor-stone { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-small-state-attack .beam-light { position:absolute; top:0; left:30%; width:4%; height:50%; background: linear-gradient(180deg, rgba(200,200,255,0.15) 0%, rgba(200,200,255,0.05) 50%, transparent 100%); filter: blur(4px); animation: sa-beam 6s ease-in-out infinite alternate; transform-origin: top; }
.scn-small-state-attack .figure-sold { position:absolute; bottom:25%; left:35%; width:14%; height:45%; background: linear-gradient(180deg, #1a1820 0%, #0a0810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sa-fig 3s ease-in-out infinite; }
.scn-small-state-attack .weapon-blade { position:absolute; bottom:50%; left:40%; width:2%; height:15%; background: linear-gradient(180deg, #a0a8b8 0%, #606878 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 8px 2px rgba(160,168,184,0.3); transform-origin: bottom center; animation: sa-blade 3s ease-in-out infinite; }
.scn-small-state-attack .shadow-sharp { position:absolute; bottom:20%; left:30%; width:25%; height:40%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 70%); clip-path: polygon(0 100%, 100% 100%, 70% 0, 30% 0); animation: sa-shadow 3s ease-in-out infinite alternate; }
.scn-small-state-attack .dust-motes { position:absolute; top:10%; left:20%; width:60%; height:60%; background: radial-gradient(circle at 20% 30%, rgba(200,200,220,0.08) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(200,200,220,0.06) 0%, transparent 50%); filter: blur(2px); animation: sa-dust 12s linear infinite; }
@keyframes sa-bg { 0%,100% { opacity:0.85 } 50% { opacity:0.75 } }
@keyframes sa-beam { 0% { opacity:0.6; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.1) } 100% { opacity:0.5; transform: scaleY(0.95) } }
@keyframes sa-fig { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(2deg) } }
@keyframes sa-blade { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-2px) } }
@keyframes sa-shadow { 0% { transform: scaleX(0.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes sa-dust { 0% { transform: translate(0,0); opacity:0.4 } 50% { transform: translate(-10px,10px); opacity:0.2 } 100% { transform: translate(-20px,20px); opacity:0 } }

/* defensive-first-advantage - calm dim-interior */
.scn-defensive-first-advantage {
  background: 
    linear-gradient(180deg, #2a2a28 0%, #1a1a18 60%, #0f0f0d 100%),
    radial-gradient(ellipse at 50% 60%, #3a4a3a 0%, transparent 70%);
}
.scn-defensive-first-advantage .bg-muted { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,50,40,0.5) 0%, transparent 60%, rgba(0,0,0,0.3) 100%); animation: df-bg 25s ease-in-out infinite; }
.scn-defensive-first-advantage .wall-stone { position:absolute; left:0; top:0; bottom:20%; width:30%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 0 8% 8% 0 / 0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.5); }
.scn-defensive-first-advantage .shield-wood { position:absolute; left:28%; bottom:30%; width:18%; height:30%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 2px 6px rgba(255,200,100,0.15); transform-origin: center center; animation: df-shield 10s ease-in-out infinite; }
.scn-defensive-first-advantage .kneeling-fig { position:absolute; bottom:22%; left:35%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a18 0%, #0a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: df-fig 8s ease-in-out infinite; }
.scn-defensive-first-advantage .floor-planks { position:absolute; bottom:0; left:0; right:0; height:22%; background: repeating-linear-gradient(90deg, #2a2a22 0px, #2a2a22 3px, #1a1a14 3px, #1a1a14 5px); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4); }
.scn-defensive-first-advantage .light-shaft { position:absolute; top:0; left:60%; width:6%; height:60%; background: linear-gradient(180deg, rgba(240,240,220,0.12) 0%, rgba(240,240,220,0.04) 60%, transparent 100%); filter: blur(3px); animation: df-light 12s ease-in-out infinite alternate; }
.scn-defensive-first-advantage .shadow-gentle { position:absolute; bottom:18%; left:32%; width:24%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: df-gshad 8s ease-in-out infinite; }
@keyframes df-bg { 0%,100% { opacity:0.9 } 50% { opacity:0.8 } }
@keyframes df-shield { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } }
@keyframes df-fig { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes df-light { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.05) } 100% { opacity:0.4; transform: scaleY(0.95) } }
@keyframes df-gshad { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } }

/* audacity-positive-end - tense dim-interior */
.scn-audacity-positive-end {
  background: 
    linear-gradient(180deg, #1a1018 0%, #120810 60%, #0a0408 100%),
    radial-gradient(ellipse at 70% 30%, #3a1020 0%, transparent 70%);
}
.scn-audacity-positive-end .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,0,5,0.8) 0%, transparent 40%, rgba(30,10,20,0.4) 100%); animation: au-bg 18s ease-in-out infinite; }
.scn-audacity-positive-end .pillar-left { position:absolute; left:5%; top:10%; bottom:0; width:10%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.6); }
.scn-audacity-positive-end .figure-bolt { position:absolute; bottom:20%; left:40%; width:16%; height:50%; background: linear-gradient(180deg, #1a1018 0%, #0a0410 100%); border-radius: 40% 40% 30% 30% / 45% 45% 30% 30%; transform-origin: bottom center; animation: au-fig 4s ease-in-out infinite; }
.scn-audacity-positive-end .raised-arm { position:absolute; bottom:60%; left:48%; width:4%; height:26%; background: linear-gradient(180deg, #1a1018 0%, #0e0810 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: au-arm 4s ease-in-out infinite; }
.scn-audacity-positive-end .sword-blade { position:absolute; bottom:78%; left:49%; width:2%; height:18%; background: linear-gradient(180deg, #b8a8a0 0%, #706060 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 10px 3px rgba(184,168,160,0.4); transform-origin: bottom center; animation: au-sword 4s ease-in-out infinite; }
.scn-audacity-positive-end .cape-drape { position:absolute; bottom:22%; left:36%; width:18%; height:20%; background: linear-gradient(180deg, #4a1020 0%, #2a0810 100%); border-radius: 60% 40% 20% 80% / 40% 60% 40% 60%; transform-origin: top center; animation: au-cape 4s ease-in-out infinite alternate; }
.scn-audacity-positive-end .torch-body { position:absolute; bottom:15%; left:25%; width:4%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 20% 20%; }
.scn-audacity-positive-end .torch-flame { position:absolute; bottom:33%; left:24.5%; width:5%; height:10%; background: radial-gradient(circle at 50% 40%, #ffb060 0%, #d06020 40%, #802010 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #d06020, 0 0 40px 12px rgba(208,96,32,0.4); animation: au-flame 2s ease-in-out infinite alternate; }
.scn-audacity-positive-end .shadow-long { position:absolute; bottom:18%; left:35%; width:40%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%); animation: au-shad 4s ease-in-out infinite alternate; }
@keyframes au-bg { 0%,100% { opacity:0.85 } 50% { opacity:0.7 } }
@keyframes au-fig { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes au-arm { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } }
@keyframes au-sword { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes au-cape { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.05) rotate(3deg) } 100% { transform: scaleX(0.95) rotate(-3deg) } }
@keyframes au-flame { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.2) scaleX(1.1) } 100% { transform: scaleY(0.9) scaleX(0.9) } }
@keyframes au-shad { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

/* Scene 1: culminating-point-historical */
.scn-culminating-point-historical {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #dcc9a8 40%, #c4b090 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e7 0%, transparent 60%);
}
.scn-culminating-point-historical .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc4 0%, #d4c4a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-culminating-point-historical .window {
  position: absolute; top: 8%; left: 55%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #fffce8 0%, #f0e6ce 80%);
  border: 6px solid #8b7355; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.5), 0 0 50px rgba(255,240,200,0.3);
  animation: cph-window 12s ease-in-out infinite alternate;
}
.scn-culminating-point-historical .desk {
  position: absolute; bottom: 0; left: 30%; width: 180px; height: 60px;
  background: linear-gradient(180deg, #7a6448 0%, #5c4a34 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}
.scn-culminating-point-historical .globe {
  position: absolute; bottom: 8%; left: 36%; width: 40px; height: 40px;
  background: radial-gradient(circle at 35% 35%, #6a8a7a 0%, #3a5a4a 60%, #2a3a2a 100%);
  border-radius: 50%; box-shadow: -2px 2px 10px rgba(0,0,0,0.3);
  transform-origin: 50% 100%;
  animation: cph-globe 20s ease-in-out infinite alternate;
}
.scn-culminating-point-historical .candle {
  position: absolute; bottom: 12%; left: 42%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d4a060 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #ffd080;
  animation: cph-candle 3s ease-in-out infinite alternate;
}
.scn-culminating-point-historical .books {
  position: absolute; bottom: 10%; left: 48%; width: 50px; height: 40px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 30%, #5a3a1a 70%);
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.25);
  animation: cph-books 9s ease-in-out infinite;
}
.scn-culminating-point-historical .shadow {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: cph-shadow 18s ease-in-out infinite alternate;
}
@keyframes cph-window {
  0%   { opacity: 0.85; transform: scaleX(1); }
  50%  { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.9; transform: scaleX(0.98); }
}
@keyframes cph-globe {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes cph-candle {
  0%   { transform: scaleY(1); box-shadow: 0 0 18px 4px #ffd080; }
  50%  { transform: scaleY(1.05); box-shadow: 0 0 26px 8px #ffd880; }
  100% { transform: scaleY(0.95); box-shadow: 0 0 22px 6px #ffc870; }
}
@keyframes cph-books {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes cph-shadow {
  0%   { transform: scaleX(1); opacity: 0.5; }
  50%  { transform: scaleX(1.1); opacity: 0.3; }
  100% { transform: scaleX(0.9); opacity: 0.6; }
}

/* Scene 2: culminating-point-apparent-contradiction */
.scn-culminating-point-apparent-contradiction {
  background: 
    linear-gradient(180deg, #f3e4ce 0%, #e6d4b8 50%, #d4bea0 100%),
    radial-gradient(ellipse at 30% 60%, #fff5e8 0%, transparent 70%);
}
.scn-culminating-point-apparent-contradiction .table {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 55px;
  background: linear-gradient(180deg, #8a7355 0%, #6a553a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -6px 30px rgba(0,0,0,0.15);
  perspective: 500px;
}
.scn-culminating-point-apparent-contradiction .book-open {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 100px;
  background: 
    linear-gradient(90deg, #f0e6d0 0%, #fff8e8 30%, #e8dcc4 70%);
  border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,0.2);
  transform: rotateX(5deg);
  animation: cpa-book 14s ease-in-out infinite alternate;
}
.scn-culminating-point-apparent-contradiction .letter {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 40px;
  background: #fcf4e8; border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transform: rotate(-3deg);
  animation: cpa-letter 8s ease-in-out infinite;
}
.scn-culminating-point-apparent-contradiction .inkwell {
  position: absolute; bottom: 12%; left: 38%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 1px 2px 6px rgba(0,0,0,0.3);
}
.scn-culminating-point-apparent-contradiction .quill {
  position: absolute; bottom: 20%; left: 42%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e8dcc0 0%, #b8a888 60%);
  border-radius: 2px; transform: rotate(25deg);
  transform-origin: bottom center;
  animation: cpa-quill 4s ease-in-out infinite alternate;
}
.scn-culminating-point-apparent-contradiction .candle {
  position: absolute; bottom: 8%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d4a060 80%);
  border-radius: 2px; box-shadow: 0 0 24px 8px #ffd080;
  animation: cpa-candle 3.5s ease-in-out infinite alternate;
}
.scn-culminating-point-apparent-contradiction .blot {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #4a3a2a 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: cpa-blot 12s ease-in-out infinite alternate;
}
@keyframes cpa-book {
  0%   { transform: rotateX(5deg) translateY(0); }
  50%  { transform: rotateX(4deg) translateY(-2px); }
  100% { transform: rotateX(6deg) translateY(1px); }
}
@keyframes cpa-letter {
  0%   { transform: rotate(-3deg) translateX(0); }
  50%  { transform: rotate(-1deg) translateX(4px); }
  100% { transform: rotate(-4deg) translateX(-2px); }
}
@keyframes cpa-quill {
  0%   { transform: rotate(25deg); }
  50%  { transform: rotate(23deg); }
  100% { transform: rotate(27deg); }
}
@keyframes cpa-candle {
  0%   { transform: scaleY(1); box-shadow: 0 0 20px 6px #ffd080; }
  50%  { transform: scaleY(1.06); box-shadow: 0 0 30px 10px #ffd880; }
  100% { transform: scaleY(0.94); box-shadow: 0 0 24px 8px #ffc870; }
}
@keyframes cpa-blot {
  0%   { transform: scale(1); opacity: 0.3; }
  50%  { transform: scale(1.5); opacity: 0.2; }
  100% { transform: scale(0.7); opacity: 0.4; }
}

/* Scene 3: culminating-point-expectancy */
.scn-culminating-point-expectancy {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b090 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ec 0%, transparent 60%);
}
.scn-culminating-point-expectancy .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #b8a890 0%, #a09080 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-culminating-point-expectancy .light-beam {
  position: absolute; top: 0; left: 45%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,230,0.4) 0%, rgba(255,245,210,0.15) 50%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cpe-beam 16s ease-in-out infinite alternate;
}
.scn-culminating-point-expectancy .map {
  position: absolute; bottom: 12%; left: 30%; width: 160px; height: 110px;
  background: linear-gradient(135deg, #f0e4ce 0%, #dcccb0 50%, #c8b89a 100%);
  border-radius: 4px; box-shadow: 0 4px 30px rgba(0,0,0,0.2);
  transform: rotateX(10deg);
  animation: cpe-map 20s ease-in-out infinite;
}
.scn-culminating-point-expectancy .hourglass {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c0a880 0%, #8a7050 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
  animation: cpe-hourglass 10s ease-in-out infinite alternate;
}
.scn-culminating-point-expectancy .chair {
  position: absolute; bottom: 0; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}
.scn-culminating-point-expectancy .figure {
  position: absolute; bottom: 2%; left: 12%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpe-figure 8s ease-in-out infinite;
}
.scn-culminating-point-expectancy .dust {
  position: absolute; top: 10%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,245,220,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: cpe-dust 30s linear infinite;
}
@keyframes cpe-beam {
  0%   { opacity: 0.6; transform: scaleX(0.9); }
  50%  { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}
@keyframes cpe-map {
  0%   { transform: rotateX(10deg) rotateZ(0deg); }
  50%  { transform: rotateX(9deg) rotateZ(2deg); }
  100% { transform: rotateX(11deg) rotateZ(-2deg); }
}
@keyframes cpe-hourglass {
  0%   { transform: scaleY(1) rotate(0deg); }
  50%  { transform: scaleY(0.95) rotate(5deg); }
  100% { transform: scaleY(1.05) rotate(-5deg); }
}
@keyframes cpe-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(-4px) rotate(1deg); }
}
@keyframes cpe-dust {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(20px, -10px); }
  50%  { transform: translate(50px, 5px); }
  100% { transform: translate(-30px, 15px); }
}

/* Scene 4: culminating-point-illustration */
.scn-culminating-point-illustration {
  background: 
    linear-gradient(180deg, #f5efe0 0%, #e6dcc8 40%, #d4c4a8 100%),
    radial-gradient(ellipse at 40% 50%, #fffcf0 0%, transparent 60%);
}
.scn-culminating-point-illustration .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d8c8b0 0%, #e0d4bc 50%, #d0c0a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.06);
}
.scn-culminating-point-illustration .arch-left {
  position: absolute; top: 0; left: 5%; width: 200px; height: 100%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 60%, 30% 60%, 30% 100%, 0 100%);
  opacity: 0.7;
  animation: cpi-arch 20s ease-in-out infinite alternate;
}
.scn-culminating-point-illustration .arch-right {
  position: absolute; top: 0; right: 5%; width: 200px; height: 100%;
  background: linear-gradient(270deg, #6a5a4a 0%, #8a7a6a 30%, transparent 100%);
  clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%, 100% 60%, 70% 60%, 70% 100%, 100% 100%);
  opacity: 0.7;
  animation: cpi-arch 20s ease-in-out infinite alternate-reverse;
}
.scn-culminating-point-illustration .sunlight {
  position: absolute; top: 0; left: 30%; width: 150px; height: 100%;
  background: linear-gradient(135deg, rgba(255,250,235,0.5) 0%, rgba(255,245,210,0.2) 60%, transparent 100%);
  clip-path: polygon(10% 0, 90% 0, 60% 100%, 40% 100%);
  animation: cpi-sun 15s ease-in-out infinite alternate;
}
.scn-culminating-point-illustration .pedestal {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-culminating-point-illustration .figure {
  position: absolute; bottom: 22%; left: 44%; width: 16px; height: 48px;
  background: linear-gradient(180deg, #2a2220 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpi-figure 6s ease-in-out infinite alternate;
}
.scn-culminating-point-illustration .glow-spot {
  position: absolute; bottom: 28%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffecb0 0%, transparent 70%);
  border-radius: 50%;
  animation: cpi-glow 4s ease-in-out infinite alternate;
}
@keyframes cpi-arch {
  0%   { opacity: 0.5; }
  50%  { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes cpi-sun {
  0%   { opacity: 0.6; transform: skewX(-2deg); }
  50%  { opacity: 1; transform: skewX(0deg); }
  100% { opacity: 0.7; transform: skewX(2deg); }
}
@keyframes cpi-figure {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(5px) rotate(-3deg); }
  100% { transform: translateX(-5px) rotate(3deg); }
}
@keyframes cpi-glow {
  0%   { box-shadow: 0 0 20px 6px #ffecb0; opacity: 0.6; }
  50%  { box-shadow: 0 0 40px 12px #ffecb0; opacity: 1; }
  100% { box-shadow: 0 0 30px 8px #ffecb0; opacity: 0.8; }
}

/* Scene 1: flank-attack-advantages – calm, bright interior */
.scn-defence-of-theatre-flank-attack-advantages {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e4d1b5 60%, #c6a886 100%),
    radial-gradient(ellipse at 50% 70%, rgba(255,220,180,0.5) 0%, transparent 70%);
}
.scn-defence-of-theatre-flank-attack-advantages .stage-backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4b896 0%, #b89a78 100%);
  border-radius: 0 0 30% 30%;
  animation: df1-backdrop 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-flank-attack-advantages .curtain-left {
  position: absolute; top:0; left:0; width:25%; height:95%;
  background: linear-gradient(180deg, #a04030 0%, #7a2a1e 50%, #5a1a10 100%);
  border-radius: 0 40% 0 40%;
  transform-origin: left top;
  animation: df1-curtain 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-flank-attack-advantages .curtain-right {
  position: absolute; top:0; right:0; width:25%; height:95%;
  background: linear-gradient(180deg, #a04030 0%, #7a2a1e 50%, #5a1a10 100%);
  border-radius: 40% 0 40% 0;
  transform-origin: right top;
  animation: df1-curtain 20s ease-in-out infinite alternate-reverse;
}
.scn-defence-of-theatre-flank-attack-advantages .stage-floor {
  position: absolute; bottom:0; left:0; right:0; height:32%;
  background: linear-gradient(180deg, #bfa68e 0%, #9e846c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-defence-of-theatre-flank-attack-advantages .footlights {
  position: absolute; bottom:33%; left:10%; right:10%; height:2px;
  background: radial-gradient(ellipse at 50% 50%, #ffd060 0%, rgba(255,208,96,0.2) 70%, transparent 100%);
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.6);
  animation: df1-footglow 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-flank-attack-advantages .figure-left {
  position: absolute; bottom:29%; left:30%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df1-figure 5s ease-in-out infinite;
}
.scn-defence-of-theatre-flank-attack-advantages .figure-right {
  position: absolute; bottom:29%; right:30%; width:16px; height:38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df1-figure 5s ease-in-out infinite 0.5s reverse;
}
.scn-defence-of-theatre-flank-attack-advantages .shadow {
  position: absolute; bottom:30%; left:28%; right:28%; height:4px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: df1-shadow 6s ease-in-out infinite alternate;
}
@keyframes df1-backdrop { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes df1-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.85); } }
@keyframes df1-footglow { 0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,208,96,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 14px rgba(255,208,96,0.8); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(255,208,96,0.5); } }
@keyframes df1-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes df1-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

/* Scene 2: favourable-moment – tense, overcast */
.scn-defence-of-theatre-favourable-moment {
  background:
    linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(120,140,160,0.5) 0%, transparent 60%);
}
.scn-defence-of-theatre-favourable-moment .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: df2-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-favourable-moment .ground {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0/ 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-favourable-moment .hill-left {
  position: absolute; bottom:30%; left:5%; width:25%; height:25%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: df2-hill 9s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-favourable-moment .hill-right {
  position: absolute; bottom:28%; right:5%; width:30%; height:30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: df2-hill 9s ease-in-out infinite alternate 0.3s;
}
.scn-defence-of-theatre-favourable-moment .troop-silhouette {
  position: absolute; bottom:32%; left:45%; width:14px; height:36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df2-troop 3s ease-in-out infinite;
}
.scn-defence-of-theatre-favourable-moment .tree {
  position: absolute; bottom:35%; left:20%; width:8px; height:50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 0 12px #2a3a2a;
  animation: df2-tree 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-favourable-moment .flag {
  position: absolute; bottom:52%; left:48%; width:2px; height:30px;
  background: #3a3a3a;
}
.scn-defence-of-theatre-favourable-moment .flag::before {
  content: ''; position: absolute; top:5%; left:2px; width:14px; height:10px;
  background: linear-gradient(180deg, #a06848 0%, #7a4a2a 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left center;
  animation: df2-flag 2s ease-in-out infinite alternate;
}
@keyframes df2-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes df2-hill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes df2-troop { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes df2-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes df2-flag { 0% { transform: rotate(-10deg); } 100% { transform: rotate(20deg); } }

/* Scene 3: offensive-battle – calm, bright interior */
.scn-defence-of-theatre-offensive-battle {
  background:
    linear-gradient(180deg, #ebe1c5 0%, #d1c4a0 50%, #b8a67a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,235,190,0.6) 0%, transparent 70%);
}
.scn-defence-of-theatre-offensive-battle .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #a89070 100%);
  border-radius: 0 0 20% 20%;
  animation: df3-wall 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-battle .window {
  position: absolute; top:12%; left:40%; width:50px; height:60px;
  background: radial-gradient(circle, #c8d8e8 0%, #90a0b0 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 40px 8px rgba(200,216,232,0.4);
  animation: df3-window 7s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-battle .floor {
  position: absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #9e8a6e 0%, #7a6a4a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-defence-of-theatre-offensive-battle .table {
  position: absolute; bottom:20%; left:32%; right:32%; height:10px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: df3-table 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-battle .map {
  position: absolute; bottom:24%; left:35%; right:35%; height:18px;
  background: linear-gradient(180deg, #d4c8a8 0%, #bca880 100%);
  border-radius: 5%;
  transform: rotate(2deg);
  animation: df3-map 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-battle .figure-commander {
  position: absolute; bottom:20%; left:20%; width:18px; height:42px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df3-figure 5s ease-in-out infinite;
}
.scn-defence-of-theatre-offensive-battle .figure-aide {
  position: absolute; bottom:20%; right:25%; width:16px; height:40px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df3-figure 5s ease-in-out infinite 0.4s reverse;
}
.scn-defence-of-theatre-offensive-battle .candle {
  position: absolute; bottom:30%; left:48%; width:6px; height:12px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a870 100%);
  border-radius: 30%;
  box-shadow: 0 0 8px 4px rgba(232,208,160,0.4);
  animation: df3-candle 3s ease-in-out infinite alternate;
}
@keyframes df3-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes df3-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 30px 6px rgba(200,216,232,0.3); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.05), 0 0 50px 12px rgba(200,216,232,0.6); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 0 35px 8px rgba(200,216,232,0.4); } }
@keyframes df3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes df3-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes df3-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes df3-candle { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }

/* Scene 4: avoid-pitfalls – tense, bright interior */
.scn-defence-of-theatre-avoid-pitfalls {
  background:
    linear-gradient(180deg, #e2d4c0 0%, #c8b8a0 50%, #a89070 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200,180,160,0.4) 0%, transparent 70%);
}
.scn-defence-of-theatre-avoid-pitfalls .ceiling {
  position: absolute; top:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #b8a88a 0%, #9a886a 100%);
  border-radius: 0 0 30% 30%;
  animation: df4-ceiling 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-avoid-pitfalls .floor-pit {
  position: absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-avoid-pitfalls .pillar-left {
  position: absolute; bottom:15%; left:15%; width:12px; height:70%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: df4-pillar 9s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-avoid-pitfalls .pillar-right {
  position: absolute; bottom:15%; right:15%; width:12px; height:70%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: df4-pillar 9s ease-in-out infinite alternate 0.5s;
}
.scn-defence-of-theatre-avoid-pitfalls .figure-guide {
  position: absolute; bottom:18%; left:30%; width:18px; height:44px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df4-guide 4s ease-in-out infinite;
}
.scn-defence-of-theatre-avoid-pitfalls .figure-follower {
  position: absolute; bottom:18%; right:28%; width:16px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df4-follower 4s ease-in-out infinite 0.3s;
}
.scn-defence-of-theatre-avoid-pitfalls .light-beam {
  position: absolute; top:18%; left:45%; width:20px; height:40%;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  filter: blur(4px);
  transform-origin: top center;
  animation: df4-beam 5s ease-in-out infinite alternate;
}
@keyframes df4-ceiling { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes df4-pillar { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes df4-guide { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes df4-follower { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes df4-beam { 0% { opacity:0.4; transform: rotate(-2deg) scaleY(0.9); } 50% { opacity:0.8; transform: rotate(0deg) scaleY(1); } 100% { opacity:0.5; transform: rotate(2deg) scaleY(0.95); } }

/* Scene: critic-rights (calm, bright-interior) */
.scn-strategic-manoeuvring-critic-rights {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e7d5b8 40%, #d8c4a0 100%),
    radial-gradient(ellipse at 60% 30%, #fdf6e3 0%, transparent 60%);
}
.scn-strategic-manoeuvring-critic-rights .room-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, #e7d5b8 0%, #d4c095 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.1);
}
.scn-strategic-manoeuvring-critic-rights .window {
  position: absolute; top: 10%; left: 60%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #cfe0e8 0%, #a8c8d8 100%);
  border-radius: 4px; border: 6px solid #a08060; box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: smcr-bright 8s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-critic-rights .light-beam {
  position: absolute; top: 15%; left: 62%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(255,250,230,0.5) 0%, rgba(255,245,210,0.1) 100%);
  filter: blur(10px); transform: skewX(-5deg); animation: smcr-glow 6s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-critic-rights .lectern {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 22%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5c4328 100%);
  border-radius: 6px 6px 4px 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-critic-rights .figure {
  position: absolute; bottom: 15%; left: 38%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smcr-figure 12s ease-in-out infinite;
}
.scn-strategic-manoeuvring-critic-rights .book-left {
  position: absolute; bottom: 10%; left: 30%; width: 14%; height: 8%;
  background: #7a6040; border-radius: 4px 12px 12px 4px; transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: smcr-book 15s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-critic-rights .book-right {
  position: absolute; bottom: 12%; left: 46%; width: 14%; height: 7%;
  background: #8b6f4a; border-radius: 12px 4px 4px 12px; transform: rotate(5deg);
  box-shadow: -2px 2px 6px rgba(0,0,0,0.2); animation: smcr-book 15s ease-in-out infinite alternate-reverse;
}
.scn-strategic-manoeuvring-critic-rights .paper {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 10%;
  background: #f5f0e0; border-radius: 2px; transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: smcr-paper 20s ease-in-out infinite;
}
@keyframes smcr-bright { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,255,200,0.5); } 100% { opacity: 0.85; } }
@keyframes smcr-glow { 0% { opacity: 0.3; transform: skewX(-5deg) translateX(0); } 50% { opacity: 0.7; transform: skewX(-3deg) translateX(5px); } 100% { opacity: 0.4; transform: skewX(-6deg) translateX(-2px); } }
@keyframes smcr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes smcr-book { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes smcr-paper { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }

/* Scene: comprehensive-principle (calm, bright-interior) */
.scn-strategic-manoeuvring-comprehensive-principle {
  background:
    linear-gradient(180deg, #f2e6d0 0%, #e3d0b0 50%, #d2be98 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 70%);
}
.scn-strategic-manoeuvring-comprehensive-principle .book-cover {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #6b4e3a 0%, #4a3424 100%);
  border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); animation: smcp-breathe 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-comprehensive-principle .page-left {
  position: absolute; bottom: 22%; left: 22%; width: 27%; height: 48%;
  background: linear-gradient(135deg, #f8f0e0 0%, #ede4d0 100%);
  border-radius: 4px 0 0 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.05);
  animation: smcp-page-left 12s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-comprehensive-principle .page-right {
  position: absolute; bottom: 22%; left: 51%; width: 27%; height: 48%;
  background: linear-gradient(225deg, #f8f0e0 0%, #ede4d0 100%);
  border-radius: 0 4px 4px 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.05);
  animation: smcp-page-right 12s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-comprehensive-principle .spine {
  position: absolute; bottom: 22%; left: 49%; width: 2%; height: 48%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-strategic-manoeuvring-comprehensive-principle .quill {
  position: absolute; bottom: 45%; left: 53%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #d4c4a0 0%, #a08870 100%);
  border-radius: 50% 50% 2px 2px; transform: rotate(15deg);
  animation: smcp-quill 6s ease-in-out infinite;
}
.scn-strategic-manoeuvring-comprehensive-principle .light-source {
  position: absolute; top: 5%; right: 10%; width: 15%; height: 20%;
  background: radial-gradient(circle at 50% 100%, #fef6e0 0%, #fef0c0 40%, rgba(255,240,190,0) 70%);
  filter: blur(20px); animation: smcp-light 5s ease-in-out infinite alternate;
}
@keyframes smcp-breathe { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes smcp-page-left { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(2deg); } 100% { transform: rotateY(-1deg); } }
@keyframes smcp-page-right { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-2deg); } 100% { transform: rotateY(1deg); } }
@keyframes smcp-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-4px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes smcp-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }

/* Scene: general's-scale (calm, bright-interior) */
.scn-strategic-manoeuvring-generals-scale {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #dac8b0 50%, #ccb8a0 100%),
    radial-gradient(ellipse at 50% 70%, #f5f0e0 0%, transparent 80%);
}
.scn-strategic-manoeuvring-generals-scale .table {
  position: absolute; top: 40%; left: 5%; width: 90%; height: 55%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 12px 12px 0 0; box-shadow: 0 -8px 40px rgba(0,0,0,0.15);
  animation: smgs-table 10s ease-in-out infinite;
}
.scn-strategic-manoeuvring-generals-scale .map {
  position: absolute; top: 42%; left: 12%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, #f0e8d8 0%, #d8d0b8 70%, #b8a890 100%);
  border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  animation: smgs-map 15s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-generals-scale .soldier-left {
  position: absolute; bottom: 30%; left: 20%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.8); animation: smgs-soldier 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-generals-scale .soldier-right {
  position: absolute; bottom: 28%; left: 50%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.8); animation: smgs-soldier 8s ease-in-out infinite 2s;
}
.scn-strategic-manoeuvring-generals-scale .scale-model {
  position: absolute; bottom: 32%; left: 38%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px; box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: smgs-scale 12s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-generals-scale .hand {
  position: absolute; bottom: 55%; left: 55%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89868 100%);
  border-radius: 50% 30% 30% 50% / 40% 40% 50% 50%;
  transform: rotate(-15deg); animation: smgs-hand 6s ease-in-out infinite;
}
.scn-strategic-manoeuvring-generals-scale .candle {
  position: absolute; bottom: 50%; right: 10%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(255,200,100,0.4);
  animation: smgs-candle 4s ease-in-out infinite alternate;
}
@keyframes smgs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); box-shadow: 0 -12px 60px rgba(0,0,0,0.2); } 100% { transform: translateY(0); } }
@keyframes smgs-map { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(-1deg); } 100% { transform: scale(0.98) rotate(1deg); } }
@keyframes smgs-soldier { 0% { transform: scale(0.8) translateX(0) rotate(0deg); } 50% { transform: scale(0.82) translateX(3px) rotate(2deg); } 100% { transform: scale(0.8) translateX(0) rotate(-1deg); } }
@keyframes smgs-scale { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(0.98) translateY(0); } }
@keyframes smgs-hand { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-18deg) translateX(-2px); } }
@keyframes smgs-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(0.95); } }

/* Scene: 1758-french (tense, overcast) */
.scn-strategic-manoeuvring-1758-french {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #5a6a7a 0%, transparent 70%);
}
.scn-strategic-manoeuvring-1758-french .sky {
  position: absolute; inset: 0 0 50% 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%);
  animation: sm17-sky 20s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-1758-french .ground {
  position: absolute; top: 50%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 40px rgba(0,0,0,0.4);
  animation: sm17-ground 15s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-1758-french .fortress {
  position: absolute; bottom: 35%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  clip-path: polygon(0% 100%, 5% 70%, 10% 100%, 20% 60%, 30% 100%, 40% 50%, 50% 100%, 60% 60%, 70% 100%, 80% 50%, 90% 100%, 95% 70%, 100% 100%);
  animation: sm17-fortress 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-1758-french .flag {
  position: absolute; bottom: 55%; left: 42%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 50% 50%; transform-origin: bottom center;
  animation: sm17-flag 3s ease-in-out infinite;
}
.scn-strategic-manoeuvring-1758-french .figure-a {
  position: absolute; bottom: 30%; left: 15%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9); animation: sm17-march-a 10s ease-in-out infinite;
}
.scn-strategic-manoeuvring-1758-french .figure-b {
  position: absolute; bottom: 32%; left: 60%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9) scaleX(-1); animation: sm17-march-b 12s ease-in-out infinite 3s;
}
.scn-strategic-manoeuvring-1758-french .tree {
  position: absolute; bottom: 30%; right: 8%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: sm17-tree 20s ease-in-out infinite alternate;
}
@keyframes sm17-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes sm17-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes sm17-fortress { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sm17-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes sm17-march-a { 0% { transform: scale(0.9) translateX(0) rotate(0deg); } 50% { transform: scale(0.92) translateX(8px) rotate(2deg); } 100% { transform: scale(0.9) translateX(16px) rotate(-1deg); } }
@keyframes sm17-march-b { 0% { transform: scale(0.9) scaleX(-1) translateX(0) rotate(0deg); } 50% { transform: scale(0.92) scaleX(-1) translateX(-8px) rotate(2deg); } 100% { transform: scale(0.9) scaleX(-1) translateX(-16px) rotate(-1deg); } }
@keyframes sm17-tree { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-3px); } 100% { transform: scaleY(0.97) translateY(2px); } }

/* scene 1: defence-of-theatre-what-if-missed */
.scn-defence-of-theatre-what-if-missed {
  background:
    linear-gradient(180deg, #d4c5a9 0%, #b8a58d 40%, #8c7b64 100%),
    radial-gradient(ellipse at 40% 30%, #f5e6c8 0%, transparent 60%);
}
.scn-defence-of-theatre-what-if-missed .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #e0d2b8 0%, #cbb99b 60%, #b09e80 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 0 70%);
}
.scn-defence-of-theatre-what-if-missed .desk {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5e4226 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-defence-of-theatre-what-if-missed .map {
  position: absolute; bottom: 32%; left: 25%; width: 40%; height: 28%;
  background: linear-gradient(135deg, #d9c8a0 0%, #bca782 50%, #a48e6a 100%);
  border: 2px solid #8c6e4a; border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dot1-map 12s ease-in-out infinite alternate;
}
@keyframes dot1-map {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-1px) rotate(0.5deg); }
  100% { transform: translate(0,0) rotate(-0.5deg); }
}
.scn-defence-of-theatre-what-if-missed .candle {
  position: absolute; bottom: 42%; left: 42%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #e8c878 40%, #d4a040 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(240,200,100,0.6);
  transform-origin: bottom center;
  animation: dot1-candle 4s ease-in-out infinite alternate;
}
@keyframes dot1-candle {
  0% { transform: rotate(-1deg) scaleY(1); box-shadow: 0 0 15px 6px rgba(240,200,100,0.5); }
  50% { transform: rotate(2deg) scaleY(1.02); box-shadow: 0 0 25px 10px rgba(240,200,100,0.7); }
  100% { transform: rotate(-2deg) scaleY(0.98); box-shadow: 0 0 18px 7px rgba(240,200,100,0.6); }
}
.scn-defence-of-theatre-what-if-missed .figure {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dot1-figure 8s ease-in-out infinite;
}
@keyframes dot1-figure {
  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-defence-of-theatre-what-if-missed .chair {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6b4d30 0%, #4e351d 100%);
  border-radius: 6px 6px 4px 4px;
}
.scn-defence-of-theatre-what-if-missed .shadow-fig {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  background: rgba(0,0,0,0.15);
  filter: blur(8px);
  animation: dot1-shadow 6s ease-in-out infinite alternate;
}
@keyframes dot1-shadow {
  0% { transform: skew(-5deg) scaleX(1); opacity: 0.8; }
  50% { transform: skew(5deg) scaleX(0.9); opacity: 1; }
  100% { transform: skew(-5deg) scaleX(1); opacity: 0.8; }
}
.scn-defence-of-theatre-what-if-missed .glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 42% 42%, rgba(240,200,100,0.15) 0%, transparent 60%);
  animation: dot1-glow 5s ease-in-out infinite alternate;
}
@keyframes dot1-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

/* scene 2: defence-of-theatre-options */
.scn-defence-of-theatre-options {
  background:
    linear-gradient(180deg, #d9c9b0 0%, #bca88c 50%, #9e876a 100%),
    radial-gradient(ellipse at 60% 40%, #f2e2c8 0%, transparent 50%);
}
.scn-defence-of-theatre-options .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d8be 0%, #d0bfa2 50%, #b5a384 100%);
  clip-path: polygon(0 0, 100% 0, 100% 65%, 0 65%);
}
.scn-defence-of-theatre-options .desk {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 28%;
  background: linear-gradient(180deg, #7e613f 0%, #5e462b 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-options .papers {
  position: absolute; bottom: 35%; left: 20%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #f5ead0 0%, #e3d3b6 50%, #ccb999 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: dot2-papers 15s ease-in-out infinite alternate;
}
@keyframes dot2-papers {
  0% { transform: scale(1) rotate(0deg); }
  25% { transform: scale(1.01) rotate(1deg); }
  50% { transform: scale(0.99) rotate(-1deg); }
  75% { transform: scale(1.02) rotate(0.5deg); }
  100% { transform: scale(1) rotate(0deg); }
}
.scn-defence-of-theatre-options .quill {
  position: absolute; bottom: 40%; left: 35%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #d4b896 0%, #b0956d 60%, #8a704c 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: dot2-quill 5s ease-in-out infinite;
}
@keyframes dot2-quill {
  0% { transform: rotate(-5deg) scaleY(1); }
  25% { transform: rotate(8deg) scaleY(1.05); }
  50% { transform: rotate(-3deg) scaleY(0.95); }
  75% { transform: rotate(10deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
.scn-defence-of-theatre-options .inkwell {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 16px;
  background: #3a2a1a; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-options .candle {
  position: absolute; bottom: 42%; left: 60%; width: 8px; height: 36px;
  background: linear-gradient(180deg, #f2dca8 0%, #e8c878 30%, #d4a040 100%);
  border-radius: 4px; box-shadow: 0 0 18px 6px rgba(240,200,100,0.5);
  animation: dot2-candle 3s ease-in-out infinite alternate;
}
@keyframes dot2-candle {
  0% { transform: rotate(-2deg) scaleY(1); box-shadow: 0 0 12px 4px rgba(240,200,100,0.4); }
  50% { transform: rotate(3deg) scaleY(1.03); box-shadow: 0 0 24px 8px rgba(240,200,100,0.7); }
  100% { transform: rotate(-2deg) scaleY(0.97); box-shadow: 0 0 15px 5px rgba(240,200,100,0.5); }
}
.scn-defence-of-theatre-options .figure {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3d2c1a 0%, #1e140c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dot2-figure 10s ease-in-out infinite;
}
@keyframes dot2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(4px) rotate(2deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(-4px) rotate(-2deg); }
  80% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-defence-of-theatre-options .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 35px;
  background: rgba(0,0,0,0.12); filter: blur(10px);
  animation: dot2-shadow 8s ease-in-out infinite alternate;
}
@keyframes dot2-shadow {
  0% { transform: skewX(-8deg) scaleX(1); opacity: 0.7; }
  50% { transform: skewX(8deg) scaleX(0.85); opacity: 1; }
  100% { transform: skewX(-8deg) scaleX(1); opacity: 0.7; }
}

/* scene 3: defence-of-theatre-comm-ineffective */
.scn-defence-of-theatre-comm-ineffective {
  background:
    linear-gradient(180deg, #cbb89d 0%, #b09c80 40%, #937e62 100%),
    radial-gradient(ellipse at 30% 50%, #e3d2b8 0%, transparent 50%);
}
.scn-defence-of-theatre-comm-ineffective .table {
  position: absolute; bottom: 18%; left: 5%; width: 90%; height: 32%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5e4226 100%);
  border-radius: 6px; box-shadow: 0 -6px 14px rgba(0,0,0,0.4);
}
.scn-defence-of-theatre-comm-ineffective .map {
  position: absolute; bottom: 30%; left: 20%; width: 55%; height: 25%;
  background: linear-gradient(135deg, #d4c2a2 0%, #baa787 40%, #a38e6e 100%);
  border: 2px solid #6b4e2e; border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-comm-ineffective .marker {
  position: absolute; bottom: 32%; left: 45%; width: 6px; height: 14px;
  background: #a0461a; border-radius: 3px;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.4);
  animation: dot3-marker 9s ease-in-out infinite alternate;
}
@keyframes dot3-marker {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(8px,-2px) rotate(15deg); }
  50% { transform: translate(16px,0) rotate(0deg); }
  75% { transform: translate(8px,2px) rotate(-15deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
.scn-defence-of-theatre-comm-ineffective .lamp {
  position: absolute; bottom: 38%; left: 30%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8c878 0%, #c89a3a 100%);
  border-radius: 5px; box-shadow: 0 0 18px 6px rgba(200,154,58,0.5);
  transform-origin: bottom center;
  animation: dot3-lamp 5s ease-in-out infinite alternate;
}
@keyframes dot3-lamp {
  0% { transform: rotate(-3deg) scaleY(1); box-shadow: 0 0 12px 4px rgba(200,154,58,0.4); }
  50% { transform: rotate(4deg) scaleY(1.02); box-shadow: 0 0 24px 8px rgba(200,154,58,0.7); }
  100% { transform: rotate(-3deg) scaleY(0.98); box-shadow: 0 0 15px 5px rgba(200,154,58,0.5); }
}
.scn-defence-of-theatre-comm-ineffective .chair {
  position: absolute; bottom: 16%; left: 15%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #6b4d30 0%, #4e351d 100%);
  border-radius: 5px;
}
.scn-defence-of-theatre-comm-ineffective .hand {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 20px;
  background: #b89a7a; border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: dot3-hand 7s ease-in-out infinite;
}
@keyframes dot3-hand {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(-10deg) scaleX(0.9); }
  50% { transform: rotate(0deg) scaleX(1); }
  75% { transform: rotate(10deg) scaleX(0.9); }
  100% { transform: rotate(0deg) scaleX(1); }
}
.scn-defence-of-theatre-comm-ineffective .shadow-map {
  position: absolute; bottom: 28%; left: 20%; width: 55%; height: 25%;
  background: rgba(0,0,0,0.08); filter: blur(6px);
  animation: dot3-shadow 14s ease-in-out infinite alternate;
}
@keyframes dot3-shadow {
  0% { transform: scale(0.98) translateX(0); opacity: 0.6; }
  50% { transform: scale(1) translateX(5px); opacity: 1; }
  100% { transform: scale(0.98) translateX(0); opacity: 0.6; }
}

/* scene 4: defence-of-theatre-divided-danger */
.scn-defence-of-theatre-divided-danger {
  background:
    linear-gradient(180deg, #b5a084 0%, #937e62 40%, #6a5a44 100%),
    radial-gradient(ellipse at 50% 30%, #cbb59a 0%, transparent 60%);
}
.scn-defence-of-theatre-divided-danger .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c1ae94 0%, #a4957c 60%, #8a7b64 100%);
  clip-path: polygon(0 0, 100% 0, 100% 60%, 0 60%);
  animation: dot4-wall 8s ease-in-out infinite alternate;
}
@keyframes dot4-wall {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.9); }
}
.scn-defence-of-theatre-divided-danger .desk {
  position: absolute; bottom: 20%; left: 8%; width: 84%; height: 30%;
  background: linear-gradient(180deg, #5e4226 0%, #42301a 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-defence-of-theatre-divided-danger .papers-scatter {
  position: absolute; bottom: 32%; left: 15%; width: 60%; height: 15%;
  background: linear-gradient(135deg, #dad0b6 0%, #c4b69c 50%, #a9987c 100%);
  border-radius: 2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: dot4-papers 11s ease-in-out infinite alternate;
}
@keyframes dot4-papers {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  30% { transform: translate(4px,-3px) rotate(2deg) scale(1.01); }
  60% { transform: translate(-3px,2px) rotate(-1.5deg) scale(0.99); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
.scn-defence-of-theatre-divided-danger .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #e8c878 0%, #c89a3a 100%);
  border-radius: 7px; box-shadow: 0 0 28px 12px rgba(200,154,58,0.5);
  transform-origin: bottom center;
  animation: dot4-lamp 2s ease-in-out infinite alternate;
}
@keyframes dot4-lamp {
  0% { transform: rotate(-6deg) scaleY(1); box-shadow: 0 0 18px 6px rgba(200,154,58,0.4); }
  25% { transform: rotate(4deg) scaleY(1.03); box-shadow: 0 0 30px 10px rgba(200,154,58,0.7); }
  50% { transform: rotate(-8deg) scaleY(0.97); box-shadow: 0 0 22px 8px rgba(200,154,58,0.6); }
  75% { transform: rotate(6deg) scaleY(1.02); box-shadow: 0 0 34px 12px rgba(200,154,58,0.8); }
  100% { transform: rotate(-6deg) scaleY(1); box-shadow: 0 0 18px 6px rgba(200,154,58,0.4); }
}
.scn-defence-of-theatre-divided-danger .figure-tense {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dot4-figure 4s ease-in-out infinite;
}
@keyframes dot4-figure {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  20% { transform: translateX(2px) rotate(4deg) scale(1.01); }
  40% { transform: translateX(0) rotate(0deg) scale(1); }
  60% { transform: translateX(-2px) rotate(-4deg) scale(0.99); }
  80% { transform: translateX(1px) rotate(2deg) scale(1.01); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
.scn-defence-of-theatre-divided-danger .foreground-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: rgba(0,0,0,0.2); filter: blur(10px);
  animation: dot4-fgshadow 5s ease-in-out infinite alternate;
}
@keyframes dot4-fgshadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.5; transform: scaleY(1); }
}
.scn-defence-of-theatre-divided-danger .glow-tense {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,154,58,0.2) 0%, transparent 60%);
  animation: dot4-glow 3s ease-in-out infinite alternate;
}
@keyframes dot4-glow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-plan-war-tendency {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2c241e 40%, #3d3028 100%),
    radial-gradient(ellipse at 60% 30%, #3d3028 0%, transparent 70%);
}
.scn-plan-war-tendency .wall  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2c241e 0%, #1e1a16 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 4px 20px rgba(0,0,0,.6); }
.scn-plan-war-tendency .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3d3028 0%, #1e1a16 100%); border-radius:30% 20% 0 0 / 20% 10% 0 0; }
.scn-plan-war-tendency .desk  { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3e32 0%, #2a221c 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 6px 30px rgba(0,0,0,.7); transform:perspective(400px) rotateX(15deg); }
.scn-plan-war-tendency .map   { position:absolute; bottom:23%; left:28%; width:44%; height:14%; background: linear-gradient(135deg, #b8a88a 0%, #9a8668 50%, #7a6a52 100%); border-radius:2% 8% 4% 6%; box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.5); transform:perspective(300px) rotateX(10deg); opacity:.9; }
.scn-plan-war-tendency .candle-glow { position:absolute; bottom:32%; left:55%; width:22px; height:26px; background: radial-gradient(circle, #ffd080 0%, #e8a050 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(232,160,80,.4), 0 0 80px 40px rgba(232,160,80,.15); animation: pwt-candle 4s ease-in-out infinite alternate; }
.scn-plan-war-tendency .candle-body { position:absolute; bottom:30%; left:56%; width:8px; height:32px; background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform:translateX(-50%); }
.scn-plan-war-tendency .commander { position:absolute; bottom:20%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pwt-commander 6s ease-in-out infinite; }
.scn-plan-war-tendency .paper   { position:absolute; bottom:22%; right:25%; width:30px; height:22px; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:2% 4% 6% 4%; transform:rotate(12deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: pwt-paper 8s ease-in-out infinite alternate; }
@keyframes pwt-candle { 0% { opacity:.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.75; transform:scale(.95); } }
@keyframes pwt-commander { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pwt-paper { 0% { transform:rotate(12deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } 100% { transform:rotate(14deg) translateY(0); } }

.scn-defensive-minor-points-few {
  background:
    linear-gradient(180deg, #2a282a 0%, #3a383a 40%, #2e2c2e 100%),
    radial-gradient(ellipse at 80% 60%, #4a484a 0%, transparent 60%);
}
.scn-defensive-minor-points-few .stone-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a484a 0%, #2a282a 100%); border-radius:0 0 10% 10% / 0 0 5% 5%; box-shadow: inset 0 8px 30px rgba(0,0,0,.7); }
.scn-defensive-minor-points-few .window { position:absolute; top:15%; left:20%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, #5a6a8a 0%, #2a3a5a 70%); border:4px solid #3a3a3a; border-radius:10% 10% 20% 20%; box-shadow: 0 0 30px 10px rgba(90,106,138,.3); animation: dmf-sky 12s ease-in-out infinite alternate; }
.scn-defensive-minor-points-few .sill { position:absolute; top:43%; left:19%; width:27%; height:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-defensive-minor-points-few .lantern { position:absolute; bottom:22%; right:25%; width:14px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 12px rgba(200,160,80,.4); }
.scn-defensive-minor-points-few .soldier { position:absolute; bottom:16%; left:30%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dmf-soldier 8s ease-in-out infinite; }
.scn-defensive-minor-points-few .shield { position:absolute; bottom:22%; left:36%; width:20px; height:26px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20%; transform:rotate(15deg); box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-defensive-minor-points-few .shadow-bar { position:absolute; bottom:5%; left:0; right:0; height:12%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); border-radius:30% 30% 0 0; }
@keyframes dmf-sky { 0% { opacity:1; } 50% { opacity:.6; } 100% { opacity:.9; } }
@keyframes dmf-soldier { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }

.scn-failure-compensated-principle {
  background:
    linear-gradient(180deg, #2a1a1e 0%, #3a202a 50%, #1e1216 100%),
    radial-gradient(ellipse at 50% 40%, #4a303a 0%, transparent 80%);
}
.scn-failure-compensated-principle .bg-cell { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(30,18,22,.4) 0px, transparent 4px); animation: fcp-flicker 3s ease-in-out infinite alternate; }
.scn-failure-compensated-principle .table { position:absolute; bottom:15%; left:10%; width:80%; height:22%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius:8% 8% 20% 20%; box-shadow: 0 10px 40px rgba(0,0,0,.8); transform:perspective(300px) rotateX(20deg); }
.scn-failure-compensated-principle .map-spread { position:absolute; bottom:20%; left:20%; width:60%; height:16%; background: linear-gradient(135deg, #7a685a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:4% 8% 6% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); transform:perspective(200px) rotateX(10deg); }
.scn-failure-compensated-principle .hand-tense { position:absolute; bottom:22%; left:45%; width:20px; height:32px; background: radial-gradient(ellipse at 50% 0%, #4a3a2e 0%, #2a1e14 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(20deg); transform-origin:bottom; animation: fcp-hand .8s ease-in-out infinite alternate; }
.scn-failure-compensated-principle .candle-flicker { position:absolute; bottom:30%; left:55%; width:18px; height:30px; background: radial-gradient(circle, #ffc060 0%, #d08030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(208,128,48,.5), 0 0 100px 50px rgba(208,128,48,.2); animation: fcp-candle .6s ease-in-out infinite alternate; }
.scn-failure-compensated-principle .ink-pot { position:absolute; bottom:18%; right:25%; width:16px; height:18px; background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.7); }
.scn-failure-compensated-principle .paper-crumple { position:absolute; bottom:25%; right:15%; width:28px; height:20px; background: linear-gradient(180deg, #b8a88a 0%, #8a7a62 100%); border-radius:10% 30% 20% 40%; transform:rotate(-30deg); box-shadow: 0 2px 10px rgba(0,0,0,.4); animation: fcp-paper 4s ease-in-out infinite; }
.scn-failure-compensated-principle .figure-shadow { position:absolute; bottom:16%; left:35%; width:30px; height:58px; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.7; transform-origin:bottom; animation: fcp-figure 2s ease-in-out infinite alternate; }
@keyframes fcp-flicker { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes fcp-hand { 0% { transform:rotate(20deg) translateX(0); } 100% { transform:rotate(25deg) translateX(2px); } }
@keyframes fcp-candle { 0% { transform:scale(1); opacity:.7; } 50% { transform:scale(1.2); opacity:1; } 100% { transform:scale(.9); opacity:.6; } }
@keyframes fcp-paper { 0% { transform:rotate(-30deg) translateY(0); } 50% { transform:rotate(-28deg) translateY(-3px); } 100% { transform:rotate(-32deg) translateY(0); } }
@keyframes fcp-figure { 0% { transform:translateY(0) rotate(-1deg); } 100% { transform:translateY(-3px) rotate(2deg); } }

.scn-predominant-action-effort {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2c241e 40%, #3a3028 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a32 0%, transparent 70%);
}
.scn-predominant-action-effort .chamber-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a3028 0%, #1e1a16 100%); border-radius:0 0 15% 15% / 0 0 8% 8%; box-shadow: inset 0 8px 40px rgba(0,0,0,.7); }
.scn-predominant-action-effort .floor-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a221c 0%, #16120e 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; }
.scn-predominant-action-effort .central-marker { position:absolute; bottom:35%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #c8a060 0%, #8a6a40 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,160,96,.4), 0 0 80px 40px rgba(200,160,96,.15); animation: pae-marker 3s ease-in-out infinite alternate; }
.scn-predominant-action-effort .pointing-hand { position:absolute; bottom:25%; left:55%; width:18px; height:40px; background: radial-gradient(ellipse at 50% 0%, #4a3a2e 0%, #2a1e14 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(-15deg); transform-origin:bottom; animation: pae-point 4s ease-in-out infinite; }
.scn-predominant-action-effort .glow-radial { position:absolute; bottom:30%; left:50%; width:60%; height:30%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(200,160,96,.15) 0%, transparent 70%); pointer-events:none; }
.scn-predominant-action-effort .attendant-shadow { position:absolute; bottom:10%; left:30%; width:28px; height:48px; background: linear-gradient(180deg, #1e1612 0%, #0a0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.6; animation: pae-attendant 6s ease-in-out infinite alternate; }
.scn-predominant-action-effort .scroll { position:absolute; bottom:20%; right:20%; width:26px; height:16px; background: linear-gradient(180deg, #b8a88a 0%, #8a7a62 100%); border-radius:20% 10% 10% 20%; transform:rotate(20deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: pae-scroll 8s ease-in-out infinite; }
@keyframes pae-marker { 0% { transform:translateX(-50%) scale(1); opacity:.9; } 50% { transform:translateX(-50%) scale(1.1); opacity:1; } 100% { transform:translateX(-50%) scale(.95); opacity:.8; } }
@keyframes pae-point { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-12deg) translateY(-4px); } 100% { transform:rotate(-18deg) translateY(0); } }
@keyframes pae-attendant { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-5px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes pae-scroll { 0% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(22deg) translateY(-2px); } 100% { transform:rotate(18deg) translateY(0); } }

.scn-care-versus-impulse {
  background: 
    linear-gradient(180deg, #2b1e14 0%, #1a120b 50%, #0f0c08 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-care-versus-impulse .wall { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120b 100%); }
.scn-care-versus-impulse .table { position: absolute; bottom: 0; left: 5%; right: 5%; height: 55%; background: linear-gradient(180deg, #4a3520 0%, #2a1e12 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-care-versus-impulse .map { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 25%; background: linear-gradient(135deg, #d4c9a0 0%, #b8a87a 50%, #9c8c5e 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 0 30px rgba(0,0,0,.2); animation: cvsi-map 12s ease-in-out infinite alternate; }
.scn-care-versus-impulse .candle { position: absolute; bottom: 50%; left: 55%; width: 8px; height: 30px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a09070 100%); border-radius: 4px; box-shadow: 0 0 6px rgba(200,200,150,.3); }
.scn-care-versus-impulse .candle-glow { position: absolute; bottom: 52%; left: 55%; width: 20px; height: 40px; transform: translate(-50%,0); background: radial-gradient(ellipse, #ffb060 0%, #ff8030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,128,48,.4); animation: cvsi-flicker 3s ease-in-out infinite alternate; }
.scn-care-versus-impulse .figure { position: absolute; bottom: 35%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cvsi-figure 6s ease-in-out infinite; }
.scn-care-versus-impulse .shadow-figure { position: absolute; bottom: 12%; left: 45%; width: 80px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: cvsi-shadow 6s ease-in-out infinite; }

@keyframes cvsi-map { 0% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.02) rotate(0.5deg); } 100% { transform: scale(0.98) rotate(-0.5deg); } }
@keyframes cvsi-flicker { 0% { opacity: 0.8; transform: translate(-50%,0) scale(1); } 50% { opacity: 1; transform: translate(-50%,-2px) scale(1.05); } 100% { opacity: 0.85; transform: translate(-50%,0) scale(0.95); } }
@keyframes cvsi-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-0.5deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cvsi-shadow { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.9); } }

.scn-bonaparte-1812-campaign-judged {
  background: 
    linear-gradient(180deg, #1e1a2e 0%, #141120 50%, #0e0c18 100%),
    radial-gradient(ellipse at 70% 50%, #2a2240 0%, transparent 60%);
}
.scn-bonaparte-1812-campaign-judged .room { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2240 0%, #141120 100%); }
.scn-bonaparte-1812-campaign-judged .desk { position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120b 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 -10px 25px rgba(0,0,0,.7); }
.scn-bonaparte-1812-campaign-judged .map-scroll { position: absolute; bottom: 35%; left: 25%; right: 25%; height: 20%; background: linear-gradient(135deg, #c8b898 0%, #a09570 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform: rotate(-3deg); animation: nj-map 15s ease-in-out infinite alternate; }
.scn-bonaparte-1812-campaign-judged .inkwell { position: absolute; bottom: 45%; left: 60%; width: 14px; height: 16px; background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-bonaparte-1812-campaign-judged .quill { position: absolute; bottom: 48%; left: 55%; width: 4px; height: 50px; background: linear-gradient(180deg, #e0d4c0 0%, #c0b4a0 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: 50% 100%; animation: nj-quill 8s ease-in-out infinite; }
.scn-bonaparte-1812-campaign-judged .silhouette { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 80px; background: #0e0c18; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: nj-figure 10s ease-in-out infinite; }
.scn-bonaparte-1812-campaign-judged .candle-stick { position: absolute; bottom: 45%; left: 75%; width: 6px; height: 36px; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); border-radius: 3px; }
.scn-bonaparte-1812-campaign-judged .flame-glow { position: absolute; bottom: 48%; left: 75%; width: 16px; height: 30px; transform: translate(-50%,0); background: radial-gradient(ellipse, #ff9020 0%, #ff6020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(255,96,32,.4); animation: nj-flame 4s ease-in-out infinite alternate; }

@keyframes nj-map { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(0.98); } }
@keyframes nj-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(1px); } }
@keyframes nj-flame { 0% { opacity: 0.7; transform: translate(-50%,0) scale(1); } 50% { opacity: 1; transform: translate(-50%,-3px) scale(1.08); } 100% { opacity: 0.8; transform: translate(-50%,0) scale(0.95); } }
@keyframes nj-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-moskow-peace-object {
  background: 
    linear-gradient(180deg, #1a1620 0%, #100d14 50%, #08060a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-moskow-peace-object .back-wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a101a 100%); }
.scn-moskow-peace-object .window-frame { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 60%; border: 8px solid #3a2a1a; border-radius: 6px; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-moskow-peace-object .moscow-skyline { position: absolute; bottom: 30%; left: 15%; right: 15%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 5% 60%, 10% 70%, 15% 50%, 20% 65%, 25% 45%, 30% 60%, 35% 40%, 40% 55%, 45% 35%, 50% 50%, 55% 30%, 60% 45%, 65% 25%, 70% 40%, 75% 20%, 80% 35%, 85% 15%, 90% 30%, 95% 10%, 100% 0%, 100% 100%); opacity: 0.6; animation: mpo-skyline 20s ease-in-out infinite alternate; }
.scn-moskow-peace-object .distant-fire { position: absolute; bottom: 40%; left: 45%; width: 40px; height: 60px; background: radial-gradient(ellipse, #ff6020 0%, #ff3000 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,48,0,.5); animation: mpo-fire 6s ease-in-out infinite alternate; }
.scn-moskow-peace-object .figure-at-window { position: absolute; bottom: 10%; left: 40%; width: 24px; height: 80px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,.8); animation: mpo-figure 8s ease-in-out infinite; }
.scn-moskow-peace-object .curtain-left { position: absolute; bottom: 10%; left: 18%; width: 30px; height: 90%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 20px 20px 0; box-shadow: 4px 0 15px rgba(0,0,0,.5); animation: mpo-curtain-l 12s ease-in-out infinite alternate; }
.scn-moskow-peace-object .curtain-right { position: absolute; bottom: 10%; right: 18%; width: 30px; height: 90%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20px 0 0 20px; box-shadow: -4px 0 15px rgba(0,0,0,.5); animation: mpo-curtain-r 12s ease-in-out infinite alternate; }
.scn-moskow-peace-object .windowsill-candle { position: absolute; bottom: 10%; left: 50%; width: 8px; height: 20px; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); border-radius: 3px; box-shadow: 0 0 6px rgba(200,180,160,.3); }
.scn-moskow-peace-object .windowsill-candle::after { content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); width: 12px; height: 20px; background: radial-gradient(ellipse, #ffa040 0%, #ff6000 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 25px 8px rgba(255,96,0,.4); animation: mpo-candle 4s ease-in-out infinite alternate; }

/* Note: ::after pseudo-element used for candle glow; this is allowed (not a text element) */

@keyframes mpo-skyline { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(0.97) translateY(2px); } }
@keyframes mpo-fire { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes mpo-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mpo-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes mpo-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes mpo-candle { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }

.scn-bonaparte-consistent-action {
  background: 
    linear-gradient(180deg, #1c1824 0%, #120e1a 50%, #0a0810 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e2a 0%, transparent 60%);
}
.scn-bonaparte-consistent-action .study-wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #2a1e2a 0%, #120e1a 100%); }
.scn-bonaparte-consistent-action .writing-desk { position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120b 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,.6); }
.scn-bonaparte-consistent-action .papers { position: absolute; bottom: 25%; left: 25%; right: 25%; height: 15%; background: linear-gradient(135deg, #d4c9a0 0%, #b8a87a 100%); border-radius: 2px; box-shadow: 0 3px 8px rgba(0,0,0,.4); transform: rotate(2deg); animation: bca-papers 18s ease-in-out infinite alternate; }
.scn-bonaparte-consistent-action .hand-writing { position: absolute; bottom: 28%; left: 40%; width: 16px; height: 30px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-20deg); transform-origin: 50% 100%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bca-hand 6s ease-in-out infinite; }
.scn-bonaparte-consistent-action .candle-light { position: absolute; bottom: 35%; left: 65%; width: 8px; height: 28px; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); border-radius: 4px; }
.scn-bonaparte-consistent-action .candle-light::after { content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); width: 16px; height: 24px; background: radial-gradient(ellipse, #ffa040 0%, #ff6010 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,96,16,.5); animation: bca-flame 4s ease-in-out infinite alternate; }
.scn-bonaparte-consistent-action .book-spine { position: absolute; bottom: 15%; left: 10%; width: 12px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4); }
.scn-bonaparte-consistent-action .ink-horn { position: absolute; bottom: 20%; left: 55%; width: 10px; height: 14px; background: radial-gradient(circle at 50% 30%, #1a0a00 0%, #0a0000 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }

@keyframes bca-papers { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(1px); } }
@keyframes bca-hand { 0% { transform: rotate(-20deg) translateX(0); } 25% { transform: rotate(-15deg) translateX(2px); } 50% { transform: rotate(-22deg) translateX(-1px); } 75% { transform: rotate(-18deg) translateX(1px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes bca-flame { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }

/* one block per scene id. Append to style.css. */
.scn-passage-of-rivers-two-ways { background: linear-gradient(180deg, #b8d8e8 0%, #d8e8f0 30%, #f0e8c8 60%, #c8b888 100%), radial-gradient(ellipse at 50% 0%, #fce8b0 0%, transparent 60%); }
.scn-passage-of-rivers-two-ways .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c8e0f0 0%, #e8f0f8 100%); animation: p2r-sky 20s ease-in-out infinite alternate; }
.scn-passage-of-rivers-two-ways .river-left { position:absolute; bottom:20%; left:10%; width:35%; height:40%; background: linear-gradient(90deg, #7890a0 0%, #a0b8c8 50%, #7890a0 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; opacity:0.8; animation: p2r-flow-left 8s ease-in-out infinite alternate; }
.scn-passage-of-rivers-two-ways .river-right { position:absolute; bottom:20%; right:10%; width:35%; height:40%; background: linear-gradient(90deg, #7890a0 0%, #a0b8c8 50%, #7890a0 100%); border-radius: 40% 0 0 40% / 60% 0 0 60%; opacity:0.8; animation: p2r-flow-right 8s ease-in-out infinite alternate; }
.scn-passage-of-rivers-two-ways .boat { position:absolute; bottom:30%; left:42%; width:40px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-2deg); animation: p2r-boat 6s ease-in-out infinite; }
.scn-passage-of-rivers-two-ways .bridge { position:absolute; bottom:35%; left:25%; width:50%; height:8px; background: linear-gradient(90deg, #8a7a6a 0%, #b8a898 50%, #8a7a6a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); animation: p2r-bridge 12s ease-in-out infinite alternate; }
.scn-passage-of-rivers-two-ways .tree { position:absolute; bottom:25%; width:14px; height:40px; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; }
.scn-passage-of-rivers-two-ways .tree-1 { left:30%; animation: p2r-tree1 9s ease-in-out infinite; }
.scn-passage-of-rivers-two-ways .tree-2 { right:30%; height:50px; animation: p2r-tree2 11s ease-in-out infinite; }
.scn-passage-of-rivers-two-ways .mist { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(200,210,220,0) 0%, rgba(200,210,220,0.4) 100%); filter: blur(8px); animation: p2r-mist 15s ease-in-out infinite alternate; }
@keyframes p2r-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes p2r-flow-left { 0% { transform: translateX(0) skewX(2deg) } 50% { transform: translateX(5px) skewX(-1deg) } 100% { transform: translateX(0) skewX(0) } }
@keyframes p2r-flow-right { 0% { transform: translateX(0) skewX(-2deg) } 50% { transform: translateX(-5px) skewX(1deg) } 100% { transform: translateX(0) skewX(0) } }
@keyframes p2r-boat { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(4px,-2px) rotate(1deg) } 50% { transform: translate(0,0) rotate(-1deg) } 75% { transform: translate(-4px,-1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes p2r-bridge { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes p2r-tree1 { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes p2r-tree2 { 0% { transform: scale(1) } 50% { transform: scale(0.97) } 100% { transform: scale(1) } }
@keyframes p2r-mist { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-attack-on-defensive-positions { background: linear-gradient(180deg, #c8d8e0 0%, #e0e8e8 40%, #b8b8a8 70%, #908888 100%), radial-gradient(ellipse at 50% 100%, #e8e0d0 0%, transparent 70%); }
.scn-attack-on-defensive-positions .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8e8f0 0%, #f0f0e0 100%); animation: aod-sky 18s ease-in-out infinite alternate; }
.scn-attack-on-defensive-positions .hills-bg { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #9a9a8a 0%, #7a7a6a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: aod-hills 22s ease-in-out infinite alternate; }
.scn-attack-on-defensive-positions .wall { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: aod-wall 10s ease-in-out infinite; }
.scn-attack-on-defensive-positions .bastion { position:absolute; bottom:20%; width:15%; height:40%; background: linear-gradient(180deg, #a89888 0%, #887868 100%); border-radius: 10% 10% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-attack-on-defensive-positions .bastion-left { left:15%; animation: aod-bastion-l 14s ease-in-out infinite; }
.scn-attack-on-defensive-positions .bastion-right { right:15%; animation: aod-bastion-r 14s ease-in-out infinite alternate; }
.scn-attack-on-defensive-positions .moat { position:absolute; bottom:18%; left:18%; width:64%; height:6%; background: linear-gradient(180deg, #6080a0 0%, #507090 100%); border-radius: 30% 30% 40% 40%; opacity:0.6; animation: aod-moat 25s ease-in-out infinite alternate; }
.scn-attack-on-defensive-positions .flag { position:absolute; bottom:45%; left:48%; width:4px; height:20px; background: #8a7050; transform-origin: bottom center; animation: aod-flag 3s ease-in-out infinite; }
.scn-attack-on-defensive-positions .flag::after { content:''; position:absolute; top:2px; left:4px; width:12px; height:8px; background: #a06040; border-radius: 0 40% 40% 0; } /* small flag shape */
.scn-attack-on-defensive-positions .cannon { position:absolute; bottom:22%; left:28%; width:30px; height:10px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 40% 10% 10% 40%; transform: rotate(10deg); animation: aod-cannon 12s ease-in-out infinite; }
@keyframes aod-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes aod-hills { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes aod-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes aod-bastion-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes aod-bastion-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1.02) } }
@keyframes aod-moat { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.05) } 100% { opacity:0.5; transform: scaleY(1) } }
@keyframes aod-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes aod-cannon { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }

.scn-attack-on-entrenched-camp { background: linear-gradient(180deg, #c0b088 0%, #d8c8a0 40%, #b8a880 70%, #988860 100%), radial-gradient(ellipse at 50% 0%, #f0e0b0 0%, transparent 60%); }
.scn-attack-on-entrenched-camp .ground { position:absolute; inset:40% 0 0 0; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; animation: aoe-ground 20s ease-in-out infinite alternate; }
.scn-attack-on-entrenched-camp .trench { position:absolute; bottom:30%; left:10%; width:80%; height:4%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 40% 40%; animation: aoe-trench 15s ease-in-out infinite; }
.scn-attack-on-entrenched-camp .tent { position:absolute; bottom:25%; width:40px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); } /* triangle tents */
.scn-attack-on-entrenched-camp .tent-1 { left:20%; animation: aoe-tent1 9s ease-in-out infinite; }
.scn-attack-on-entrenched-camp .tent-2 { left:40%; width:30px; height:24px; animation: aoe-tent2 11s ease-in-out infinite; }
.scn-attack-on-entrenched-camp .tent-3 { right:20%; width:45px; height:28px; animation: aoe-tent3 13s ease-in-out infinite; }
.scn-attack-on-entrenched-camp .campfire { position:absolute; bottom:22%; left:50%; width:16px; height:16px; margin-left:-8px; background: radial-gradient(circle, #f0c060 0%, #c08030 60%, #8a5020 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.6); animation: aoe-fire 3s ease-in-out infinite alternate; }
.scn-attack-on-entrenched-camp .smoke { position:absolute; bottom:32%; left:49%; width:20px; height:30px; background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 70%); filter: blur(6px); animation: aoe-smoke 7s ease-in-out infinite; }
@keyframes aoe-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes aoe-trench { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes aoe-tent1 { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(0.98) rotate(0deg) } }
@keyframes aoe-tent2 { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes aoe-tent3 { 0% { transform: scale(1) rotate(1deg) } 50% { transform: scale(0.98) rotate(-1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes aoe-fire { 0% { transform: scale(0.95); box-shadow: 0 0 20px 6px rgba(240,192,96,0.5) } 50% { transform: scale(1.05); box-shadow: 0 0 28px 12px rgba(240,192,96,0.8) } 100% { transform: scale(0.95); box-shadow: 0 0 20px 6px rgba(240,192,96,0.5) } }
@keyframes aoe-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 50% { transform: translate(-4px,-10px) scale(1.2); opacity:0.3 } 100% { transform: translate(2px,-20px) scale(1.5); opacity:0 } }

.scn-attack-entrenched-camp-rare { background: linear-gradient(180deg, #b0b8a8 0%, #d0d0c0 30%, #a8a090 70%, #808070 100%), radial-gradient(ellipse at 50% 100%, #e0d8c8 0%, transparent 60%); }
.scn-attack-entrenched-camp-rare .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d8c8 0%, #e0e8d8 100%); animation: aer-sky 25s ease-in-out infinite alternate; }
.scn-attack-entrenched-camp-rare .palisade { position:absolute; bottom:20%; left:10%; width:80%; height:25%; background: repeating-linear-gradient(90deg, #7a6a5a 0px, #7a6a5a 8px, #6a5a4a 8px, #6a5a4a 16px); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: aer-palisade 18s ease-in-out infinite; }
.scn-attack-entrenched-camp-rare .watchtower { position:absolute; bottom:20%; left:50%; margin-left:-12px; width:24px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 12px rgba(0,0,0,0.3); animation: aer-tower 12s ease-in-out infinite; }
.scn-attack-entrenched-camp-rare .tent { position:absolute; bottom:25%; width:36px; height:28px; background: linear-gradient(180deg, #c0b098 0%, #9a8a72 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); }
.scn-attack-entrenched-camp-rare .tent-a { left:25%; animation: aer-tent-a 10s ease-in-out infinite; }
.scn-attack-entrenched-camp-rare .tent-b { right:25%; width:28px; height:22px; animation: aer-tent-b 14s ease-in-out infinite; }
.scn-attack-entrenched-camp-rare .campfire { position:absolute; bottom:22%; left:50%; width:14px; height:14px; margin-left:-7px; background: radial-gradient(circle, #f0c060 0%, #c08030 60%, #8a5020 100%); border-radius: 50%; box-shadow: 0 0 24px 10px rgba(240,192,96,0.7); animation: aer-fire 4s ease-in-out infinite alternate; }
.scn-attack-entrenched-camp-rare .cloud { position:absolute; width:60px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(4px); }
.scn-attack-entrenched-camp-rare .cloud-x { top:18%; left:10%; animation: aer-cloud-x 40s linear infinite; }
.scn-attack-entrenched-camp-rare .cloud-y { top:25%; right:15%; width:40px; height:12px; animation: aer-cloud-y 55s linear infinite reverse; }
@keyframes aer-sky { 0% { opacity:0.85; background-position:0 0 } 50% { opacity:1; background-position:0 10px } 100% { opacity:0.9; background-position:0 0 } }
@keyframes aer-palisade { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes aer-tower { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes aer-tent-a { 0% { transform: scale(1) } 50% { transform: scale(1.03) rotate(1deg) } 100% { transform: scale(0.97) rotate(-1deg) } }
@keyframes aer-tent-b { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes aer-fire { 0% { transform: scale(0.95); box-shadow: 0 0 20px 6px rgba(240,192,96,0.5) } 50% { transform: scale(1.05); box-shadow: 0 0 32px 14px rgba(240,192,96,0.8) } 100% { transform: scale(0.95); box-shadow: 0 0 20px 6px rgba(240,192,96,0.5) } }
@keyframes aer-cloud-x { 0% { transform: translateX(-40px) } 100% { transform: translateX(110vw) } }
@keyframes aer-cloud-y { 0% { transform: translateX(0) } 100% { transform: translateX(-90vw) } }

/* prussia-france-russia */
.scn-prussia-france-russia { background: linear-gradient(180deg, #1c1c3a 0%, #2a1e2a 50%, #1a141a 100%), radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%); }
.scn-prussia-france-russia .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #14141e 100%); animation: pr-pulse 6s ease-in-out infinite; }
.scn-prussia-france-russia .table { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-prussia-france-russia .map { position:absolute; bottom:16%; left:50%; transform:translateX(-50%); width:70%; height:20%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4px; opacity:0.7; animation: pr-map 20s ease-in-out infinite; }
.scn-prussia-france-russia .candle { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:10px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6040 100%); border-radius:30% 30% 10% 10%; }
.scn-prussia-france-russia .flame { position:absolute; bottom:52%; left:50%; transform:translateX(-50%); width:14px; height:20px; background: radial-gradient(circle, #ffd080 0%, #e88830 60%, #a04020 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 24px 8px #d08040, 0 0 48px 16px rgba(200,100,40,.4); animation: pr-flame 1.5s ease-in-out infinite alternate; }
.scn-prussia-france-russia .fig1 { position:absolute; bottom:8%; left:15%; width:28px; height:50px; background: linear-gradient(180deg, #14141e 0%, #0a0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-fig 8s ease-in-out infinite; }
.scn-prussia-france-russia .fig2 { position:absolute; bottom:8%; left:50%; transform:translateX(-50%); width:28px; height:48px; background: linear-gradient(180deg, #14141e 0%, #0a0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-fig 9s ease-in-out infinite 1s; }
.scn-prussia-france-russia .fig3 { position:absolute; bottom:8%; right:15%; width:28px; height:50px; background: linear-gradient(180deg, #14141e 0%, #0a0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-fig 7s ease-in-out infinite 2s; }
@keyframes pr-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pr-map { 0% { transform:translateX(-50%) rotate(0) scale(1); opacity:.7 } 50% { transform:translateX(-50%) rotate(1deg) scale(1.02); opacity:.9 } 100% { transform:translateX(-50%) rotate(0) scale(1); opacity:.7 } }
@keyframes pr-flame { 0% { transform:translateX(-50%) scaleY(1) translateY(0); opacity:.9 } 50% { transform:translateX(-50%) scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform:translateX(-50%) scaleY(1) translateY(0); opacity:.9 } }
@keyframes pr-fig { 0% { transform:translateY(0) rotate(-1deg) scaleX(1) } 25% { transform:translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform:translateY(0) rotate(-1deg) scaleX(1) } 75% { transform:translateY(-1px) rotate(0) scaleX(.98) } 100% { transform:translateY(0) rotate(-1deg) scaleX(1) } }

/* bonaparte-enemies-1813 */
.scn-bonaparte-enemies-1813 { background: linear-gradient(180deg, #1a1a28 0%, #242030 50%, #18141c 100%), radial-gradient(ellipse at 50% 70%, #2c2434 0%, transparent 70%); }
.scn-bonaparte-enemies-1813 .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #14101c 100%); animation: be-shadow 10s ease-in-out infinite; }
.scn-bonaparte-enemies-1813 .desk { position:absolute; bottom:10%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #2a221a 0%, #14100a 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: 0 6px 18px rgba(0,0,0,.5); }
.scn-bonaparte-enemies-1813 .euro-map { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:75%; height:18%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius:4px; opacity:.6; animation: be-map 25s ease-in-out infinite; }
.scn-bonaparte-enemies-1813 .lamp { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:20px; height:28px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:20% 20% 10% 10%; }
.scn-bonaparte-enemies-1813 .lamp-glow { position:absolute; bottom:32%; left:50%; transform:translateX(-50%); width:60px; height:40px; background: radial-gradient(circle, #c8a060 0%, #a07030 40%, rgba(200,160,96,.2) 70%, transparent 100%); border-radius:50%; filter:blur(4px); animation: be-glow 3s ease-in-out infinite alternate; }
.scn-bonaparte-enemies-1813 .bonaparte { position:absolute; bottom:8%; left:50%; transform:translateX(-50%); width:30px; height:52px; background: linear-gradient(180deg, #141420 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-fig 6s ease-in-out infinite; }
.scn-bonaparte-enemies-1813 .army1 { position:absolute; bottom:14%; left:18%; width:6px; height:12px; background:#242430; border-radius:50% 50% 20% 20%; animation: be-army 15s linear infinite; }
.scn-bonaparte-enemies-1813 .army2 { position:absolute; bottom:14%; left:32%; width:6px; height:12px; background:#242430; border-radius:50% 50% 20% 20%; animation: be-army 20s linear infinite reverse; }
.scn-bonaparte-enemies-1813 .army3 { position:absolute; bottom:14%; left:70%; width:6px; height:12px; background:#242430; border-radius:50% 50% 20% 20%; animation: be-army 18s linear infinite 5s; }
@keyframes be-shadow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes be-map { 0% { transform:translateX(-50%) scale(1); opacity:.6 } 50% { transform:translateX(-50%) scale(1.03); opacity:.8 } 100% { transform:translateX(-50%) scale(1); opacity:.6 } }
@keyframes be-glow { 0% { opacity:.7; transform:translateX(-50%) scale(1) } 100% { opacity:1; transform:translateX(-50%) scale(1.1) } }
@keyframes be-fig { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes be-army { 0% { transform:translateX(0) } 100% { transform:translateX(80vw) } }

/* austria-two-theatres */
.scn-austria-two-theatres { background: linear-gradient(180deg, #1e1e32 0%, #28243a 50%, #1c1828 100%), radial-gradient(ellipse at 50% 50%, #322a3e 0%, transparent 70%); }
.scn-austria-two-theatres .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #12121e 0%, #1a1622 100%); animation: at-night 8s ease-in-out infinite; }
.scn-austria-two-theatres .frame-left { position:absolute; bottom:10%; left:5%; width:40%; height:60%; background: linear-gradient(180deg, #3a3228 0%, #2a221a 100%); border-radius: 20% 0 0 20% / 40% 0 0 40%; box-shadow: inset -4px 0 10px rgba(0,0,0,.5); animation: at-frame 12s ease-in-out infinite; }
.scn-austria-two-theatres .frame-right { position:absolute; bottom:10%; right:5%; width:40%; height:60%; background: linear-gradient(180deg, #3a3228 0%, #2a221a 100%); border-radius: 0 20% 20% 0 / 0 40% 40% 0; box-shadow: inset 4px 0 10px rgba(0,0,0,.5); animation: at-frame 12s ease-in-out infinite reverse; }
.scn-austria-two-theatres .figure-center { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:26px; height:44px; background: linear-gradient(180deg, #141420 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: at-fig 9s ease-in-out infinite; }
.scn-austria-two-theatres .candle-left { position:absolute; bottom:45%; left:22%; width:8px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #6a4a2a 100%); border-radius:20% 20% 10% 10%; animation: at-candle 3s ease-in-out infinite alternate; }
.scn-austria-two-theatres .candle-right { position:absolute; bottom:45%; right:22%; width:8px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #6a4a2a 100%); border-radius:20% 20% 10% 10%; animation: at-candle 3.5s ease-in-out infinite alternate-reverse; }
.scn-austria-two-theatres .shadow-left { position:absolute; bottom:15%; left:15%; width:20px; height:40px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(6px); animation: at-shad 6s ease-in-out infinite; }
.scn-austria-two-theatres .shadow-right { position:absolute; bottom:15%; right:15%; width:20px; height:40px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(6px); animation: at-shad 7s ease-in-out infinite 1s; }
@keyframes at-night { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes at-frame { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes at-fig { 0% { transform:translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes at-candle { 0% { transform:scaleY(1); opacity:.8 } 100% { transform:scaleY(1.15); opacity:1 } }
@keyframes at-shad { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(5px) scale(1.05) } 100% { transform:translateX(0) scale(1) } }

/* conception-separated-power */
.scn-conception-separated-power { background: linear-gradient(180deg, #2a283a 0%, #3a3250 60%, #1e1c2a 100%), radial-gradient(ellipse at 50% 80%, #4a3e5a 0%, transparent 70%); }
.scn-conception-separated-power .bg-study { position:absolute; inset:0; background: linear-gradient(135deg, #1e1c2e 0%, #2a243a 100%); animation: cs-breath 10s ease-in-out infinite; }
.scn-conception-separated-power .desk-map { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius:8px; box-shadow: 0 6px 14px rgba(0,0,0,.4); animation: cs-map 20s ease-in-out infinite; }
.scn-conception-separated-power .point-a { position:absolute; bottom:25%; left:25%; width:10px; height:10px; background: radial-gradient(circle, #c8a060 0%, #8a6040 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(200,160,96,.4); animation: cs-point 5s ease-in-out infinite; }
.scn-conception-separated-power .point-b { position:absolute; bottom:25%; right:25%; width:10px; height:10px; background: radial-gradient(circle, #c8a060 0%, #8a6040 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(200,160,96,.4); animation: cs-point 6s ease-in-out infinite 1s; }
.scn-conception-separated-power .hand { position:absolute; bottom:18%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform:rotate(-10deg); animation: cs-hand 8s ease-in-out infinite; }
.scn-conception-separated-power .inkwell { position:absolute; bottom:12%; left:20%; width:16px; height:20px; background: linear-gradient(180deg, #2a221a 0%, #14100a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: cs-vanish 15s ease-in-out infinite; }
.scn-conception-separated-power .quill { position:absolute; bottom:14%; left:19%; width:4px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:40% 40% 0 0; transform:rotate(20deg); animation: cs-quill 8s ease-in-out infinite; }
@keyframes cs-breath { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes cs-map { 0% { transform:scale(1) rotate(0); opacity:.7 } 50% { transform:scale(1.02) rotate(0.5deg); opacity:.9 } 100% { transform:scale(1) rotate(0); opacity:.7 } }
@keyframes cs-point { 0% { transform:scale(1); opacity:.7 } 50% { transform:scale(1.15); opacity:1 } 100% { transform:scale(1); opacity:.7 } }
@keyframes cs-hand { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-1px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes cs-vanish { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes cs-quill { 0% { transform:rotate(20deg) translateY(0) } 50% { transform:rotate(22deg) translateY(-1px) } 100% { transform:rotate(20deg) translateY(0) } }

/* campaign-absurdity-judgment */
.scn-campaign-absurdity-judgment {
  background: 
    radial-gradient(ellipse at 40% 60%, #2a2018 0%, #1a1210 60%, transparent 100%),
    linear-gradient(180deg, #2a1e18 0%, #1e1410 50%, #120c0a 100%);
}
.scn-campaign-absurdity-judgment .room-back {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1a1210 0%, #120c0a 100%);
  animation: ca-shift 15s ease-in-out infinite alternate;
}
.scn-campaign-absurdity-judgment .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:25%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
  animation: ca-desk 8s ease-in-out infinite;
}
.scn-campaign-absurdity-judgment .lamp {
  position:absolute; bottom:32%; left:40%; width:16px; height:32px;
  background: linear-gradient(180deg, #705040 0%, #3a2a1e 100%);
  border-radius: 4px 4px 2px 2px; transform-origin: bottom center;
  animation: ca-lamp-sway 4s ease-in-out infinite;
}
.scn-campaign-absurdity-judgment .light-cone {
  position:absolute; bottom:30%; left:36%; width:80px; height:120px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,140,80,.25) 0%, transparent 70%);
  clip-path: polygon(0 100%, 100% 100%, 40% 0, 60% 0);
  animation: ca-light-flicker 0.8s steps(2) infinite;
}
.scn-campaign-absurdity-judgment .paper-stack {
  position:absolute; bottom:18%; left:30%; width:70px; height:12px;
  background: linear-gradient(180deg, #c8b898 0%, #a08870 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: ca-papers 6s ease-in-out infinite;
}
.scn-campaign-absurdity-judgment .hand-shadow {
  position:absolute; bottom:25%; left:48%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(6px); animation: ca-hand 3s ease-in-out infinite alternate;
}
.scn-campaign-absurdity-judgment .quill {
  position:absolute; bottom:28%; left:52%; width:4px; height:30px;
  background: linear-gradient(180deg, #d4c4a8 0%, #8a7a62 100%);
  border-radius: 50% 50% 10% 10%; transform-origin: bottom; rotate: 15deg;
  animation: ca-quill 5s ease-in-out infinite;
}
.scn-campaign-absurdity-judgment .inkwell {
  position:absolute; bottom:20%; left:56%; width:14px; height:18px;
  background: linear-gradient(180deg, #2a1e18 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.8);
  animation: ca-ink 7s linear infinite;
}

@keyframes ca-shift { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ca-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ca-lamp-sway { 0%,100% { rotate:-2deg } 50% { rotate:2deg } }
@keyframes ca-light-flicker { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ca-papers { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(0.95) } }
@keyframes ca-hand { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(8px) scaleX(1.1) } }
@keyframes ca-quill { 0%,100% { rotate:15deg } 50% { rotate:10deg } }
@keyframes ca-ink { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* criticism-hypothetical */
.scn-criticism-hypothetical {
  background:
    radial-gradient(ellipse at 50% 80%, #1a1814 0%, #0e0c0a 70%),
    linear-gradient(180deg, #2a1c14 0%, #1a1210 50%, #100c0a 100%);
}
.scn-criticism-hypothetical .tent-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1410 0%, #120e0a 100%);
  animation: cr-wall 20s linear infinite;
}
.scn-criticism-hypothetical .table {
  position:absolute; bottom:8%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-criticism-hypothetical .map {
  position:absolute; bottom:14%; left:28%; width:140px; height:80px;
  background: linear-gradient(135deg, #8a7a5a 0%, #b8a882 50%, #7a6a4a 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: cr-map 12s ease-in-out infinite;
}
.scn-criticism-hypothetical .candle {
  position:absolute; bottom:22%; left:48%; width:10px; height:28px;
  background: linear-gradient(180deg, #d0b090 0%, #8a7050 100%);
  border-radius: 4px; transform-origin: bottom center;
  animation: cr-candle-sway 6s ease-in-out infinite;
}
.scn-criticism-hypothetical .candle-glow {
  position:absolute; bottom:24%; left:44%; width:32px; height:32px;
  background: radial-gradient(circle, rgba(200,150,80,.6) 0%, transparent 70%);
  animation: cr-glow 2s ease-in-out infinite alternate;
}
.scn-criticism-hypothetical .general-silhouette {
  position:absolute; bottom:14%; left:60%; width:40px; height:70px;
  background: linear-gradient(180deg, #0a0808 0%, #14100e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-general 8s ease-in-out infinite;
}
.scn-criticism-hypothetical .pointer {
  position:absolute; bottom:36%; left:56%; width:4px; height:36px;
  background: #2a1e14; border-radius: 2px; rotate: 20deg;
  transform-origin: bottom; animation: cr-point 5s ease-in-out infinite;
}
.scn-criticism-hypothetical .shadow-figure {
  position:absolute; bottom:14%; left:25%; width:36px; height:60px;
  background: linear-gradient(180deg, #0e0c0a 0%, #181414 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px); opacity:.6; animation: cr-shadow 10s ease-in-out infinite;
}

@keyframes cr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cr-map { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes cr-candle-sway { 0%,100% { rotate:-3deg } 50% { rotate:3deg } }
@keyframes cr-glow { 0% { opacity:.6; transform: scale(.8) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes cr-general { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes cr-point { 0%,100% { rotate:20deg } 50% { rotate:15deg } }
@keyframes cr-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* critics-after-result */
.scn-critics-after-result {
  background:
    radial-gradient(ellipse at 30% 50%, #1e1a16 0%, #0e0c0a 80%),
    linear-gradient(180deg, #2a1e18 0%, #161210 100%);
}
.scn-critics-after-result .chamber-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #1a1410 0%, #0e0c08 50%, #1a1410 100%);
  animation: cr2-wall 18s ease-in-out infinite alternate;
}
.scn-critics-after-result .bench {
  position:absolute; bottom:12%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-critics-after-result .judge-figure {
  position:absolute; bottom:18%; left:40%; width:36px; height:64px;
  background: linear-gradient(180deg, #0a0808 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: cr2-judge 7s ease-in-out infinite;
}
.scn-critics-after-result .gavel {
  position:absolute; bottom:28%; left:44%; width:8px; height:22px;
  background: #3a2a1e; border-radius: 2px; transform-origin: top;
  animation: cr2-gavel 4s ease-in-out infinite;
}
.scn-critics-after-result .documents {
  position:absolute; bottom:16%; left:55%; width:60px; height:16px;
  background: linear-gradient(180deg, #b8a88a 0%, #90806a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: cr2-docs 9s ease-in-out infinite;
}
.scn-critics-after-result .oil-lamp {
  position:absolute; bottom:24%; left:20%; width:12px; height:24px;
  background: linear-gradient(180deg, #705040 0%, #3a2a1e 100%);
  border-radius: 30% 30% 10% 10%; 
}
.scn-critics-after-result .lamp-halo {
  position:absolute; bottom:24%; left:16%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(180,130,70,.4) 0%, transparent 70%);
  animation: cr2-halo 3s ease-in-out infinite alternate;
}
.scn-critics-after-result .dust-particles {
  position:absolute; inset:0;
  background: radial-gradient(circle at 20% 40%, rgba(200,180,140,.06) 0%, transparent 20%);
  filter: blur(4px);
  animation: cr2-dust 30s linear infinite;
}

@keyframes cr2-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cr2-judge { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes cr2-gavel { 0%,100% { rotate:0deg; transform-origin: top } 50% { rotate:8deg } }
@keyframes cr2-docs { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.95) } }
@keyframes cr2-halo { 0% { opacity:.6; transform: scale(.9) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes cr2-dust { 0% { background-position: 0 0 } 100% { background-position: 100px 50px } }

/* only-means-to-end */
.scn-only-means-to-end {
  background:
    radial-gradient(ellipse at 50% 70%, #1a1412 0%, #0e0c0a 80%),
    linear-gradient(180deg, #2a1e1a 0%, #161210 50%, #0e0c0a 100%);
}
.scn-only-means-to-end .war-room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1410 0%, #100e0a 100%);
  animation: om-bg 20s ease-in-out infinite;
}
.scn-only-means-to-end .table-large {
  position:absolute; bottom:8%; left:15%; right:15%; height:22%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.6);
}
.scn-only-means-to-end .map-scroll {
  position:absolute; bottom:16%; left:30%; width:120px; height:70px;
  background: linear-gradient(135deg, #7a6a4a 0%, #b8a882 50%, #6a5a3a 100%);
  border-radius: 4px; transform-origin: center;
  animation: om-map 14s ease-in-out infinite;
}
.scn-only-means-to-end .commander {
  position:absolute; bottom:14%; left:50%; width:40px; height:72px;
  background: linear-gradient(180deg, #0a0808 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: om-commander 9s ease-in-out infinite;
}
.scn-only-means-to-end .sword-point {
  position:absolute; bottom:38%; left:52%; width:4px; height:30px;
  background: #3a2a1e; border-radius: 1px; rotate: 25deg;
  transform-origin: bottom; animation: om-sword 6s ease-in-out infinite;
}
.scn-only-means-to-end .lantern {
  position:absolute; bottom:24%; left:20%; width:14px; height:26px;
  background: linear-gradient(180deg, #604838 0%, #2a1e14 100%);
  border-radius: 4px; box-shadow: 0 0 8px rgba(200,140,60,.2);
}
.scn-only-means-to-end .lantern-glow {
  position:absolute; bottom:22%; left:14%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(200,140,60,.35) 0%, transparent 70%);
  animation: om-glow 3s ease-in-out infinite alternate;
}
.scn-only-means-to-end .smoke-wisp {
  position:absolute; bottom:40%; left:22%; width:20px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,70,50,.2) 0%, transparent 80%);
  filter: blur(8px); animation: om-smoke 12s ease-in-out infinite;
}

@keyframes om-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes om-map { 0%,100% { transform: translateX(0) rotate(0deg) scaleX(1) } 50% { transform: translateX(-5px) rotate(2deg) scaleX(0.98) } }
@keyframes om-commander { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes om-sword { 0%,100% { rotate:25deg } 50% { rotate:20deg } }
@keyframes om-glow { 0% { opacity:.6; transform: scale(.9) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes om-smoke { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-10px) scaleX(1.2) } 100% { transform: translateY(0) scaleX(1) } }

/* scene 1: subordination-military-political */
.scn-subordination-military-political {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a22 40%, #1c1410 100%),
              radial-gradient(ellipse at 50% 100%, #4a3520 0%, transparent 60%);
}
.scn-subordination-military-political .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1f1a 100%);
}
.scn-subordination-military-political .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%);
}
.scn-subordination-military-political .desk {
  position:absolute; bottom:18%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius:4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-subordination-military-political .map {
  position:absolute; bottom:28%; left:30%; width:40%; height:12%;
  background: radial-gradient(ellipse, #c8a870 0%, #8a6a40 70%);
  border-radius:2%; opacity:.8; animation: smp-map 6s ease-in-out infinite alternate;
}
.scn-subordination-military-political .candle {
  position:absolute; bottom:38%; left:45%; width:8px; height:24px;
  background: linear-gradient(180deg, #e8c880 0%, #a08040 100%);
  border-radius:20% 20% 10% 10%; transform-origin: bottom center;
  animation: smp-candle 4s ease-in-out infinite;
}
.scn-subordination-military-political .glow {
  position:absolute; bottom:34%; left:44%; width:20px; height:20px;
  background: radial-gradient(circle, #ffd070 0%, #c09040 50%, transparent 70%);
  border-radius:50%; animation: smp-glow 3s ease-in-out infinite alternate;
}
.scn-subordination-military-political .chair {
  position:absolute; bottom:18%; left:10%; width:24px; height:30px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: smp-chair 8s ease-in-out infinite;
}
.scn-subordination-military-political .book {
  position:absolute; bottom:20%; left:55%; width:18px; height:24px;
  background: linear-gradient(135deg, #6a3a2a 0%, #4a221a 100%);
  border-radius:2px; transform: rotate(-15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: smp-book 10s ease-in-out infinite alternate;
}
@keyframes smp-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes smp-candle { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes smp-glow { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes smp-chair { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes smp-book { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-13deg) translateX(2px) } 100% { transform: rotate(-15deg) translateX(0) } }

/* scene 2: plans-from-political-cast */
.scn-plans-from-political-cast {
  background: linear-gradient(180deg, #1e1814 0%, #2e221c 50%, #1a1210 100%),
              radial-gradient(ellipse at 50% 80%, #3a2c20 0%, transparent 60%);
}
.scn-plans-from-political-cast .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #3a2c22 0%, #1e1814 100%);
}
.scn-plans-from-political-cast .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
}
.scn-plans-from-political-cast .table {
  position:absolute; bottom:15%; left:15%; width:70%; height:18%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a281e 100%);
  border-radius:4% 4% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-plans-from-political-cast .plans {
  position:absolute; bottom:24%; left:30%; width:35%; height:6%;
  background: linear-gradient(90deg, #d4b080 0%, #b09060 50%, #8a6a40 100%);
  border-radius:2%; transform: skewY(-2deg); animation: ppc-plans 12s ease-in-out infinite alternate;
}
.scn-plans-from-political-cast .cast {
  position:absolute; bottom:22%; left:55%; width:30px; height:40px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5); transform-origin: bottom center;
  animation: ppc-cast 7s ease-in-out infinite;
}
.scn-plans-from-political-cast .lamp {
  position:absolute; bottom:30%; left:45%; width:12px; height:20px;
  background: linear-gradient(180deg, #e0b060 0%, #a08040 100%);
  border-radius:30%; box-shadow: 0 0 20px 6px rgba(200,150,80,.4);
  animation: ppc-lamp 4s ease-in-out infinite alternate;
}
.scn-plans-from-political-cast .shadow-cast {
  position:absolute; bottom:15%; left:52%; width:24px; height:10px;
  background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px);
  animation: ppc-shadow 8s ease-in-out infinite;
}
.scn-plans-from-political-cast .chair {
  position:absolute; bottom:16%; left:10%; width:20px; height:28px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: ppc-chair 6s ease-in-out infinite;
}
@keyframes ppc-plans { 0% { transform: skewY(-2deg) translateY(0) } 50% { transform: skewY(-1deg) translateY(-1px) } 100% { transform: skewY(-2deg) translateY(0) } }
@keyframes ppc-cast { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ppc-lamp { 0% { opacity:.7; box-shadow: 0 0 12px 4px rgba(200,150,80,.3) } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(200,150,80,.6) } 100% { opacity:.8; box-shadow: 0 0 16px 5px rgba(200,150,80,.4) } }
@keyframes ppc-shadow { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.05) translateX(2px) } 100% { transform: scale(1) translateX(0) } }
@keyframes ppc-chair { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

/* scene 3: art-war-highest-policy */
.scn-art-war-highest-policy {
  background: linear-gradient(180deg, #1a1212 0%, #2a1e1a 50%, #0e0a0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2420 0%, transparent 60%);
}
.scn-art-war-highest-policy .pedestal {
  position:absolute; bottom:15%; left:50%; width:60px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius:4%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-art-war-highest-policy .book {
  position:absolute; bottom:38%; left:50%; width:70px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a40 0%, #5a3e2a 100%);
  border-radius:2% 2% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: awh-book 10s ease-in-out infinite alternate;
}
.scn-art-war-highest-policy .sword {
  position:absolute; bottom:32%; left:42%; width:8px; height:50px;
  background: linear-gradient(180deg, #c0a070 0%, #8a6a40 100%);
  transform: rotate(-30deg); transform-origin: bottom center;
  border-radius:2px; animation: awh-sword 8s ease-in-out infinite;
}
.scn-art-war-highest-policy .quill {
  position:absolute; bottom:36%; left:56%; width:3px; height:18px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%);
  transform: rotate(20deg); transform-origin: bottom center;
  animation: awh-quill 5s ease-in-out infinite;
}
.scn-art-war-highest-policy .inkwell {
  position:absolute; bottom:28%; left:58%; width:10px; height:12px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%);
  border-radius:30% 30% 10% 10%; box-shadow: inset 0 -2px 4px #1a0a0a;
}
.scn-art-war-highest-policy .candle {
  position:absolute; bottom:40%; left:48%; width:6px; height:20px;
  background: linear-gradient(180deg, #e8c070 0%, #a08040 100%);
  border-radius:20%; animation: awh-candle 4s ease-in-out infinite;
}
.scn-art-war-highest-policy .glow {
  position:absolute; bottom:36%; left:46%; width:20px; height:20px;
  background: radial-gradient(circle, #ffc060 0%, #c09040 50%, transparent 70%);
  border-radius:50%; animation: awh-glow 3s ease-in-out infinite alternate;
}
@keyframes awh-book { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes awh-sword { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-28deg) } 100% { transform: rotate(-30deg) } }
@keyframes awh-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(20deg) } }
@keyframes awh-candle { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes awh-glow { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }

/* scene 4: cabinet-determines-war */
.scn-cabinet-determines-war {
  background: linear-gradient(180deg, #1c1412 0%, #2e221c 40%, #12100e 100%),
              radial-gradient(ellipse at 50% 80%, #3a2820 0%, transparent 60%);
}
.scn-cabinet-determines-war .table {
  position:absolute; bottom:15%; left:10%; width:80%; height:30%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a281e 100%);
  border-radius:50% / 30%; box-shadow: 0 8px 16px rgba(0,0,0,.6);
  transform-origin: bottom center; animation: cdw-table 15s ease-in-out infinite alternate;
}
.scn-cabinet-determines-war .chair1 {
  position:absolute; bottom:35%; left:15%; width:20px; height:24px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: cdw-chair 7s ease-in-out infinite;
}
.scn-cabinet-determines-war .chair2 {
  position:absolute; bottom:35%; left:50%; width:20px; height:24px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: cdw-chair 9s ease-in-out infinite 2s;
}
.scn-cabinet-determines-war .chair3 {
  position:absolute; bottom:35%; left:75%; width:20px; height:24px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: cdw-chair 11s ease-in-out infinite 4s;
}
.scn-cabinet-determines-war .papers {
  position:absolute; bottom:28%; left:38%; width:20%; height:8%;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius:2px; transform: rotate(5deg); animation: cdw-papers 12s ease-in-out infinite alternate;
}
.scn-cabinet-determines-war .lampshade {
  position:absolute; bottom:40%; left:50%; width:30px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0b870 0%, #c09850 100%);
  border-radius:50% 50% 10% 10%; box-shadow: 0 -4px 12px rgba(200,150,80,.5);
  animation: cdw-lampshade 6s ease-in-out infinite alternate;
}
.scn-cabinet-determines-war .map {
  position:absolute; bottom:22%; left:20%; width:60%; height:8%;
  background: radial-gradient(ellipse, #7a5a3a 0%, #4a3220 100%);
  border-radius:2%; opacity:.7; animation: cdw-map 14s ease-in-out infinite alternate;
}
.scn-cabinet-determines-war .shadow {
  position:absolute; bottom:12%; left:10%; width:80%; height:8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(6px); animation: cdw-shadow 8s ease-in-out infinite;
}
@keyframes cdw-table { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes cdw-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes cdw-papers { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(7deg) translateX(2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes cdw-lampshade { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes cdw-map { 0% { opacity:.6; transform: scale(.98) } 50% { opacity:.8; transform: scale(1.02) } 100% { opacity:.6; transform: scale(.98) } }
@keyframes cdw-shadow { 0% { opacity:.5; transform: translateY(0) } 50% { opacity:.7; transform: translateY(2px) } 100% { opacity:.5; transform: translateY(0) } }

.scn-defence-of-theatre-economy { background: linear-gradient(180deg, #f5f0e8 0%, #e6dcc8 50%, #d4c8b0 100%), radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 60%); }
.scn-defence-of-theatre-economy .wall    { position:absolute; inset:0; background: linear-gradient(135deg, #f0e8d8 0%, #ddcfb5 100%); }
.scn-defence-of-theatre-economy .window  { position:absolute; top:15%; left:55%; width:80px; height:100px; background: linear-gradient(180deg, #cee1f0 0%, #a0c4e0 100%); border:4px solid #b8a88a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: dte-window 8s ease-in-out infinite alternate; }
.scn-defence-of-theatre-economy .map     { position:absolute; top:12%; left:20%; width:120px; height:90px; background: linear-gradient(135deg, #dcd5b8 0%, #c4b894 50%, #aca078 100%); border:2px solid #b09870; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dte-map 12s ease-in-out infinite; }
.scn-defence-of-theatre-economy .desk    { position:absolute; bottom:22%; left:30%; width:160px; height:20px; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-defence-of-theatre-economy .chair   { position:absolute; bottom:18%; left:38%; width:40px; height:28px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: dte-chair 6s ease-in-out infinite; }
.scn-defence-of-theatre-economy .figure  { position:absolute; bottom:22%; left:32%; width:24px; height:42px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dte-figure 4s ease-in-out infinite alternate; }
.scn-defence-of-theatre-economy .bookshelf { position:absolute; bottom:20%; right:15%; width:50px; height:80px; background: linear-gradient(180deg, #a09070 0%, #605030 100%); border-radius:2px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: dte-shelf 20s ease-in-out infinite; }
.scn-defence-of-theatre-economy .lamp    { position:absolute; top:30%; left:15%; width:6px; height:6px; background: radial-gradient(circle, #ffe8a0 0%, #e0c070 70%); border-radius:50%; box-shadow: 0 0 16px 6px rgba(224,192,112,.5); animation: dte-lamp 3s ease-in-out infinite alternate; }
@keyframes dte-window { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.9; transform: scaleY(1) } }
@keyframes dte-map    { 0% { transform: translateX(0) rotate(0deg) scale(1) } 50% { transform: translateX(2px) rotate(.5deg) scale(1.005) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes dte-chair  { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dte-figure { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(1px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes dte-shelf  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes dte-lamp   { 0% { box-shadow: 0 0 12px 4px rgba(224,192,112,.4); opacity:.8 } 50% { box-shadow: 0 0 24px 8px rgba(255,232,160,.7); opacity:1 } 100% { box-shadow: 0 0 16px 5px rgba(224,192,112,.5); opacity:.9 } }

.scn-defence-of-theatre-adversary-character { background: linear-gradient(180deg, #eae3d5 0%, #d9ceb8 50%, #c4b6a0 100%), radial-gradient(ellipse at 60% 30%, #f5ecd0 0%, transparent 70%); }
.scn-defence-of-theatre-adversary-character .wall     { position:absolute; inset:0; background: linear-gradient(135deg, #ddd3c0 0%, #c8bca8 100%); }
.scn-defence-of-theatre-adversary-character .portrait { position:absolute; top:12%; left:35%; width:80px; height:100px; background: linear-gradient(180deg, #b8a890 0%, #8a7a62 100%); border:3px solid #a09070; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: dac-portrait 10s ease-in-out infinite alternate; }
.scn-defence-of-theatre-adversary-character .globe    { position:absolute; bottom:30%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #7a9a6a 0%, #3a5a2a 100%); border-radius:50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,.4); animation: dac-globe 15s linear infinite; }
.scn-defence-of-theatre-adversary-character .figure   { position:absolute; bottom:22%; left:40%; width:26px; height:48px; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dac-figure 5s ease-in-out infinite alternate; }
.scn-defence-of-theatre-adversary-character .table    { position:absolute; bottom:18%; left:30%; width:120px; height:16px; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius:2px; box-shadow: 0 3px 6px rgba(0,0,0,.3); }
.scn-defence-of-theatre-adversary-character .document { position:absolute; bottom:20%; left:34%; width:40px; height:30px; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%); border-radius:1px; box-shadow: 0 1px 3px rgba(0,0,0,.2); animation: dac-doc 8s ease-in-out infinite; }
.scn-defence-of-theatre-adversary-character .inkwell  { position:absolute; bottom:22%; left:30%; width:10px; height:12px; background: radial-gradient(circle at 50% 30%, #4a3a2a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: dac-ink 6s ease-in-out infinite alternate; }
@keyframes dac-portrait { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dac-globe    { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes dac-figure   { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(1px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes dac-doc      { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes dac-ink      { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-defence-of-theatre-no-decision { background: linear-gradient(180deg, #e8ddd0 0%, #d5c8b8 50%, #bfb0a0 100%), radial-gradient(ellipse at 50% 60%, #fff0d0 0%, transparent 80%); }
.scn-defence-of-theatre-no-decision .wall       { position:absolute; inset:0; background: linear-gradient(135deg, #d4c8b5 0%, #bfb09c 100%); }
.scn-defence-of-theatre-no-decision .table      { position:absolute; bottom:20%; left:30%; width:140px; height:18px; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius:3px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-defence-of-theatre-no-decision .chessboard { position:absolute; bottom:22%; left:34%; width:80px; height:80px; background: linear-gradient(45deg, #4a3a2a 25%, #d8c8a8 25%, #d8c8a8 50%, #4a3a2a 50%, #4a3a2a 75%, #d8c8a8 75%); background-size: 20px 20px; border:2px solid #7a6a4a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: dnd-board 20s ease-in-out infinite; }
.scn-defence-of-theatre-no-decision .figure     { position:absolute; bottom:24%; left:32%; width:22px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dnd-figure 6s ease-in-out infinite alternate; }
.scn-defence-of-theatre-no-decision .piece-a    { position:absolute; bottom:30%; left:40%; width:10px; height:18px; background: radial-gradient(circle at 50% 30%, #8a6a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: dnd-piece-a 7s ease-in-out infinite; }
.scn-defence-of-theatre-no-decision .piece-b    { position:absolute; bottom:30%; left:46%; width:10px; height:18px; background: radial-gradient(circle at 50% 30%, #b8a080 0%, #7a6a4a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: dnd-piece-b 9s ease-in-out infinite reverse; }
.scn-defence-of-theatre-no-decision .lantern    { position:absolute; top:20%; left:20%; width:8px; height:12px; background: radial-gradient(circle, #ffe8a0 0%, #d0b060 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(208,176,96,.5); animation: dnd-lantern 4s ease-in-out infinite alternate; }
@keyframes dnd-board  { 0% { transform: rotate(0deg) } 50% { transform: rotate(.5deg) } 100% { transform: rotate(0deg) } }
@keyframes dnd-figure { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(1px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes dnd-piece-a { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dnd-piece-b { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dnd-lantern { 0% { box-shadow: 0 0 14px 6px rgba(208,176,96,.4); opacity:.85 } 50% { box-shadow: 0 0 28px 12px rgba(255,232,160,.7); opacity:1 } 100% { box-shadow: 0 0 18px 7px rgba(208,176,96,.5); opacity:.9 } }

.scn-defence-of-theatre-weak-offensive { background: linear-gradient(180deg, #f0ece0 0%, #e0d8c8 50%, #ccc0b0 100%), radial-gradient(ellipse at 80% 50%, #fff8e8 0%, transparent 60%); }
.scn-defence-of-theatre-weak-offensive .wall          { position:absolute; inset:0; background: linear-gradient(135deg, #ddd3c0 0%, #c8bca8 100%); }
.scn-defence-of-theatre-weak-offensive .window        { position:absolute; top:12%; right:10%; width:90px; height:110px; background: linear-gradient(180deg, #d0e2f0 0%, #a0bcd0 100%); border:4px solid #b8a88a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: dwo-window 10s ease-in-out infinite alternate; }
.scn-defence-of-theatre-weak-offensive .figure        { position:absolute; bottom:20%; right:20%; width:28px; height:50px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dwo-figure 5s ease-in-out infinite alternate; }
.scn-defence-of-theatre-weak-offensive .book          { position:absolute; bottom:20%; right:15%; width:30px; height:20px; background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dwo-book 8s ease-in-out infinite; }
.scn-defence-of-theatre-weak-offensive .curtain-left  { position:absolute; top:12%; right:48%; width:20px; height:130px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 0 0 20% 0; transform-origin: top right; animation: dwo-curtain 12s ease-in-out infinite; }
.scn-defence-of-theatre-weak-offensive .curtain-right { position:absolute; top:12%; right:10%; width:20px; height:130px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 0 0 0 20%; transform-origin: top left; animation: dwo-curtain 14s ease-in-out infinite reverse; }
.scn-defence-of-theatre-weak-offensive .cushion       { position:absolute; bottom:14%; right:25%; width:30px; height:12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: dwo-cushion 6s ease-in-out infinite; }
@keyframes dwo-window  { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.9; transform: scaleY(1) } }
@keyframes dwo-figure  { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(-2px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(3deg) } }
@keyframes dwo-book    { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes dwo-curtain { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes dwo-cushion { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }

.scn-conquest-weakens-offensive {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1e0e08 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-conquest-weakens-offensive .cwo-wall { position:absolute; inset: 0 0 55% 0; background: linear-gradient(90deg, #2a1a14 0%, #3a2820 30%, #2a1a14 70%, #1a0e0a 100%); border-bottom: 2px solid #1a0e0a; }
.scn-conquest-weakens-offensive .cwo-floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a0e0a 0%, #100a08 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.6); }
.scn-conquest-weakens-offensive .cwo-table { position:absolute; bottom:30%; left:50%; width:60%; height:8%; transform:translateX(-50%); background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-conquest-weakens-offensive .cwo-map { position:absolute; bottom:35%; left:50%; width:50%; height:12%; transform:translateX(-50%); background: linear-gradient(135deg, #4a3a28 0%, #5a4a38 30%, #3a2a18 70%); border-radius: 1%; box-shadow: 0 0 8px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,200,150,0.2); }
.scn-conquest-weakens-offensive .cwo-figure { position:absolute; bottom:30%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwo-figure 6s ease-in-out infinite; }
.scn-conquest-weakens-offensive .cwo-candle { position:absolute; bottom:38%; left:60%; width:2%; height:10%; background: linear-gradient(180deg, #c8a070 0%, #8a6040 40%, #3a2010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #c08050; }
.scn-conquest-weakens-offensive .cwo-light { position:absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 62% 40%, rgba(200,160,100,0.3) 0%, transparent 60%); animation: cwo-light 4s ease-in-out infinite alternate; }
.scn-conquest-weakens-offensive .cwo-shadow-left { position:absolute; bottom:30%; left:20%; width:25%; height:40%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: cwo-shadow 8s ease-in-out infinite alternate; }
.scn-conquest-weakens-offensive .cwo-shadow-right { position:absolute; bottom:30%; right:20%; width:25%; height:40%; background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: cwo-shadow 10s ease-in-out infinite alternate-reverse; }
@keyframes cwo-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3%) rotate(2deg); } }
@keyframes cwo-light { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes cwo-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-geographical-position-conquest {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #1e1e2e 100%), radial-gradient(ellipse at 50% 70%, #3a3a4e 0%, transparent 70%);
}
.scn-geographical-position-conquest .gpc-backdrop { position:absolute; inset: 0 0 50% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%); border-bottom: 2px solid #1a1a2a; }
.scn-geographical-position-conquest .gpc-desk { position:absolute; bottom:30%; left:50%; width:70%; height:6%; transform:translateX(-50%); background: linear-gradient(90deg, #1a1408 0%, #2a2010 50%, #1a1408 100%); border-radius: 1% 1% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.5); }
.scn-geographical-position-conquest .gpc-globe { position:absolute; bottom:38%; left:25%; width:18%; height:30%; background: radial-gradient(circle at 40% 30%, #4a6a4a 0%, #2a4a2a 40%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.4), inset -4px -4px 8px rgba(0,0,0,0.3); animation: gpc-globe 20s ease-in-out infinite alternate; }
.scn-geographical-position-conquest .gpc-map { position:absolute; bottom:36%; left:50%; width:40%; height:14%; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a1a 0%, #4a3a28 30%, #2a1a0a 70%); border-radius: 1%; box-shadow: 0 0 6px rgba(0,0,0,0.2), inset 0 2px 4px rgba(255,220,180,0.15); }
.scn-geographical-position-conquest .gpc-hand { position:absolute; bottom:32%; left:55%; width:8%; height:18%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gpc-hand 12s ease-in-out infinite; }
.scn-geographical-position-conquest .gpc-lamp { position:absolute; bottom:40%; left:68%; width:4%; height:15%; background: linear-gradient(180deg, #c8a070 0%, #8a6040 40%, #3a2010 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px #b08050; animation: gpc-lamp 5s ease-in-out infinite alternate; }
.scn-geographical-position-conquest .gpc-drawer { position:absolute; bottom:30%; left:15%; width:20%; height:6%; background: linear-gradient(90deg, #1a1208 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
@keyframes gpc-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(0.98); } }
@keyframes gpc-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(-3deg); } }
@keyframes gpc-lamp { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #b08050; } 50% { opacity:1; box-shadow: 0 0 28px 12px #d0a060; } 100% { opacity:0.9; box-shadow: 0 0 16px 6px #b08050; } }

.scn-silesia-strengthens-frederick {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1e1e1e 100%), radial-gradient(ellipse at 50% 80%, #3a3a3a 0%, transparent 70%);
}
.scn-silesia-strengthens-frederick .ssf-bg { position:absolute; inset: 0 0 45% 0; background: linear-gradient(90deg, #2a2a2a 0%, #3a3a3a 30%, #2a2a2a 70%, #1a1a1a 100%); border-bottom: 1px solid #0a0a0a; }
.scn-silesia-strengthens-frederick .ssf-tent { position:absolute; top:5%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e04 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; box-shadow: 0 0 20px rgba(0,0,0,0.6); }
.scn-silesia-strengthens-frederick .ssf-map-table { position:absolute; bottom:28%; left:30%; width:40%; height:12%; background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-silesia-strengthens-frederick .ssf-silesia { position:absolute; bottom:33%; left:38%; width:24%; height:15%; background: linear-gradient(135deg, #4a3a28 0%, #5a4a38 30%, #3a2a18 70%); border-radius: 2%; box-shadow: inset 0 0 6px rgba(0,0,0,0.3), 0 2px 6px rgba(255,200,100,0.1); animation: ssf-silesia 15s ease-in-out infinite alternate; }
.scn-silesia-strengthens-frederick .ssf-figure { position:absolute; bottom:25%; left:42%; width:10%; height:30%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssf-figure 8s ease-in-out infinite; }
.scn-silesia-strengthens-frederick .ssf-candle { position:absolute; bottom:40%; left:28%; width:2%; height:10%; background: linear-gradient(180deg, #c8a070 0%, #8a6040 40%, #3a2010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 3px #b08050; animation: ssf-candle 3s ease-in-out infinite alternate; }
.scn-silesia-strengthens-frederick .ssf-flag { position:absolute; top:8%; left:15%; width:8%; height:15%; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; transform-origin: bottom left; animation: ssf-flag 6s ease-in-out infinite alternate; }
.scn-silesia-strengthens-frederick .ssf-shadow { position:absolute; bottom:25%; right:20%; width:20%; height:35%; background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: ssf-shadow 12s ease-in-out infinite alternate; }
@keyframes ssf-silesia { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes ssf-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(2deg); } }
@keyframes ssf-candle { 0% { opacity:0.8; box-shadow: 0 0 6px 2px #b08050; } 50% { opacity:1; box-shadow: 0 0 18px 8px #d0a060; } 100% { opacity:0.9; box-shadow: 0 0 10px 4px #b08050; } }
@keyframes ssf-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes ssf-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-austrians-evacuate-provence {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-austrians-evacuate-provence .aep-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a100e 0%, #0e0a08 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); }
.scn-austrians-evacuate-provence .aep-sky { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); }
.scn-austrians-evacuate-provence .aep-tent { position:absolute; left:30%; bottom:35%; width:40%; height:20%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-austrians-evacuate-provence .aep-figure-a { position:absolute; bottom:30%; left:20%; width:10%; height:28%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aep-figure-a 6s ease-in-out infinite; }
.scn-austrians-evacuate-provence .aep-figure-b { position:absolute; bottom:28%; right:20%; width:10%; height:26%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aep-figure-b 7s ease-in-out infinite 1s; }
.scn-austrians-evacuate-provence .aep-fire { position:absolute; bottom:32%; left:45%; width:10%; height:12%; background: radial-gradient(circle at 50% 70%, #d08040 0%, #b06030 40%, #8a4020 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #b06030; animation: aep-fire 2s ease-in-out infinite alternate; }
.scn-austrians-evacuate-provence .aep-smoke { position:absolute; bottom:44%; left:48%; width:8%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(4px); animation: aep-smoke 8s ease-in-out infinite; }
.scn-austrians-evacuate-provence .aep-shadows { position:absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.3) 100%); animation: aep-shadows 12s ease-in-out infinite alternate; }
@keyframes aep-figure-a { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3%) rotate(3deg); } }
@keyframes aep-figure-b { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(-2deg); } }
@keyframes aep-fire { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes aep-smoke { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-5%) scale(1.2); opacity:0.3; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes aep-shadows { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* Scene 1: judgment-approaching-war */
.scn-judgment-approaching-war {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0f0a08 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%);
}
.scn-judgment-approaching-war .tent-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #4a3528 0%, #1a1210 100%);
  animation: jaw-tentbg 20s ease-in-out infinite alternate;
}
.scn-judgment-approaching-war .tent-wall {
  position: absolute; inset: 10% 5% 5% 5%;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 50%, #1a0e08 100%);
  border-radius: 10% / 8%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: jaw-wall 15s ease-in-out infinite;
}
.scn-judgment-approaching-war .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(0deg, #4a3520 0%, #6a4a30 50%, #4a3520 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: jaw-table 8s ease-in-out infinite;
}
.scn-judgment-approaching-war .map {
  position: absolute; bottom: 26%; left: 30%; width: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #8a7040 0%, #6a5030 70%, #3a2a10 100%);
  border-radius: 4%;
  transform: perspective(400px) rotateX(30deg);
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
  animation: jaw-map 12s ease-in-out infinite alternate;
}
.scn-judgment-approaching-war .candle {
  position: absolute; bottom: 28%; left: 45%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #4a2a10 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px #ffb060;
  animation: jaw-candle 3s ease-in-out infinite alternate;
}
.scn-judgment-approaching-war .figure-council {
  position: absolute; bottom: 16%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0f0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jaw-figure 6s ease-in-out infinite;
}
.scn-judgment-approaching-war .sword {
  position: absolute; bottom: 28%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0 0%, #806050 50%, #403020 100%);
  transform: rotate(-10deg);
  border-radius: 2px;
  animation: jaw-sword 4s ease-in-out infinite alternate;
}
@keyframes jaw-tentbg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes jaw-wall { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes jaw-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes jaw-map { 0% { transform: perspective(400px) rotateX(30deg) translateY(0); } 50% { transform: perspective(400px) rotateX(32deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(30deg) translateY(0); } }
@keyframes jaw-candle { 0% { opacity: 0.85; box-shadow: 0 0 15px 4px #ffb060; } 50% { opacity: 1; box-shadow: 0 0 28px 8px #ffc080; } 100% { opacity: 0.9; box-shadow: 0 0 18px 5px #ffa040; } }
@keyframes jaw-figure { 0% { transform: translateX(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes jaw-sword { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }

/* Scene 2: historical-glance-perspectives */
.scn-historical-glance-perspectives {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12101e 40%, #0a0810 100%),
    radial-gradient(ellipse at 60% 20%, #2a2a3e 0%, transparent 70%);
}
.scn-historical-glance-perspectives .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, #0a0808 100%);
  animation: hgp-room 25s ease-in-out infinite alternate;
}
.scn-historical-glance-perspectives .window-frame {
  position: absolute; top: 10%; left: 10%; width: 50%; height: 60%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: hgp-frame 18s ease-in-out infinite;
}
.scn-historical-glance-perspectives .night-sky {
  position: absolute; top: 12%; left: 12%; width: 46%; height: 56%;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a2a5e 100%);
  border-radius: 2%;
  animation: hgp-sky 30s ease-in-out infinite alternate;
}
.scn-historical-glance-perspectives .desk {
  position: absolute; bottom: 15%; left: 15%; right: 25%; height: 10%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a20 50%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 15px rgba(0,0,0,0.6);
  animation: hgp-desk 9s ease-in-out infinite;
}
.scn-historical-glance-perspectives .lamp {
  position: absolute; bottom: 28%; left: 28%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #ffb060;
  animation: hgp-lamp 4s ease-in-out infinite alternate;
}
.scn-historical-glance-perspectives .book {
  position: absolute; bottom: 16%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%);
  border-radius: 2% 2% 8% 8%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hgp-book 7s ease-in-out infinite alternate;
}
.scn-historical-glance-perspectives .figure-reading {
  position: absolute; bottom: 12%; left: 18%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hgp-figure 5s ease-in-out infinite;
}
@keyframes hgp-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hgp-frame { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes hgp-sky { 0% { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a2a5e 100%); } 50% { background: linear-gradient(180deg, #12122a 0%, #2a2a4a 50%, #3a3a6e 100%); } 100% { background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 50%, #2a2a5e 100%); } }
@keyframes hgp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes hgp-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 6px #ffb060; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffc080; } 100% { opacity: 0.85; box-shadow: 0 0 24px 8px #ffa040; } }
@keyframes hgp-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-1px); } 100% { transform: rotate(-17deg) translateY(0); } }
@keyframes hgp-figure { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }

/* Scene 3: tartar-nation-war */
.scn-tartar-nation-war {
  background: 
    linear-gradient(180deg, #f0d080 0%, #d0a060 40%, #a07030 100%),
    radial-gradient(ellipse at 80% 90%, #e0b060 0%, transparent 60%);
}
.scn-tartar-nation-war .sky-sun {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c070 60%, #d0a050 100%);
  animation: tnw-sky 20s ease-in-out infinite alternate;
}
.scn-tartar-nation-war .sun {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #f0a040 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffc060;
  animation: tnw-sun 6s ease-in-out infinite alternate;
}
.scn-tartar-nation-war .steppe {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #8a6030 0%, #c08040 40%, #a06020 100%);
  border-radius: 80% 60% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.3);
  animation: tnw-steppe 25s ease-in-out infinite;
}
.scn-tartar-nation-war .dust-cloud {
  position: absolute; bottom: 25%; left: 20%; width: 70%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,80,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: tnw-dust 15s ease-out infinite alternate;
}
.scn-tartar-nation-war .march-figures {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 30%;
  background: repeating-linear-gradient(
    90deg,
    #3a2510 0px, #3a2510 6px,
    transparent 6px, transparent 12px
  );
  mask-image: radial-gradient(ellipse at 50% 0%, black 0%, transparent 70%);
  mask-size: 100% 100%;
  animation: tnw-march 8s linear infinite;
}
.scn-tartar-nation-war .horse {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a4030 0%, #4a2818 100%);
  border-radius: 40% 20% 40% 20% / 60% 40% 60% 40%;
  animation: tnw-horse 3s ease-in-out infinite;
}
.scn-tartar-nation-war .banner {
  position: absolute; bottom: 22%; left: 55%; width: 4px; height: 30px;
  background: #5a2a1a; /* terracotta / rust instead of bright red */
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  transform-origin: bottom;
  animation: tnw-banner 4s ease-in-out infinite alternate;
}
@keyframes tnw-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tnw-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes tnw-steppe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes tnw-dust { 0% { transform: translateX(-10px) scaleX(1); opacity: 0.3; } 50% { transform: translateX(20px) scaleX(1.2); opacity: 0.6; } 100% { transform: translateX(40px) scaleX(0.8); opacity: 0.2; } }
@keyframes tnw-march { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes tnw-horse { 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 tnw-banner { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }

/* Scene 4: rome-particular-exception */
.scn-rome-particular-exception {
  background: 
    linear-gradient(180deg, #1a201a 0%, #121812 40%, #0a0e0a 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a2a 0%, transparent 70%);
}
.scn-rome-particular-exception .hall-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 60%, #3a3a2a 0%, #0f0f0a 100%);
  animation: rpe-hall 22s ease-in-out infinite alternate;
}
.scn-rome-particular-exception .column-left {
  position: absolute; bottom: 0; left: 10%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #6a6a4a 0%, #8a8a5a 40%, #5a5a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.3);
  animation: rpe-col 30s ease-in-out infinite;
}
.scn-rome-particular-exception .column-right {
  position: absolute; bottom: 0; right: 10%; width: 8%; height: 80%;
  background: linear-gradient(90deg, #5a5a3a 0%, #8a8a5a 60%, #6a6a4a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.3);
  animation: rpe-col 30s ease-in-out infinite -10s;
}
.scn-rome-particular-exception .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #3a3a2a 0%, #5a5a3a 60%, #4a4a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: rpe-floor 12s ease-in-out infinite alternate;
}
.scn-rome-particular-exception .map-rome {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #8a7a50 0%, #6a5a30 60%, #3a2510 100%);
  border-radius: 8%;
  transform: perspective(500px) rotateX(20deg);
  box-shadow: 0 4px 15px rgba(0,0,0,0.5);
  animation: rpe-map 15s ease-in-out infinite alternate;
}
.scn-rome-particular-exception .torch {
  position: absolute; bottom: 30%; left: 15%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #4a2a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px #ffb060;
  animation: rpe-torch 4s ease-in-out infinite alternate;
}
.scn-rome-particular-exception .figure-roman {
  position: absolute; bottom: 8%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1812 0%, #0f0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rpe-figure 7s ease-in-out infinite;
}
.scn-rome-particular-exception .helmet {
  position: absolute; bottom: 52%; left: 40%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #8a8a6a 0%, #5a5a3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
  animation: rpe-helmet 7s ease-in-out infinite -2s;
}
@keyframes rpe-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rpe-col { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes rpe-floor { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes rpe-map { 0% { transform: perspective(500px) rotateX(20deg) translateY(0); } 50% { transform: perspective(500px) rotateX(22deg) translateY(-2px); } 100% { transform: perspective(500px) rotateX(20deg) translateY(0); } }
@keyframes rpe-torch { 0% { opacity: 0.8; box-shadow: 0 0 24px 8px #ffb060; } 50% { opacity: 1; box-shadow: 0 0 40px 14px #ffc080; } 100% { opacity: 0.85; box-shadow: 0 0 28px 10px #ffa040; } }
@keyframes rpe-figure { 0% { transform: translateX(0); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes rpe-helmet { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* rapid-use-forces */
.scn-rapid-use-forces {
  background: 
    linear-gradient(180deg, #2c1e14 0%, #1a120e 50%, #120c0a 100%),
    radial-gradient(ellipse at 50% 30%, #3d2a1a 0%, transparent 70%);
}
.scn-rapid-use-forces .bg-walls {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1f15 0%, #1a1410 100%);
  animation: ruf-walls 20s ease-in-out infinite alternate;
}
.scn-rapid-use-forces .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3522 0%, #2c1e14 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: ruf-table 12s ease-in-out infinite;
}
.scn-rapid-use-forces .map {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #c8a87a 0%, #a8885e 50%, #7a6a4a 100%);
  border-radius: 2%; filter: drop-shadow(0 4px 6px rgba(0,0,0,0.5));
  animation: ruf-map 18s ease-in-out infinite alternate;
}
.scn-rapid-use-forces .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8c060 0%, #b08030 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #c09040;
  animation: ruf-lamp 3s ease-in-out infinite alternate;
}
.scn-rapid-use-forces .lamp-glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 10%);
  background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: ruf-glow 5s ease-in-out infinite alternate;
}
.scn-rapid-use-forces .documents {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 2%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: ruf-docs 15s ease-in-out infinite;
}
.scn-rapid-use-forces .hand {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a080 0%, #a07658 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ruf-hand 4s ease-in-out infinite;
}
@keyframes ruf-walls   { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ruf-table   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ruf-map     { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(0.98) rotate(-1deg) } }
@keyframes ruf-lamp    { 0% { box-shadow: 0 0 8px 2px #b08030; opacity:0.8 } 50% { box-shadow: 0 0 20px 6px #e8c060; opacity:1 } 100% { box-shadow: 0 0 12px 4px #c09040; opacity:0.9 } }
@keyframes ruf-glow    { 0% { opacity: 0.3; transform: translate(-50%, 10%) scale(1) } 50% { opacity: 0.6; transform: translate(-50%, 8%) scale(1.1) } 100% { opacity: 0.4; transform: translate(-50%, 12%) scale(0.95) } }
@keyframes ruf-docs    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes ruf-hand    { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(4deg) } 100% { transform: translateX(32px) rotate(0deg) } }

/* shortest-way-object */
.scn-shortest-way-object {
  background: 
    linear-gradient(90deg, #1e1814 0%, #2a221c 30%, #1e1814 70%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 80%, #2a221c 0%, transparent 70%);
}
.scn-shortest-way-object .bg-corridor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 100%);
  animation: swo-bg 25s ease-in-out infinite alternate;
}
.scn-shortest-way-object .wall-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 25%;
  background: linear-gradient(90deg, #3a2e28 0%, #2a221c 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: swo-wall 15s ease-in-out infinite;
}
.scn-shortest-way-object .wall-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 25%;
  background: linear-gradient(270deg, #3a2e28 0%, #2a221c 100%);
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
  animation: swo-wall 15s ease-in-out infinite reverse;
}
.scn-shortest-way-object .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 10% 10% 0 0;
  animation: swo-floor 20s ease-in-out infinite alternate;
}
.scn-shortest-way-object .doorway {
  position: absolute; bottom: 18%; left: 50%; width: 30%; height: 70%;
  transform: translateX(-50%);
  background: #1a1410;
  border: 2px solid #3a2e28;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-shortest-way-object .door-light {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #e8d080 0%, #c0a060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: swo-light 3s ease-in-out infinite alternate;
}
.scn-shortest-way-object .figure-small {
  position: absolute; bottom: 14%; left: 42%; width: 14px; height: 28px;
  background: #0a0806;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swo-figure 6s ease-in-out infinite;
}
@keyframes swo-bg     { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes swo-wall   { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes swo-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes swo-light  { 0% { opacity: 0.6; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.9) } }
@keyframes swo-figure { 0% { transform: translateX(0) } 25% { transform: translateX(10px) } 50% { transform: translateX(20px) } 75% { transform: translateX(10px) } 100% { transform: translateX(0) } }

/* principal-action-swift-execution */
.scn-principal-action-swift-execution {
  background: 
    linear-gradient(180deg, #221b15 0%, #1a1410 50%, #0e0a08 100%),
    radial-gradient(circle at 50% 60%, #3d2a1a 0%, transparent 70%);
}
.scn-principal-action-swift-execution .bg-workshop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c221c 0%, #1a1410 100%);
  animation: pase-bg 20s ease-in-out infinite alternate;
}
.scn-principal-action-swift-execution .table {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,0.7);
  animation: pase-table 15s ease-in-out infinite;
}
.scn-principal-action-swift-execution .sword {
  position: absolute; bottom: 18%; left: 50%; width: 12px; height: 80px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #c8c0b0 0%, #8a8a7a 50%, #606060 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 10px rgba(200,200,180,0.3);
  animation: pase-sword 5s ease-in-out infinite alternate;
}
.scn-principal-action-swift-execution .sword-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(220,200,170,0.15) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: pase-swordglow 4s ease-in-out infinite alternate;
}
.scn-principal-action-swift-execution .hand-reaching {
  position: absolute; bottom: 14%; left: 38%; width: 22px; height: 32px;
  background: #b08a6a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pase-hand 3s ease-in-out infinite;
}
.scn-principal-action-swift-execution .candle {
  position: absolute; bottom: 26%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c09060 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 16px 4px #d0a060;
  animation: pase-candle 2s ease-in-out infinite alternate;
}
@keyframes pase-bg       { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pase-table    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pase-sword    { 0% { transform: translateX(-50%) rotate(-15deg) scale(1) } 50% { transform: translateX(-50%) rotate(-12deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-18deg) scale(0.98) } }
@keyframes pase-swordglow { 0% { opacity: 0.3; transform: translate(-50%, -50%) scale(1) } 50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.2) } 100% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.8) } }
@keyframes pase-hand     { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(30px) rotate(-5deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes pase-candle   { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.85; transform: scaleY(0.95) } }

/* victory-nearer-easier */
.scn-victory-nearer-easier {
  background: 
    linear-gradient(180deg, #1e1814 0%, #2a221c 30%, #1a1410 70%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 40%, #2a221c 0%, transparent 70%);
}
.scn-victory-nearer-easier .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c221c 0%, #1a1410 100%);
  animation: vne-bg 22s ease-in-out infinite alternate;
}
.scn-victory-nearer-easier .window-frame {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 70%;
  border: 8px solid #3a2e28;
  border-radius: 2%; background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: vne-frame 18s ease-in-out infinite;
}
.scn-victory-nearer-easier .window-view {
  position: absolute; top: 6%; left: 31%; width: 38%; height: 68%;
  background: linear-gradient(180deg, #4a5a6e 0%, #6a7a8e 40%, #8a9aa0 70%, #b0b0a0 100%);
  border-radius: 1%;
  animation: vne-view 30s ease-in-out infinite alternate;
}
.scn-victory-nearer-easier .curtain-left {
  position: absolute; top: 5%; left: 28%; width: 8%; height: 72%;
  background: linear-gradient(135deg, #5a3228 0%, #3a1e18 100%);
  clip-path: polygon(100% 0, 100% 100%, 40% 85%, 30% 15%);
  animation: vne-curtain 15s ease-in-out infinite alternate;
}
.scn-victory-nearer-easier .curtain-right {
  position: absolute; top: 5%; right: 28%; width: 8%; height: 72%;
  background: linear-gradient(225deg, #5a3228 0%, #3a1e18 100%);
  clip-path: polygon(0 0, 0 100%, 60% 85%, 70% 15%);
  animation: vne-curtain 15s ease-in-out infinite alternate-reverse;
}
.scn-victory-nearer-easier .figure-profile {
  position: absolute; bottom: 8%; left: 40%; width: 18px; height: 40px;
  background: #0e0a08;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vne-figure 8s ease-in-out infinite;
}
.scn-victory-nearer-easier .window-glow {
  position: absolute; top: 20%; left: 32%; width: 36%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.08) 0%, transparent 70%);
  filter: blur(15px);
  animation: vne-glow 6s ease-in-out infinite alternate;
}
@keyframes vne-bg      { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes vne-frame   { 0% { transform: scale(1) } 50% { transform: scale(1.005) } 100% { transform: scale(0.995) } }
@keyframes vne-view    { 0% { opacity: 0.6; filter: brightness(0.8) } 50% { opacity: 0.9; filter: brightness(1) } 100% { opacity: 0.7; filter: brightness(0.9) } }
@keyframes vne-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes vne-figure  { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes vne-glow    { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

/* defence-of-theatre-loss-acceptable */
.scn-defence-of-theatre-loss-acceptable {
  background: linear-gradient(180deg, #f5eee7 0%, #e3d9cc 40%, #cbbeb0 100%), radial-gradient(ellipse at 70% 30%, #fff8f2 0%, transparent 60%);
}
.scn-defence-of-theatre-loss-acceptable .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8dd 0%, #d8cdbd 100%);
}
.scn-defence-of-theatre-loss-acceptable .window-glare {
  position: absolute; top: 8%; left: 65%; width: 20%; height: 35%; background: linear-gradient(135deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0) 70%); filter: blur(12px); animation: dota-window 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-loss-acceptable .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #b78f6c 0%, #9a7654 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.15), inset 0 2px 4px rgba(255,255,255,0.3);
}
.scn-defence-of-theatre-loss-acceptable .map {
  position: absolute; bottom: 22%; left: 18%; width: 55%; height: 18%; background: linear-gradient(135deg, #f5e6c0 0%, #e3cfa0 100%); transform: rotate(-3deg); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); animation: dota-map 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-loss-acceptable .map-tear {
  position: absolute; bottom: 22%; left: 65%; width: 8%; height: 12%; background: linear-gradient(135deg, #cbbeb0 0%, #b3a38f 100%); clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%); animation: dota-tear 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-loss-acceptable .hands {
  position: absolute; bottom: 18%; width: 8%; height: 16%; background: linear-gradient(180deg, #d4b99a 0%, #b89674 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-defence-of-theatre-loss-acceptable .left-hand {
  left: 30%; transform: rotate(-10deg); animation: dota-hand-l 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-loss-acceptable .right-hand {
  left: 55%; transform: rotate(10deg); animation: dota-hand-r 4s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-loss-acceptable .paper-scroll {
  position: absolute; bottom: 12%; right: 15%; width: 12%; height: 8%; background: linear-gradient(180deg, #f3e6c8 0%, #dacba6 100%); border-radius: 4px 4px 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.1); animation: dota-scroll 12s ease-in-out infinite;
}
@keyframes dota-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.7; } }
@keyframes dota-map { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes dota-tear { 0% { clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%); opacity: 0.8; } 50% { clip-path: polygon(10% 10%, 90% 30%, 70% 90%, 30% 70%); opacity: 1; } 100% { clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 80%); opacity: 0.8; } }
@keyframes dota-hand-l { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dota-hand-r { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes dota-scroll { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }

/* defence-of-theatre-late-campaign */
.scn-defence-of-theatre-late-campaign {
  background: linear-gradient(180deg, #e6ddd0 0%, #d6cbbc 50%, #c2b3a1 100%), radial-gradient(ellipse at 20% 40%, #fff5eb 0%, transparent 60%);
}
.scn-defence-of-theatre-late-campaign .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #dccfc0 0%, #c2b39f 100%);
}
.scn-defence-of-theatre-late-campaign .wall-map {
  position: absolute; top: 10%; left: 15%; width: 60%; height: 40%; background: linear-gradient(135deg, #efdcb0 0%, #d7c394 100%); border: 2px solid #9c8768; border-radius: 2px; box-shadow: 0 4px 16px rgba(0,0,0,0.1); animation: dotb-wallmap 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-late-campaign .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 20%; background: linear-gradient(180deg, #a58564 0%, #8b6e4e 100%); border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-late-campaign .table.oblong {
  height: 22%; border-radius: 6px 6px 20% 20%;
}
.scn-defence-of-theatre-late-campaign .markers {
  position: absolute; bottom: 22%; left: 20%; width: 50%; height: 10%; background: radial-gradient(circle at 30% 50%, #7a5a3a 0%, transparent 20%), radial-gradient(circle at 70% 30%, #6b4d32 0%, transparent 20%), radial-gradient(circle at 50% 70%, #9a7a54 0%, transparent 20%); animation: dotb-markers 18s ease-in-out infinite;
}
.scn-defence-of-theatre-late-campaign .figure {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 25%; background: linear-gradient(180deg, #b49a7e 0%, #8c7258 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dotb-figure 10s ease-in-out infinite;
}
.scn-defence-of-theatre-late-campaign .figure.profile {
  border-radius: 50% 50% 30% 40% / 60% 50% 40% 40%; transform: scaleX(-1);
}
.scn-defence-of-theatre-late-campaign .clock {
  position: absolute; top: 20%; right: 8%; width: 12%; height: 12%; background: radial-gradient(circle, #f3e8d0 0%, #cbb396 60%, #9c8368 100%); border-radius: 50%; box-shadow: 0 2px 10px rgba(0,0,0,0.15); animation: dotb-clock 4s ease-in-out infinite; 
}
.scn-defence-of-theatre-late-campaign .candle {
  position: absolute; bottom: 30%; left: 10%; width: 4%; height: 14%; background: linear-gradient(180deg, #f5e6c8 0%, #dbb784 40%, #b87944 100%); border-radius: 2px 2px 4px 4px; animation: dotb-candle 3s ease-in-out infinite alternate;
}
@keyframes dotb-wallmap { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes dotb-markers { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-3px); } 100% { opacity: 0.6; transform: translateY(0); } }
@keyframes dotb-figure { 0% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateY(-4px) rotate(1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } }
@keyframes dotb-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes dotb-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 20px 4px #f0c060; } 100% { transform: scaleY(1); opacity: 0.8; } }

/* defence-of-theatre-staff-activity */
.scn-defence-of-theatre-staff-activity {
  background: linear-gradient(180deg, #efe6d8 0%, #ded1be 50%, #cabbac 100%), radial-gradient(ellipse at 50% 20%, #fff7ec 0%, transparent 60%);
}
.scn-defence-of-theatre-staff-activity .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e5d7c5 0%, #cbb9a4 100%);
}
.scn-defence-of-theatre-staff-activity .desk {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 18%; background: linear-gradient(180deg, #b3885e 0%, #8f6a44 100%); border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-staff-activity .paper-stack {
  position: absolute; bottom: 22%; left: 20%; width: 20%; height: 12%; background: linear-gradient(180deg, #f7ecd0 0%, #e3d4ad 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); animation: dotc-papers 14s ease-in-out infinite;
}
.scn-defence-of-theatre-staff-activity .inkwell {
  position: absolute; bottom: 24%; left: 50%; width: 6%; height: 8%; background: linear-gradient(180deg, #40382e 0%, #221e16 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-staff-activity .quill {
  position: absolute; bottom: 30%; left: 48%; width: 2%; height: 20%; background: linear-gradient(180deg, #e8dcc0 0%, #b8a88c 40%, #6a5c4a 100%); transform: rotate(-20deg); border-radius: 2px; transform-origin: bottom center; animation: dotc-quill 2s ease-in-out infinite;
}
.scn-defence-of-theatre-staff-activity .writer {
  position: absolute; bottom: 12%; left: 15%; width: 12%; height: 30%; background: linear-gradient(180deg, #bca78a 0%, #8c775e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dotc-writer 6s ease-in-out infinite;
}
.scn-defence-of-theatre-staff-activity .assistant {
  position: absolute; bottom: 14%; right: 20%; width: 10%; height: 24%; background: linear-gradient(180deg, #a49178 0%, #7a6a56 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dotc-assistant 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-staff-activity .lamp {
  position: absolute; top: 15%; left: 50%; width: 12%; height: 18%; background: radial-gradient(ellipse at 50% 30%, #fce8b0 0%, #e8c880 50%, transparent 100%); filter: blur(4px); animation: dotc-lamp 5s ease-in-out infinite alternate;
}
@keyframes dotc-papers { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dotc-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes dotc-writer { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dotc-assistant { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dotc-lamp { 0% { opacity: 0.7; filter: blur(4px); } 50% { opacity: 1; filter: blur(2px); } 100% { opacity: 0.7; filter: blur(4px); } }

/* defence-of-theatre-staff-sway */
.scn-defence-of-theatre-staff-sway {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c5ad 50%, #c0ab93 100%), radial-gradient(ellipse at 50% 50%, #f5efe5 0%, transparent 60%);
}
.scn-defence-of-theatre-staff-sway .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #dbcaae 0%, #bfaa8e 100%);
}
.scn-defence-of-theatre-staff-sway .table {
  position: absolute; bottom: 12%; left: 12%; right: 12%; height: 20%; background: linear-gradient(180deg, #9e7d5a 0%, #7a5d3e 100%); border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-staff-sway .map {
  position: absolute; bottom: 18%; left: 18%; width: 55%; height: 16%; background: linear-gradient(135deg, #f3e4c0 0%, #dbcba0 100%); transform: rotate(-2deg); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); animation: dotd-map 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-staff-sway .commander {
  position: absolute; bottom: 12%; left: 30%; width: 14%; height: 40%; background: linear-gradient(180deg, #c4ad90 0%, #8c7760 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dotd-commander 10s ease-in-out infinite;
}
.scn-defence-of-theatre-staff-sway .officers {
  position: absolute; bottom: 14%; right: 15%; width: 10%; height: 22%; background: linear-gradient(180deg, #b49e84 0%, #7c6a54 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dotd-officers 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-staff-sway .shadow-influence {
  position: absolute; bottom: 0; left: 0; right: 0; height: 80%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); animation: dotd-shadow 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-staff-sway .door {
  position: absolute; top: 10%; right: 8%; width: 15%; height: 55%; background: linear-gradient(180deg, #b39474 0%, #8c7256 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.2); animation: dotd-door 15s ease-in-out infinite;
}
@keyframes dotd-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes dotd-commander { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dotd-officers { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes dotd-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes dotd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }

/* Scene: positive-success-great-stake (tense, dim interior) */
.scn-positive-success-great-stake {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: 
    linear-gradient(180deg, #1c1512 0%, #2a1e1a 50%, #3a2822 100%),
    radial-gradient(ellipse at 50% 30%, #4a342a 0%, transparent 70%);
}
.scn-positive-success-great-stake .wall-shadow {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.9) 0%, transparent 100%);
  animation: ps1-wall-shake 5s ease-in-out infinite alternate;
}
.scn-positive-success-great-stake .table {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #3d2b1f 0%, #2a1c12 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: ps1-table-breathe 8s ease-in-out infinite;
}
.scn-positive-success-great-stake .candle {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #fae5c3 0%, #d4b080 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ps1-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-positive-success-great-stake .flame {
  position: absolute;
  bottom: 52%;
  left: 45.5%;
  width: 8px;
  height: 20px;
  background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #ffaa44 40%, #cc6622 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 6px #ffaa44, 0 0 40px 12px rgba(255,170,68,0.4);
  animation: ps1-flame-dance 0.5s ease-in-out infinite alternate;
}
.scn-positive-success-great-stake .document {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 40%;
  height: 15%;
  background: linear-gradient(135deg, #efe3c3 0%, #d7c9a8 100%);
  border-radius: 2%;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom left;
  animation: ps1-document-tremble 4s ease-in-out infinite alternate;
}
.scn-positive-success-great-stake .hand {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #2c1b14 0%, #1e100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ps1-hand-reach 6s ease-in-out infinite;
}
.scn-positive-success-great-stake .pin {
  position: absolute;
  bottom: 40%;
  left: 60%;
  width: 4px;
  height: 4px;
  background: #c8553d; /* desaturated red */
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,85,61,0.6);
  animation: ps1-pin-pulse 2s ease-in-out infinite alternate;
}
@keyframes ps1-wall-shake { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ps1-table-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } }
@keyframes ps1-candle-flicker { 0% { height:30px; transform: scaleX(1) } 50% { height:28px; transform: scaleX(1.05) } 100% { height:32px; transform: scaleX(0.95) } }
@keyframes ps1-flame-dance { 0% { height:20px; transform: translateX(-1px) rotate(-5deg) } 50% { height:24px; transform: translateX(1px) rotate(5deg) } 100% { height:18px; transform: translateX(0) rotate(0) } }
@keyframes ps1-document-tremble { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(0.3deg) } 75% { transform: rotate(-0.2deg) } }
@keyframes ps1-hand-reach { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(0deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(-1deg) } }
@keyframes ps1-pin-pulse { 0% { box-shadow: 0 0 6px 2px rgba(200,85,61,0.6) } 100% { box-shadow: 0 0 12px 6px rgba(200,85,61,0.9) } }

/* Scene: plan-destruction-object (calm, dim interior) */
.scn-plan-destruction-object {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: 
    linear-gradient(180deg, #2a2420 0%, #3a3028 50%, #4a3c32 100%),
    radial-gradient(ellipse at 60% 40%, #5a4a3e 0%, transparent 70%);
}
.scn-plan-destruction-object .bg-wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1c1612 0%, transparent 100%);
  animation: pd2-wall-fade 15s ease-in-out infinite alternate;
}
.scn-plan-destruction-object .desk {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 35%;
  background: linear-gradient(180deg, #4a3a2e 0%, #33261c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.6);
}
.scn-plan-destruction-object .lamp {
  position: absolute;
  bottom: 40%;
  left: 20%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 40% 40%;
}
.scn-plan-destruction-object .lamplight {
  position: absolute;
  bottom: 30%;
  left: 18%;
  width: 15px;
  height: 20px;
  background: radial-gradient(circle, #e8d4b4 0%, #c8a878 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,168,120,0.3);
  animation: pd2-lamp-glow 8s ease-in-out infinite alternate;
}
.scn-plan-destruction-object .papers {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 50%;
  height: 12%;
  background: linear-gradient(135deg, #ede4ce 0%, #d9cfb5 100%);
  border-radius: 2%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
  animation: pd2-papers-slide 20s linear infinite alternate;
}
.scn-plan-destruction-object .inkwell {
  position: absolute;
  bottom: 22%;
  left: 65%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.5);
}
.scn-plan-destruction-object .pen {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 6px;
  height: 30px;
  background: linear-gradient(180deg, #c8a85a 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom left;
  animation: pd2-pen-dip 6s ease-in-out infinite alternate;
}
@keyframes pd2-wall-fade { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes pd2-lamp-glow { 0% { box-shadow: 0 0 30px 10px rgba(200,168,120,0.2); opacity:0.8 } 50% { box-shadow: 0 0 60px 30px rgba(200,168,120,0.4); opacity:1 } 100% { box-shadow: 0 0 35px 12px rgba(200,168,120,0.25); opacity:0.9 } }
@keyframes pd2-papers-slide { 0% { transform: translateX(-2px) rotate(0.5deg) } 50% { transform: translateX(2px) rotate(-0.3deg) } 100% { transform: translateX(-2px) rotate(0.5deg) } }
@keyframes pd2-pen-dip { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-10deg) translateY(3px) } 50% { transform: rotate(5deg) translateY(-2px) } 75% { transform: rotate(-5deg) translateY(1px) } }

/* Scene: swift-action-principle (calm, dim interior, cool light) */
.scn-swift-action-principle {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: 
    linear-gradient(180deg, #1e2836 0%, #2a3440 50%, #384656 100%),
    radial-gradient(ellipse at 30% 50%, #2a3440 0%, transparent 70%);
}
.scn-swift-action-principle .window-frame {
  position: absolute;
  inset: 8% 10% 60% 10%;
  background: #1a202a;
  border-radius: 2%;
  box-shadow: inset 0 0 0 6px #2c3638;
  animation: sa3-frame-space 7s ease-in-out infinite alternate;
}
.scn-swift-action-principle .sky-outside {
  position: absolute;
  inset: 12% 14% 64% 14%;
  background: linear-gradient(180deg, #4a6678 0%, #6a8298 100%);
  border-radius: 1%;
  animation: sa3-sky-breathe 12s ease-in-out infinite alternate;
}
.scn-swift-action-principle .clock-face {
  position: absolute;
  bottom: 40%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: radial-gradient(circle, #e8e0d8 0%, #b8b0a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,190,180,0.15), inset 0 0 10px rgba(0,0,0,0.2);
  animation: sa3-clock-glow 5s ease-in-out infinite alternate;
}
.scn-swift-action-principle .pendulum {
  position: absolute;
  bottom: 20%;
  left: 48%;
  width: 4px;
  height: 25%;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  transform-origin: top center;
  animation: sa3-pendulum-swing 2s ease-in-out infinite alternate;
}
.scn-swift-action-principle .pendulum::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: -6px;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #c8b880 0%, #9a8a60 100%);
  border-radius: 50%;
}
.scn-swift-action-principle .figure-silhouette {
  position: absolute;
  bottom: 10%;
  left: 60%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: sa3-figure-rush 3s ease-in-out infinite;
}
.scn-swift-action-principle .dust-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 30% 40%, rgba(220,210,200,0.08) 0%, transparent 50%);
  animation: sa3-dust-drift 12s linear infinite;
}
@keyframes sa3-frame-space { 0%,100% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.01) scaleY(1.005) } }
@keyframes sa3-sky-breathe { 0% { opacity:0.6 } 100% { opacity:0.8 } }
@keyframes sa3-clock-glow { 0% { box-shadow: 0 0 15px 5px rgba(200,190,180,0.1) } 100% { box-shadow: 0 0 30px 12px rgba(200,190,180,0.25) } }
@keyframes sa3-pendulum-swing { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes sa3-figure-rush { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } }
@keyframes sa3-dust-drift { 0% { transform: translateX(0) } 100% { transform: translateX(100px) } }

/* Scene: theatre-war-situation (calm, dim interior, warm stage light) */
.scn-theatre-war-situation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: 
    linear-gradient(180deg, #1c1418 0%, #2a1e22 50%, #3a282e 100%),
    radial-gradient(ellipse at 50% 80%, #4a3238 0%, transparent 70%);
}
.scn-theatre-war-situation .stage-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #4a3830 0%, #3a2a22 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-theatre-war-situation .curtain-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 18%;
  height: 100%;
  background: linear-gradient(135deg, #7a4538 0%, #5a3024 100%);
  border-radius: 0 60% 60% 0;
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.4);
  animation: tw4-curtain-sway 8s ease-in-out infinite alternate;
}
.scn-theatre-war-situation .curtain-right {
  position: absolute;
  top: 0;
  right: 0;
  width: 18%;
  height: 100%;
  background: linear-gradient(225deg, #7a4538 0%, #5a3024 100%);
  border-radius: 60% 0 0 60%;
  box-shadow: inset 10px 0 30px rgba(0,0,0,0.4);
  animation: tw4-curtain-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-theatre-war-situation .spotlight {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 20%;
  height: 60%;
  background: linear-gradient(180deg, rgba(240,220,180,0.15) 0%, rgba(240,220,180,0.05) 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: tw4-spotlight-sweep 12s ease-in-out infinite alternate;
}
.scn-theatre-war-situation .army-silhouette {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: #1a1a1a;
  clip-path: polygon(10% 100%, 20% 40%, 30% 25%, 40% 40%, 50% 30%, 60% 50%, 70% 30%, 80% 45%, 90% 100%);
  border-radius: 0;
  animation: tw4-army-march 6s ease-in-out infinite;
}
.scn-theatre-war-situation .map-stand {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 15%;
  height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
@keyframes tw4-curtain-sway { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes tw4-spotlight-sweep { 0% { transform: translateX(-10%) rotate(-2deg) } 50% { transform: translateX(0%) rotate(0deg) } 100% { transform: translateX(10%) rotate(2deg) } }
@keyframes tw4-army-march { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-3px) } }

/* culminating-point-flanks */
.scn-culminating-point-flanks { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 60%); }
.scn-culminating-point-flanks .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); animation: cpf-sky 8s ease-in-out infinite alternate; }
.scn-culminating-point-flanks .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #2a3a2a 0%, #3a4a3a 50%, #4a5a4a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,0.5); }
.scn-culminating-point-flanks .left-army { position:absolute; bottom:25%; left:15%; width:15%; height:20%; background: radial-gradient(ellipse 80% 60% at 50% 100%, #1a2a1a 0%, #0a1a0a 60%, transparent 100%); border-radius: 50%; transform-origin: bottom center; animation: cpf-army 4s ease-in-out infinite; }
.scn-culminating-point-flanks .right-army { position:absolute; bottom:25%; right:15%; width:15%; height:20%; background: radial-gradient(ellipse 80% 60% at 50% 100%, #1a2a1a 0%, #0a1a0a 60%, transparent 100%); border-radius: 50%; transform-origin: bottom center; animation: cpf-army 4s ease-in-out infinite reverse; }
.scn-culminating-point-flanks .flank-line { position:absolute; bottom:30%; left:30%; width:40%; height:6px; background: linear-gradient(90deg, transparent 0%, #8a6a4a 20%, #8a6a4a 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: cpf-flank 6s ease-in-out infinite; }
.scn-culminating-point-flanks .comm-line { position:absolute; bottom:35%; left:40%; width:20%; height:4px; background: linear-gradient(90deg, transparent 0%, #a08060 50%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: cpf-comm 10s ease-in-out infinite; }
.scn-culminating-point-flanks .fog { position:absolute; top:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(80,100,90,0.3) 0%, transparent 100%); filter: blur(8px); animation: cpf-fog 20s linear infinite; }
@keyframes cpf-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes cpf-army { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(-4px) scaleX(0.95) } 50% { transform: translateY(0) scaleX(1) } 75% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes cpf-flank { 0% { opacity:0.3; transform: scaleX(0.8) } 50% { opacity:1; transform: scaleX(1.2) } 100% { opacity:0.3; transform: scaleX(0.8) } }
@keyframes cpf-comm { 0% { opacity:0.2; transform: scaleX(0.9) } 50% { opacity:0.8; transform: scaleX(1.1) } 100% { opacity:0.2; transform: scaleX(0.9) } }
@keyframes cpf-fog { 0% { transform: translateX(-10%) } 50% { transform: translateX(10%) } 100% { transform: translateX(-10%) } }

/* culminating-point-distance */
.scn-culminating-point-distance { background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 50%, #c0b498 100%), radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%); }
.scn-culminating-point-distance .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c8b0 0%, #c0b498 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-culminating-point-distance .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #a09070 0%, #b8a888 50%, #c8b898 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); }
.scn-culminating-point-distance .table { position:absolute; bottom:22%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 8% 8% / 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: cpd-table 12s ease-in-out infinite; }
.scn-culminating-point-distance .map { position:absolute; bottom:28%; left:35%; width:25%; height:8%; background: linear-gradient(135deg, #daceb0 0%, #c4b490 50%, #daceb0 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transform-origin: center; animation: cpd-map 8s ease-in-out infinite; }
.scn-culminating-point-distance .chest { position:absolute; bottom:20%; right:20%; width:12%; height:14%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 8% 8% / 20% 20% 15% 15%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cpd-chest 6s ease-in-out infinite; }
.scn-culminating-point-distance .window { position:absolute; top:12%; left:60%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 50%, #f0ecd8 0%, #e0d4b8 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(240,236,216,0.3); animation: cpd-window 5s ease-in-out infinite alternate; }
.scn-culminating-point-distance .figure { position:absolute; bottom:24%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cpd-figure 4s ease-in-out infinite; }
@keyframes cpd-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cpd-map { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes cpd-chest { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes cpd-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cpd-figure { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-3px) scaleY(0.98) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }

/* culminating-point-increased-resistance */
.scn-culminating-point-increased-resistance { background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 40%, #1a2a2a 100%), radial-gradient(ellipse at 50% 0%, #4a5a5a 0%, transparent 70%); }
.scn-culminating-point-increased-resistance .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); animation: cir-sky 9s ease-in-out infinite alternate; }
.scn-culminating-point-increased-resistance .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 50%, #3a4a3a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-culminating-point-increased-resistance .figure-drop { position:absolute; bottom:30%; left:25%; width:8%; height:18%; background: radial-gradient(ellipse 50% 80% at 50% 100%, #1a1a2a 0%, #0a0a1a 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cir-drop 3s ease-in-out infinite; }
.scn-culminating-point-increased-resistance .figure-rush { position:absolute; bottom:28%; right:20%; width:8%; height:20%; background: radial-gradient(ellipse 50% 80% at 50% 100%, #1a1a2a 0%, #0a0a1a 60%, transparent 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cir-rush 2.5s ease-in-out infinite; }
.scn-culminating-point-increased-resistance .explosion-a { position:absolute; top:35%; left:40%; width:15%; height:15%; background: radial-gradient(circle at 50% 50%, #c8663a 0%, #a0441a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,102,58,0.4); animation: cir-explode 1.5s ease-in-out infinite; }
.scn-culminating-point-increased-resistance .explosion-b { position:absolute; top:45%; right:30%; width:10%; height:10%; background: radial-gradient(circle at 50% 50%, #b85830 0%, #8a3a1a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(184,88,48,0.3); animation: cir-explode 2s ease-in-out infinite 0.5s; }
.scn-culminating-point-increased-resistance .smoke { position:absolute; top:25%; left:30%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 50%, rgba(80,90,80,0.4) 0%, transparent 100%); filter: blur(10px); animation: cir-smoke 12s linear infinite; }
@keyframes cir-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes cir-drop { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(20px) rotate(20deg) } 50% { transform: translateY(30px) rotate(30deg) } 70% { transform: translateY(20px) rotate(20deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cir-rush { 0% { transform: translateX(0) } 25% { transform: translateX(-15px) } 50% { transform: translateX(0) } 75% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes cir-explode { 0% { transform: scale(0.5); opacity:1 } 20% { transform: scale(1.5); opacity:0.9 } 50% { transform: scale(2); opacity:0.7 } 80% { transform: scale(1.5); opacity:0.5 } 100% { transform: scale(0.5); opacity:0 } }
@keyframes cir-smoke { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(10%) translateY(-5%) } 50% { transform: translateX(20%) translateY(0) } 75% { transform: translateX(10%) translateY(5%) } 100% { transform: translateX(0) translateY(0) } }

/* culminating-point-means-not-end */
.scn-culminating-point-means-not-end { background: linear-gradient(180deg, #d8d0c0 0%, #c8c0b0 50%, #b8b0a0 100%), radial-gradient(ellipse at 50% 100%, #c0b8a8 0%, transparent 70%); }
.scn-culminating-point-means-not-end .room { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8c0b0 0%, #b8b0a0 100%); border-radius: 0 0 15% 15% / 0 0 10% 10%; }
.scn-culminating-point-means-not-end .desk { position:absolute; bottom:20%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 8% 8% 6% 6% / 20% 20% 15% 15%; box-shadow: 0 4px 10px rgba(0,0,0,0.2); animation: cmn-desk 10s ease-in-out infinite; }
.scn-culminating-point-means-not-end .map { position:absolute; bottom:28%; left:30%; width:30%; height:8%; background: linear-gradient(135deg, #daceb0 0%, #c4b490 50%, #daceb0 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transform-origin: center; animation: cmn-map 7s ease-in-out infinite; }
.scn-culminating-point-means-not-end .candle { position:absolute; bottom:30%; right:25%; width:4%; height:8%; background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 50%, #a08050 100%); border-radius: 50% 50% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 0 20px 8px rgba(240,216,160,0.5); animation: cmn-candle 3s ease-in-out infinite alternate; }
.scn-culminating-point-means-not-end .figure { position:absolute; bottom:24%; left:40%; width:10%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cmn-figure 5s ease-in-out infinite; }
.scn-culminating-point-means-not-end .shadow { position:absolute; bottom:20%; left:35%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(4px); animation: cmn-shadow 6s ease-in-out infinite; }
@keyframes cmn-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cmn-map { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes cmn-candle { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity:0.85 } }
@keyframes cmn-figure { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(0.98) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(-1px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cmn-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(2px) } 100% { transform: scaleX(1) translateX(0) } }

/* Scene 1: subsistence-system-magazines – calm dim interior with map and candle */
.scn-subsistence-system-magazines {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1c 0%, transparent 60%);
}
.scn-subsistence-system-magazines .bg-deep {
  position:absolute; inset:0; background:radial-gradient(circle at 20% 30%, #0f0a06 0%, transparent 70%);
  animation: sm1-deep 12s ease-in-out infinite alternate;
}
.scn-subsistence-system-magazines .wall-shadow {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #1a1410 0%, transparent 100%);
  animation: sm1-shadow 8s ease-in-out infinite alternate;
}
.scn-subsistence-system-magazines .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:20%;
  background:linear-gradient(180deg, #4a3520 0%, #2a1e14 100%);
  border-radius:6px 6px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,0.6);
}
.scn-subsistence-system-magazines .map {
  position:absolute; bottom:20%; left:30%; right:20%; height:14%;
  background:linear-gradient(135deg, #b8a080 0%, #8a6e4e 50%, #6a5236 100%);
  border-radius:4px; transform:rotate(-2deg);
  box-shadow:0 2px 8px rgba(0,0,0,0.5);
  animation: sm1-map 20s ease-in-out infinite alternate;
}
.scn-subsistence-system-magazines .candle {
  position:absolute; bottom:22%; left:60%; width:6px; height:16px;
  background:linear-gradient(180deg, #e8d4b0 0%, #b09878 100%);
  border-radius:3px 3px 2px 2px; transform:rotate(2deg);
}
.scn-subsistence-system-magazines .flame {
  position:absolute; bottom:38%; left:60%; width:8px; height:12px;
  background:radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8030 60%, transparent 100%);
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  transform:translateX(-1px);
  box-shadow:0 0 20px 8px rgba(255,128,48,0.4);
  animation: sm1-flame 2s ease-in-out infinite alternate;
}
.scn-subsistence-system-magazines .chair {
  position:absolute; bottom:8%; left:12%; width:20px; height:24px;
  background:linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%);
  border-radius:4px 4px 0 0; transform:rotate(2deg);
  animation: sm1-chair 6s ease-in-out infinite alternate;
}
.scn-subsistence-system-magazines .doc-scatter {
  position:absolute; bottom:16%; left:22%; width:12px; height:8px;
  background:#a08060; border-radius:2px; transform:rotate(-5deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: sm1-doc 14s ease-in-out infinite alternate;
}

@keyframes sm1-deep { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes sm1-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }
@keyframes sm1-map { 0% { transform:rotate(-2deg) scale(1) } 50% { transform:rotate(-1deg) scale(1.01) } 100% { transform:rotate(-3deg) scale(0.99) } }
@keyframes sm1-flame { 0% { transform:translateX(-1px) scaleY(1) } 50% { transform:translateX(1px) scaleY(1.1) } 100% { transform:translateX(-2px) scaleY(0.9) } }
@keyframes sm1-chair { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-1px) } 100% { transform:rotate(3deg) translateY(0) } }
@keyframes sm1-doc { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-4deg) translateX(1px) } 100% { transform:rotate(-6deg) translateX(-1px) } }

/* Scene 2: essential-not-overshadowed – tense dim interior with lamp and figure */
.scn-essential-not-overshadowed {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 70% 60%, #4a3828 0%, transparent 70%);
}
.scn-essential-not-overshadowed .bg-deep {
  position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, #0f0a06 0%, transparent 60%);
  animation: sm2-deep 6s ease-in-out infinite alternate;
}
.scn-essential-not-overshadowed .wall-shadow {
  position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #1a1410 0%, transparent 100%);
  animation: sm2-wall 4s ease-in-out infinite alternate;
}
.scn-essential-not-overshadowed .table {
  position:absolute; bottom:10%; left:10%; right:10%; height:18%;
  background:linear-gradient(180deg, #4a3520 0%, #2a1e14 100%);
  border-radius:8px 8px 0 0; box-shadow:0 -6px 16px rgba(0,0,0,0.7);
}
.scn-essential-not-overshadowed .map {
  position:absolute; bottom:18%; left:22%; right:22%; height:12%;
  background:linear-gradient(135deg, #b8a080 0%, #8a6e4e 50%, #6a5236 100%);
  border-radius:3px; transform:rotate(1deg);
  box-shadow:0 2px 6px rgba(0,0,0,0.5);
  animation: sm2-map 8s ease-in-out infinite alternate;
}
.scn-essential-not-overshadowed .lamp {
  position:absolute; bottom:28%; left:65%; width:8px; height:18px;
  background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1c 100%);
  border-radius:4px 4px 2px 2px; transform:rotate(-3deg);
}
.scn-essential-not-overshadowed .lamp-glow {
  position:absolute; bottom:30%; left:65%; width:20px; height:20px;
  background:radial-gradient(circle, #ffd080 0%, #ff8030 40%, transparent 80%);
  transform:translate(-6px, -10px);
  box-shadow:0 0 30px 15px rgba(255,128,48,0.3);
  animation: sm2-glow 2s ease-in-out infinite alternate;
}
.scn-essential-not-overshadowed .figure {
  position:absolute; bottom:16%; left:30%; width:16px; height:30px;
  background:linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; /* ovoid */
  transform-origin: bottom center;
  animation: sm2-figure 3s ease-in-out infinite alternate;
}
.scn-essential-not-overshadowed .shadow-figure {
  position:absolute; bottom:18%; left:28%; width:20px; height:32px;
  background:rgba(0,0,0,0.3); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  filter:blur(4px); transform:rotate(5deg);
  animation: sm2-shadow 3.5s ease-in-out infinite alternate;
}

@keyframes sm2-deep { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes sm2-wall { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes sm2-map { 0% { transform:rotate(1deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(2deg) } }
@keyframes sm2-glow { 0% { opacity:0.6; transform:translate(-6px, -10px) scale(0.9) } 50% { opacity:1; transform:translate(-4px, -12px) scale(1.1) } 100% { opacity:0.7; transform:translate(-7px, -9px) scale(0.85) } }
@keyframes sm2-figure { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(4px) rotate(2deg) } 100% { transform:translateX(-2px) rotate(-1deg) } }
@keyframes sm2-shadow { 0% { transform:rotate(5deg) translateX(0) } 50% { transform:rotate(3deg) translateX(3px) } 100% { transform:rotate(6deg) translateX(-2px) } }

/* Scene 3: no-resting-point-offensive – tense dim interior with pointing figure */
.scn-no-resting-point-offensive {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 40% 50%, #4a3828 0%, transparent 60%);
}
.scn-no-resting-point-offensive .bg-deep {
  position:absolute; inset:0; background:radial-gradient(circle at 70% 20%, #0f0a06 0%, transparent 70%);
  animation: sm3-deep 5s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .wall-shadow {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #1a1410 0%, transparent 100%);
  animation: sm3-wall 7s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .table {
  position:absolute; bottom:10%; left:8%; right:8%; height:16%;
  background:linear-gradient(180deg, #4a3520 0%, #2a1e14 100%);
  border-radius:10px 10px 0 0; box-shadow:0 -8px 20px rgba(0,0,0,0.8);
}
.scn-no-resting-point-offensive .map {
  position:absolute; bottom:16%; left:18%; right:18%; height:10%;
  background:linear-gradient(135deg, #b8a080 0%, #8a6e4e 50%, #6a5236 100%);
  border-radius:3px; transform:rotate(-3deg);
  box-shadow:0 2px 8px rgba(0,0,0,0.6);
  animation: sm3-map 4s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .candle {
  position:absolute; bottom:22%; left:72%; width:5px; height:14px;
  background:linear-gradient(180deg, #e8d4b0 0%, #b09878 100%);
  border-radius:2px; transform:rotate(-2deg);
}
.scn-no-resting-point-offensive .flame {
  position:absolute; bottom:36%; left:72%; width:7px; height:10px;
  background:radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8030 60%, transparent 100%);
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow:0 0 18px 6px rgba(255,128,48,0.5);
  animation: sm3-flame 1.5s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .figure-pointing {
  position:absolute; bottom:14%; left:35%; width:18px; height:34px;
  background:linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm3-point 2.5s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .staff {
  position:absolute; bottom:14%; left:45%; width:2px; height:20px;
  background:#4a3520; transform:rotate(15deg);
  border-radius:1px; transform-origin: bottom center;
  animation: sm3-staff 2.5s ease-in-out infinite alternate;
}
.scn-no-resting-point-offensive .shadow-figure {
  position:absolute; bottom:16%; left:33%; width:22px; height:36px;
  background:rgba(0,0,0,0.4); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  filter:blur(5px); transform:rotate(8deg);
  animation: sm3-shadow 3s ease-in-out infinite alternate;
}

@keyframes sm3-deep { 0% { opacity:0.7 } 50% { opacity:0.4 } 100% { opacity:0.8 } }
@keyframes sm3-wall { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes sm3-map { 0% { transform:rotate(-3deg) scale(1) } 50% { transform:rotate(-1deg) scale(1.02) } 100% { transform:rotate(-4deg) scale(0.98) } }
@keyframes sm3-flame { 0% { transform:scaleY(1) translateX(-1px) } 50% { transform:scaleY(1.2) translateX(0) } 100% { transform:scaleY(0.9) translateX(1px) } }
@keyframes sm3-point { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(5px) rotate(3deg) } 100% { transform:translateX(-3px) rotate(-2deg) } }
@keyframes sm3-staff { 0% { transform:rotate(15deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(18deg) } }
@keyframes sm3-shadow { 0% { transform:rotate(8deg) translateX(0) } 50% { transform:rotate(5deg) translateX(4px) } 100% { transform:rotate(10deg) translateX(-3px) } }

/* Scene 4: time-not-for-assailant – calm dim interior with clock and hourglass */
.scn-time-not-for-assailant {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1c 0%, transparent 60%);
}
.scn-time-not-for-assailant .bg-deep {
  position:absolute; inset:0; background:radial-gradient(circle at 80% 10%, #0f0a06 0%, transparent 60%);
  animation: sm4-deep 15s ease-in-out infinite alternate;
}
.scn-time-not-for-assailant .wall-shadow {
  position:absolute; inset:0 0 25% 0; background:linear-gradient(180deg, #1a1410 0%, transparent 100%);
  animation: sm4-wall 10s ease-in-out infinite alternate;
}
.scn-time-not-for-assailant .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background:linear-gradient(180deg, #4a3520 0%, #2a1e14 100%);
  border-radius:6px 6px 0 0; box-shadow:0 -4px 14px rgba(0,0,0,0.6);
}
.scn-time-not-for-assailant .clock {
  position:absolute; bottom:20%; left:35%; width:22px; height:22px;
  background:radial-gradient(circle, #b8a080 0%, #8a6e4e 100%);
  border-radius:50%; border:2px solid #3a2a1c;
  box-shadow:0 2px 6px rgba(0,0,0,0.4);
  animation: sm4-clock 8s ease-in-out infinite alternate;
}
.scn-time-not-for-assailant .candle {
  position:absolute; bottom:22%; left:60%; width:6px; height:16px;
  background:linear-gradient(180deg, #e8d4b0 0%, #b09878 100%);
  border-radius:3px 3px 2px 2px; transform:rotate(1deg);
}
.scn-time-not-for-assailant .flame {
  position:absolute; bottom:38%; left:60%; width:8px; height:12px;
  background:radial-gradient(circle at 50% 30%, #ffd080 0%, #ff8030 60%, transparent 100%);
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow:0 0 20px 8px rgba(255,128,48,0.3);
  animation: sm4-flame 2.5s ease-in-out infinite alternate;
}
.scn-time-not-for-assailant .hourglass {
  position:absolute; bottom:18%; left:20%; width:10px; height:18px;
  background:linear-gradient(180deg, #b8a080 0%, #8a6e4e 50%, #6a5236 100%);
  border-radius:2px 2px 50% 50% / 2px 2px 50% 50%;
  transform:rotate(-2deg);
  animation: sm4-glass 12s ease-in-out infinite alternate;
}
.scn-time-not-for-assailant .paper-stack {
  position:absolute; bottom:14%; left:55%; width:14px; height:10px;
  background:#a08060; border-radius:2px; transform:rotate(3deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
  animation: sm4-paper 18s ease-in-out infinite alternate;
}

@keyframes sm4-deep { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes sm4-wall { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes sm4-clock { 0% { transform:rotate(0deg) scale(1) } 50% { transform:rotate(2deg) scale(1.02) } 100% { transform:rotate(-1deg) scale(0.98) } }
@keyframes sm4-flame { 0% { transform:translateX(-1px) scaleY(1) } 50% { transform:translateX(0) scaleY(1.15) } 100% { transform:translateX(1px) scaleY(0.9) } }
@keyframes sm4-glass { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes sm4-paper { 0% { transform:rotate(3deg) } 50% { transform:rotate(2deg) translateX(1px) } 100% { transform:rotate(4deg) translateX(-1px) } }

/* Scene: frederick-seven-years-war */
.scn-frederick-seven-years-war { background: linear-gradient(180deg, #1a1a1a 0%, #2a2018 40%, #1e1410 100%), radial-gradient(ellipse at 60% 50%, #2a1a10 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-frederick-seven-years-war .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2218 0%, #1a1410 100%); animation: f7y-wall-pulse 12s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); }
.scn-frederick-seven-years-war .table { position:absolute; bottom:20%; left:10%; right:10%; height:14%; background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.7); animation: f7y-table-drift 8s ease-in-out infinite; }
.scn-frederick-seven-years-war .map { position:absolute; bottom:24%; left:20%; right:20%; height:10%; background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 50%, #4a3a1a 100%); border-radius: 2%; box-shadow: inset 0 0 12px rgba(0,0,0,.5); animation: f7y-map-shift 15s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war .candle-flame { position:absolute; bottom:32%; left:40%; width:8px; height:16px; background: radial-gradient(circle at 50% 100%, #ffd070 0%, #e08030 50%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 20px 10px rgba(255,200,80,.4), 0 0 40px 20px rgba(200,100,30,.2); animation: f7y-candle-flicker 1.5s ease-in-out infinite alternate; }
.scn-frederick-seven-years-war .figure { position:absolute; bottom:14%; left:50%; width:40px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: f7y-figure-sway 6s ease-in-out infinite; }
.scn-frederick-seven-years-war .window-frame { position:absolute; top:8%; right:10%; width:60px; height:80px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1410 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-frederick-seven-years-war .window-glass { position:absolute; top:10%; right:12%; width:50px; height:64px; background: linear-gradient(180deg, rgba(40,60,80,.2) 0%, rgba(20,30,40,.4) 100%); border-radius: 2%; box-shadow: inset 0 0 16px rgba(0,0,0,.6); animation: f7y-glass-glimmer 10s ease-in-out infinite alternate; }
@keyframes f7y-wall-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes f7y-table-drift { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes f7y-map-shift { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes f7y-candle-flicker { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 30% { transform: scaleY(1.1) scaleX(.9); opacity:1 } 60% { transform: scaleY(.9) scaleX(1.1); opacity:.95 } 100% { transform: scaleY(1) scaleX(1); opacity:.9 } }
@keyframes f7y-figure-sway { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes f7y-glass-glimmer { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* Scene: frederick-strategic-attack-1757 */
.scn-frederick-strategic-attack-1757 { background: linear-gradient(180deg, #121212 0%, #1a1410 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 30%, #2a1a10 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-frederick-strategic-attack-1757 .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #1a1410 0%, #0e0a08 100%); animation: fsa-wall-dark 15s ease-in-out infinite alternate; }
.scn-frederick-strategic-attack-1757 .desk { position:absolute; bottom:18%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.8); animation: fsa-desk-wobble 10s ease-in-out infinite; }
.scn-frederick-strategic-attack-1757 .document-a { position:absolute; bottom:22%; left:15%; width:40%; height:6%; background: linear-gradient(135deg, #5a4a2a 0%, #4a3a1a 100%); border-radius: 2%; box-shadow: 2px 2px 6px rgba(0,0,0,.6); animation: fsa-doc-a 20s ease-in-out infinite alternate; }
.scn-frederick-strategic-attack-1757 .document-b { position:absolute; bottom:21%; right:12%; width:30%; height:7%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2%; box-shadow: 1px 1px 4px rgba(0,0,0,.5); animation: fsa-doc-b 25s ease-in-out infinite alternate; animation-delay: -5s; }
.scn-frederick-strategic-attack-1757 .quill { position:absolute; bottom:28%; left:30%; width:60px; height:6px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 50% 50% 0; transform-origin: left center; animation: fsa-quill 3s ease-in-out infinite; }
.scn-frederick-strategic-attack-1757 .lantern-glow { position:absolute; bottom:35%; left:50%; width:14px; height:20px; background: radial-gradient(circle, #ffcc60 0%, #e08020 50%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 15px rgba(255,180,60,.5), 0 0 60px 30px rgba(200,100,20,.3); animation: fsa-lantern 2s ease-in-out infinite alternate; }
.scn-frederick-strategic-attack-1757 .hand { position:absolute; bottom:20%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fsa-hand-reach 7s ease-in-out infinite; }
@keyframes fsa-wall-dark { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fsa-desk-wobble { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(.5deg) } }
@keyframes fsa-doc-a { 0% { opacity:.7; transform: rotate(-2deg) } 50% { opacity:1; transform: rotate(0deg) } 100% { opacity:.8; transform: rotate(2deg) } }
@keyframes fsa-doc-b { 0% { opacity:.8; transform: rotate(1deg) } 50% { opacity:1; transform: rotate(-1deg) } 100% { opacity:.7; transform: rotate(0deg) } }
@keyframes fsa-quill { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } }
@keyframes fsa-lantern { 0% { transform: scaleY(1); opacity:.9 } 30% { transform: scaleY(1.1) scaleX(.95); opacity:1 } 60% { transform: scaleY(.95) scaleX(1.05); opacity:.95 } 100% { transform: scaleY(1); opacity:.9 } }
@keyframes fsa-hand-reach { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(5deg) } 75% { transform: translateX(-5px) rotate(-3deg) } }

/* Scene: frederick-offensive-moravia */
.scn-frederick-offensive-moravia { background: linear-gradient(180deg, #0a0a10 0%, #141018 30%, #0e0c14 100%), radial-gradient(ellipse at 50% 40%, #1a1420 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-frederick-offensive-moravia .interior-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #141018 0%, #0a0810 100%); animation: fmo-wall-slow 18s ease-in-out infinite alternate; }
.scn-frederick-offensive-moravia .window-arch { position:absolute; top:2%; left:20%; right:20%; bottom:40%; background: linear-gradient(180deg, #1a1820 0%, #0a0a10 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.7); }
.scn-frederick-offensive-moravia .fortress-model { position:absolute; bottom:25%; left:15%; right:15%; height:18%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e00 100%); border-radius: 6% 6% 4% 4%; clip-path: polygon(0% 100%, 5% 60%, 15% 50%, 20% 70%, 35% 40%, 50% 55%, 65% 30%, 80% 50%, 85% 60%, 95% 70%, 100% 100%); animation: fmo-fortress 12s ease-in-out infinite alternate; }
.scn-frederick-offensive-moravia .telescope { position:absolute; bottom:30%; left:40%; width:80px; height:10px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 0 30% 30% 0; transform-origin: right center; animation: fmo-telescope 8s ease-in-out infinite; }
.scn-frederick-offensive-moravia .observer-silhouette { position:absolute; bottom:12%; left:35%; width:24px; height:70px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fmo-observer 6s ease-in-out infinite; }
.scn-frederick-offensive-moravia .candle-stick { position:absolute; bottom:18%; right:20%; width:6px; height:40px; background: #2a1a0e; border-radius: 10% 10% 20% 20%; animation: fmo-candle 3s ease-in-out infinite; box-shadow: 0 0 16px 8px rgba(255,200,100,.3); }
@keyframes fmo-wall-slow { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fmo-fortress { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes fmo-telescope { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) } }
@keyframes fmo-observer { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes fmo-candle { 0% { transform: scaleY(1); opacity:.8 } 30% { transform: scaleY(1.15); opacity:1 } 60% { transform: scaleY(.9); opacity:.9 } 100% { transform: scaleY(1); opacity:.8 } }

/* Scene: frederick-compact-defence */
.scn-frederick-compact-defence { background: linear-gradient(180deg, #161210 0%, #1e1a14 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 30%, #2a1a10 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-frederick-compact-defence .table-top { position:absolute; bottom:5%; left:2%; right:2%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -12px 28px rgba(0,0,0,.8); animation: fcd-table 14s ease-in-out infinite; }
.scn-frederick-compact-defence .map-bg { position:absolute; bottom:8%; left:10%; right:10%; height:15%; background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: fcd-map 20s ease-in-out infinite alternate; }
.scn-frederick-compact-defence .defence-line { position:absolute; bottom:11%; left:12%; right:12%; height:1%; background: #8a6a4a; border-radius: 0; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: fcd-line-shift 25s ease-in-out infinite alternate; }
.scn-frederick-compact-defence .marker-a { position:absolute; bottom:14%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #b85a3a 0%, #702a1a 100%); border-radius: 50%; animation: fcd-marker-a 5s ease-in-out infinite; box-shadow: 0 0 8px rgba(200,80,40,.3); }
.scn-frederick-compact-defence .marker-b { position:absolute; bottom:10%; left:65%; width:6px; height:6px; background: radial-gradient(circle, #3a6a5a 0%, #1a3a2a 100%); border-radius: 50%; animation: fcd-marker-b 7s ease-in-out infinite; animation-delay: -2s; box-shadow: 0 0 8px rgba(40,100,80,.3); }
.scn-frederick-compact-defence .pointing-hand { position:absolute; bottom:7%; left:30%; width:28px; height:36px; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fcd-hand-point 6s ease-in-out infinite; }
.scn-frederick-compact-defence .lamp-glow { position:absolute; bottom:30%; left:80%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #e08030 50%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 24px 12px rgba(255,180,60,.5), 0 0 48px 24px rgba(200,100,20,.3); animation: fcd-lamp 2.5s ease-in-out infinite alternate; }
@keyframes fcd-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fcd-map { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }
@keyframes fcd-line-shift { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-3px) } }
@keyframes fcd-marker-a { 0%,100% { transform: scale(1) opacity:.9 } 50% { transform: scale(1.3) opacity:1 } }
@keyframes fcd-marker-b { 0%,100% { transform: scale(1) opacity:.8 } 50% { transform: scale(1.2) opacity:1 } }
@keyframes fcd-hand-point { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(5deg) } 75% { transform: translateX(-4px) rotate(-3deg) } }
@keyframes fcd-lamp { 0% { transform: scaleY(1); opacity:.85 } 30% { transform: scaleY(1.1) scaleX(.95); opacity:1 } 60% { transform: scaleY(.9) scaleX(1.05); opacity:.9 } 100% { transform: scaleY(1); opacity:.85 } }

/* === strategic-manoeuvring-equilibrium === */
.scn-strategic-manoeuvring-equilibrium {
  background: 
    linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 40%, #ede0c0 100%),
    radial-gradient(ellipse at 50% 80%, #fffbe6 0%, transparent 70%);
}
.scn-strategic-manoeuvring-equilibrium .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6d0 0%, #e8dcc0 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.05);
  animation: sme-wall 10s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-equilibrium .window {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #fffce8 0%, #fef8e0 100%);
  border: 6px solid #d4b48c; border-radius: 4px;
  box-shadow: inset 0 0 40px 10px rgba(255,255,200,0.8), 0 0 60px 20px rgba(255,255,200,0.3);
  animation: sme-windowglow 8s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-equilibrium .desk {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 22%;
  background: linear-gradient(180deg, #c4a882 0%, #b89a72 50%, #a8865e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-strategic-manoeuvring-equilibrium .scale-base {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6e48 0%, #6a5230 100%);
  border-radius: 4px; box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-equilibrium .scale-beam {
  position: absolute; bottom: 35%; left: 50%; width: 80%; height: 8px;
  transform: translate(-50%, 0);
  background: linear-gradient(90deg, #7a5e3a 0%, #9a7a52 50%, #7a5e3a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sme-beam 6s ease-in-out infinite alternate;
  transform-origin: center;
}
.scn-strategic-manoeuvring-equilibrium .scale-left {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #e0c8a0 0%, #c8ac80 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sme-pan 6s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-equilibrium .scale-right {
  position: absolute; bottom: 30%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #e0c8a0 0%, #c8ac80 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sme-pan 6s ease-in-out infinite alternate-reverse;
}
.scn-strategic-manoeuvring-equilibrium .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  animation: sme-shadow 12s ease-in-out infinite alternate;
}
@keyframes sme-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes sme-windowglow {
  0% { box-shadow: inset 0 0 30px 5px rgba(255,255,200,0.7), 0 0 40px 10px rgba(255,255,200,0.2); }
  50% { box-shadow: inset 0 0 50px 15px rgba(255,255,200,1), 0 0 80px 25px rgba(255,255,200,0.4); }
  100% { box-shadow: inset 0 0 35px 8px rgba(255,255,200,0.8), 0 0 50px 15px rgba(255,255,200,0.3); }
}
@keyframes sme-beam {
  0% { transform: translate(-50%, 0) rotate(-3deg); }
  50% { transform: translate(-50%, 0) rotate(0deg); }
  100% { transform: translate(-50%, 0) rotate(3deg); }
}
@keyframes sme-pan {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes sme-shadow {
  0% { opacity: 0.1; }
  50% { opacity: 0.15; }
  100% { opacity: 0.08; }
}

/* === strategic-manoeuvring-field-for-calculus === */
.scn-strategic-manoeuvring-field-for-calculus {
  background: 
    linear-gradient(180deg, #fcf6e8 0%, #f5e6c8 50%, #ece0b8 100%),
    radial-gradient(ellipse at 50% 85%, #fffbe6 0%, transparent 60%);
}
.scn-strategic-manoeuvring-field-for-calculus .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #ede4ce 0%, #e4d8be 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.05);
  animation: smc-wall 12s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-field-for-calculus .window {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #fffce8 0%, #fef4d0 100%);
  border: 6px solid #c8b088; border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(255,255,200,0.9), 0 0 50px 15px rgba(255,255,200,0.3);
  animation: smc-windowglow 9s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-field-for-calculus .desk {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #b89a72 0%, #a8865e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.scn-strategic-manoeuvring-field-for-calculus .map {
  position: absolute; bottom: 16%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(135deg, #e8dcc0 25%, #d8c8a0 50%, #e8dcc0 75%);
  border: 2px solid #b8a078; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: smc-map 15s linear infinite;
}
.scn-strategic-manoeuvring-field-for-calculus .compass {
  position: absolute; bottom: 40%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, #d4b48c 0%, #c4a882 50%, #b09888 100%);
  border: 4px solid #a08060; border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: smc-compass 20s linear infinite;
}
.scn-strategic-manoeuvring-field-for-calculus .compass-needle {
  position: absolute; bottom: 42%; left: calc(45% + 36px); width: 6px; height: 60px;
  transform: translateX(-3px) translateY(-18px) rotate(45deg);
  background: linear-gradient(180deg, #a04030 0%, #d06040 50%, #a04030 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: smc-needle 4s ease-in-out infinite alternate;
  transform-origin: 50% 50%;
}
.scn-strategic-manoeuvring-field-for-calculus .abacus {
  position: absolute; bottom: 20%; left: 60%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a6e48 0%, #6a5230 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: smc-abacus 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-field-for-calculus .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  animation: smc-shadow 10s ease-in-out infinite alternate;
}
@keyframes smc-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.88; }
}
@keyframes smc-windowglow {
  0% { box-shadow: inset 0 0 20px 5px rgba(255,255,200,0.7), 0 0 30px 8px rgba(255,255,200,0.2); }
  50% { box-shadow: inset 0 0 40px 12px rgba(255,255,200,1), 0 0 60px 20px rgba(255,255,200,0.4); }
  100% { box-shadow: inset 0 0 25px 8px rgba(255,255,200,0.8), 0 0 40px 12px rgba(255,255,200,0.3); }
}
@keyframes smc-map {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes smc-compass {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes smc-needle {
  0% { transform: translateX(-3px) translateY(-18px) rotate(30deg); }
  50% { transform: translateX(-3px) translateY(-18px) rotate(60deg); }
  100% { transform: translateX(-3px) translateY(-18px) rotate(30deg); }
}
@keyframes smc-abacus {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.98); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes smc-shadow {
  0% { opacity: 0.08; } 50% { opacity: 0.12; } 100% { opacity: 0.06; }
}

/* === strategic-manoeuvring-false-importance === */
.scn-strategic-manoeuvring-false-importance {
  background: 
    linear-gradient(180deg, #f0e6d0 0%, #e8dcc0 30%, #dcc8a8 100%),
    radial-gradient(ellipse at 50% 90%, #ffeecc 0%, transparent 70%);
}
.scn-strategic-manoeuvring-false-importance .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #c8b490 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1);
  animation: smf-wall 4s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-false-importance .window {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #fffce8 0%, #fef4d0 100%);
  border: 6px solid #a8865e; border-radius: 4px;
  box-shadow: inset 0 0 40px 10px rgba(255,255,200,0.9), 0 0 60px 20px rgba(255,255,200,0.4);
  animation: smf-windowglow 1.5s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-false-importance .table {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #6a5230 0%, #4a3a22 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-strategic-manoeuvring-false-importance .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: smf-figure 2s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-false-importance .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: smf-figure 2s ease-in-out infinite alternate-reverse;
}
.scn-strategic-manoeuvring-false-importance .piece1 {
  position: absolute; bottom: 18%; left: 45%; width: 10px; height: 14px;
  background: #c8553d; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: smf-piece 3s ease-in-out infinite;
}
.scn-strategic-manoeuvring-false-importance .piece2 {
  position: absolute; bottom: 18%; right: 45%; width: 10px; height: 14px;
  background: #5e1a1d; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: smf-piece 3s ease-in-out infinite 1.5s;
}
.scn-strategic-manoeuvring-false-importance .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  animation: smf-shadow 2s ease-in-out infinite alternate;
}
@keyframes smf-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes smf-windowglow {
  0% { box-shadow: inset 0 0 30px 5px rgba(255,255,200,0.6), 0 0 40px 10px rgba(255,255,200,0.2); }
  50% { box-shadow: inset 0 0 50px 15px rgba(255,255,200,1), 0 0 80px 25px rgba(255,255,200,0.5); }
  100% { box-shadow: inset 0 0 35px 8px rgba(255,255,200,0.7), 0 0 50px 15px rgba(255,255,200,0.3); }
}
@keyframes smf-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes smf-piece {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes smf-shadow {
  0% { opacity: 0.12; } 50% { opacity: 0.18; } 100% { opacity: 0.1; }
}

/* === strategic-manoeuvring-majority === */
.scn-strategic-manoeuvring-majority {
  background: 
    linear-gradient(180deg, #fcf6e8 0%, #f0e6d0 40%, #e4d8be 100%),
    radial-gradient(ellipse at 50% 85%, #fff8e0 0%, transparent 60%);
}
.scn-strategic-manoeuvring-majority .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #dcc8a8 100%);
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.05);
  animation: smm-wall 10s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-majority .window {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 28%;
  background: linear-gradient(180deg, #fffce8 0%, #fef4d0 100%);
  border: 6px solid #b89a72; border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(255,255,200,0.8), 0 0 50px 15px rgba(255,255,200,0.3);
  animation: smm-windowglow 8s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-majority .desk {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 14%;
  background: linear-gradient(180deg, #b89a72 0%, #a8865e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.scn-strategic-manoeuvring-majority .map {
  position: absolute; bottom: 16%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(135deg, #dcc8a0 25%, #c8b488 50%, #dcc8a0 75%);
  border: 2px solid #b89a72; border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: smm-map 20s linear infinite;
}
.scn-strategic-manoeuvring-majority .figure {
  position: absolute; bottom: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: smm-figure 6s ease-in-out infinite;
}
.scn-strategic-manoeuvring-majority .f1 { left: 30%; animation-delay: 0s; }
.scn-strategic-manoeuvring-majority .f2 { left: 45%; animation-delay: 2s; }
.scn-strategic-manoeuvring-majority .f3 { left: 60%; animation-delay: 4s; }
.scn-strategic-manoeuvring-majority .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.07) 100%);
  animation: smm-shadow 10s ease-in-out infinite alternate;
}
@keyframes smm-wall {
  0% { opacity: 0.92; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes smm-windowglow {
  0% { box-shadow: inset 0 0 20px 5px rgba(255,255,200,0.6), 0 0 30px 8px rgba(255,255,200,0.2); }
  50% { box-shadow: inset 0 0 40px 12px rgba(255,255,200,1), 0 0 60px 20px rgba(255,255,200,0.4); }
  100% { box-shadow: inset 0 0 25px 8px rgba(255,255,200,0.7), 0 0 40px 12px rgba(255,255,200,0.3); }
}
@keyframes smm-map {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes smm-figure {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes smm-shadow {
  0% { opacity: 0.07; } 50% { opacity: 0.1; } 100% { opacity: 0.05; }
}

.scn-limited-object-offensive-defensive {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 40%, #1a120c 100%), radial-gradient(ellipse at 50% 80%, #3d2a1a 0%, transparent 60%);
}
.scn-limited-object-offensive-defensive .lim-bg-dark {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1008 0%, #2a1e14 50%, #1a1008 100%);
  animation: lim-bg 20s ease-in-out infinite alternate;
}
.scn-limited-object-offensive-defensive .lim-table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #4a3522 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: lim-table 12s ease-in-out infinite alternate;
}
.scn-limited-object-offensive-defensive .lim-object {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: lim-obj 6s ease-in-out infinite;
}
.scn-limited-object-offensive-defensive .lim-candle {
  position: absolute; bottom: 28%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d4a0 0%, #a08050 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: lim-candle 5s ease-in-out infinite alternate;
}
.scn-limited-object-offensive-defensive .lim-flame {
  position: absolute; bottom: 56%; left: 65.5%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8830 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #ff8830, 0 0 40px 12px rgba(255,136,48,0.3);
  animation: lim-flame 2s ease-in-out infinite alternate;
}
.scn-limited-object-offensive-defensive .lim-shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, #0a0502 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lim-shad 8s ease-in-out infinite alternate;
}
@keyframes lim-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lim-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lim-obj { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } }
@keyframes lim-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes lim-flame { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(0.9); opacity:0.85; } }
@keyframes lim-shad { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.8; } 100% { transform: scaleX(1); opacity:0.5; } }

.scn-political-object-military-influence {
  background: linear-gradient(180deg, #1e1510 0%, #2d2018 40%, #14100c 100%), radial-gradient(ellipse at 50% 60%, #2d2018 0%, transparent 70%);
}
.scn-political-object-military-influence .pol-room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a140e 0%, #2a1e16 50%, #1a140e 100%);
  animation: pol-bg 15s ease-in-out infinite alternate;
}
.scn-political-object-military-influence .pol-desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: pol-desk 18s ease-in-out infinite;
}
.scn-political-object-military-influence .pol-figure {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e16 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pol-fig 10s ease-in-out infinite;
}
.scn-political-object-military-influence .pol-papers {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pol-papers 12s ease-in-out infinite alternate;
}
.scn-political-object-military-influence .pol-lamp {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #806040 0%, #4a3520 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: pol-lamp 6s ease-in-out infinite alternate;
}
.scn-political-object-military-influence .pol-glow {
  position: absolute; bottom: 30%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.25) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  animation: pol-glow 4s ease-in-out infinite alternate;
}
.scn-political-object-military-influence .pol-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 8px;
  background: radial-gradient(ellipse, #0a0502 0%, transparent 70%);
  filter: blur(4px);
  animation: pol-shad 14s ease-in-out infinite;
}
@keyframes pol-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pol-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pol-fig { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 75% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pol-papers { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pol-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes pol-glow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pol-shad { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.1); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.4; } }

.scn-alliance-obligation-vague {
  background: linear-gradient(180deg, #1f1812 0%, #2e231c 40%, #14100a 100%), radial-gradient(ellipse at 50% 50%, #2e231c 0%, transparent 60%);
}
.scn-alliance-obligation-vague .all-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a140e 0%, #2a1e16 50%, #1a140e 100%);
  animation: all-bg 20s ease-in-out infinite alternate;
}
.scn-alliance-obligation-vague .all-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0;
  animation: all-floor 12s ease-in-out infinite;
}
.scn-alliance-obligation-vague .all-figure-l {
  position: absolute; bottom: 18%; left: 18%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1e16 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: all-fig-l 10s ease-in-out infinite alternate;
}
.scn-alliance-obligation-vague .all-figure-r {
  position: absolute; bottom: 18%; right: 18%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1e16 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: all-fig-r 10s ease-in-out infinite alternate;
}
.scn-alliance-obligation-vague .all-curtain {
  position: absolute; top: 0; left: 38%; width: 24%; height: 100%;
  background: linear-gradient(180deg, rgba(60,40,30,0.6) 0%, rgba(40,28,20,0.4) 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(6px);
  animation: all-curt 14s ease-in-out infinite alternate;
}
.scn-alliance-obligation-vague .all-scroll {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: all-scroll 8s ease-in-out infinite;
}
.scn-alliance-obligation-vague .all-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 10px;
  background: radial-gradient(ellipse, #0a0502 0%, transparent 70%);
  filter: blur(5px);
  animation: all-shad 16s ease-in-out infinite;
}
@keyframes all-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes all-floor { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes all-fig-l { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes all-fig-r { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes all-curt { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes all-scroll { 0%,100% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(15deg) translateY(-2px); } }
@keyframes all-shad { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-auxiliary-commander-independent {
  background: linear-gradient(180deg, #1b140e 0%, #2a1e16 40%, #14100a 100%), radial-gradient(ellipse at 50% 70%, #2a1e16 0%, transparent 60%);
}
.scn-auxiliary-commander-independent .aux-bg {
  position: absolute; inset: 0; background: linear-gradient(0deg, #1a1008 0%, #2a1e14 50%, #1a1008 100%);
  animation: aux-bg 18s ease-in-out infinite alternate;
}
.scn-auxiliary-commander-independent .aux-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
}
.scn-auxiliary-commander-independent .aux-platform {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: aux-plat 14s ease-in-out infinite;
}
.scn-auxiliary-commander-independent .aux-commander {
  position: absolute; bottom: 26%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1e16 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: aux-cmd 8s ease-in-out infinite;
}
.scn-auxiliary-commander-independent .aux-troops {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 20px;
  background: repeating-linear-gradient(90deg, #1a1008 0px, #1a1008 8px, transparent 8px, transparent 16px);
  mask-image: radial-gradient(ellipse 30px 20px at center, black 0%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 30px 20px at center, black 0%, transparent 100%);
  animation: aux-troops 20s ease-in-out infinite alternate;
}
.scn-auxiliary-commander-independent .aux-map-table {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1e12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.4);
  animation: aux-map 12s ease-in-out infinite;
}
.scn-auxiliary-commander-independent .aux-lamp {
  position: absolute; bottom: 30%; right: 25%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #806040 0%, #4a3520 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: aux-lamp 6s ease-in-out infinite alternate;
}
.scn-auxiliary-commander-independent .aux-glow {
  position: absolute; bottom: 30%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,0.20) 0%, transparent 60%);
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  animation: aux-glow 5s ease-in-out infinite alternate;
}
@keyframes aux-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes aux-plat { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes aux-cmd { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(-1px) rotate(-0.5deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes aux-troops { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.05); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes aux-map { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes aux-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.96); } }
@keyframes aux-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene 1: armaments-feeling-storms – tense, dim interior, war room with storm outside */
.scn-armaments-feeling-storms {
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 50%, #0d0906 100%),
              radial-gradient(ellipse at 70% 40%, #60402020 0%, transparent 60%);
}
.scn-armaments-feeling-storms .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  animation: afl-wall 12s ease-in-out infinite alternate;
}
.scn-armaments-feeling-storms .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5c3a20 0%, #3a2210 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: afl-table 8s ease-in-out infinite;
}
.scn-armaments-feeling-storms .map {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(135deg, #b09060 0%, #806040 50%, #604020 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: afl-map 15s ease-in-out infinite alternate;
}
.scn-armaments-feeling-storms .piece-a {
  position: absolute; bottom: 32%; left: 35%; width: 10px; height: 14px;
  background: #c8553d; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: afl-piece 4s ease-in-out infinite;
}
.scn-armaments-feeling-storms .piece-b {
  position: absolute; bottom: 30%; right: 35%; width: 12px; height: 16px;
  background: #a0461a; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: afl-piece 4s ease-in-out infinite 2s;
}
.scn-armaments-feeling-storms .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: afl-figure 6s ease-in-out infinite;
}
.scn-armaments-feeling-storms .figure-right {
  position: absolute; bottom: 28%; right: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: afl-figure 6s ease-in-out infinite 3s;
}
.scn-armaments-feeling-storms .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 60%, #402010 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px #ffb05080;
  animation: afl-candle 2s ease-in-out infinite alternate;
}
.scn-armaments-feeling-storms .storm-window {
  position: absolute; top: 8%; right: 8%; width: 30%; height: 40%;
  background: radial-gradient(circle at 50% 30%, #2a4060 0%, #101a2a 80%);
  border: 4px solid #2a1a0a; border-radius: 4px;
  box-shadow: inset 0 0 20px #1a2a40;
  animation: afl-storm 3s ease-in-out infinite alternate;
}
@keyframes afl-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes afl-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes afl-map { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes afl-piece { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes afl-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes afl-candle { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: 0.85; transform: scaleY(1) } }
@keyframes afl-storm { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(1) } }

/* Scene 2: theory-demands-outline – calm, dim interior, study with books and desk */
.scn-theory-demands-outline {
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 50%, #1a0e06 100%),
              radial-gradient(ellipse at 30% 50%, #50403020 0%, transparent 70%);
}
.scn-theory-demands-outline .bookcase {
  position: absolute; left: 5%; top: 10%; bottom: 30%; width: 25%;
  background: linear-gradient(180deg, #5c4030 0%, #3a2818 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: tdo-bookcase 20s ease-in-out infinite alternate;
}
.scn-theory-demands-outline .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -6px 16px rgba(0,0,0,0.5);
  animation: tdo-desk 12s ease-in-out infinite;
}
.scn-theory-demands-outline .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 50%, #402010 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 12px #f0c06060;
  animation: tdo-lamp 3s ease-in-out infinite alternate;
}
.scn-theory-demands-outline .paper {
  position: absolute; bottom: 25%; left: 35%; width: 40%; height: 12%;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b090 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tdo-paper 10s ease-in-out infinite alternate;
}
.scn-theory-demands-outline .outline-line {
  position: absolute; bottom: 29%; left: 38%; width: 2px; height: 6%;
  background: #604020; box-shadow: 0 0 4px #403010;
  animation: tdo-outline 8s ease-in-out infinite;
}
.scn-theory-demands-outline .inkwell {
  position: absolute; bottom: 24%; right: 30%; width: 10px; height: 12px;
  background: #1a1008; border-radius: 40% 40% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tdo-inkwell 6s ease-in-out infinite;
}
.scn-theory-demands-outline .quill {
  position: absolute; bottom: 30%; right: 28%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #e0c8a0 0%, #a08050 60%, #604020 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom center;
  animation: tdo-quill 5s ease-in-out infinite alternate;
}
@keyframes tdo-bookcase { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tdo-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tdo-lamp { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: 0.92; transform: scaleY(1) } }
@keyframes tdo-paper { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes tdo-outline { 0% { height: 5%; transform: translateY(0) } 50% { height: 7%; transform: translateY(-2px) } 100% { height: 6%; transform: translateY(0) } }
@keyframes tdo-inkwell { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes tdo-quill { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }

/* Scene 3: magnitude-object-efforts – calm, dim interior, general with balance */
.scn-magnitude-object-efforts {
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 50%, #0e0a06 100%),
              radial-gradient(ellipse at 60% 40%, #60483020 0%, transparent 60%);
}
.scn-magnitude-object-efforts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  animation: moe-floor 15s ease-in-out infinite alternate;
}
.scn-magnitude-object-efforts .table-large {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(180deg, #5c4030 0%, #3a2418 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: moe-table 10s ease-in-out infinite;
}
.scn-magnitude-object-efforts .balance {
  position: absolute; bottom: 32%; left: 50%; width: 4px; height: 20%;
  background: #8a6040; transform-origin: bottom center;
  animation: moe-balance 7s ease-in-out infinite alternate;
}
.scn-magnitude-object-efforts .weight-left {
  position: absolute; bottom: 32%; left: 35%; width: 16px; height: 16px;
  background: #a06848; border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: moe-weight-l 6s ease-in-out infinite alternate;
}
.scn-magnitude-object-efforts .weight-right {
  position: absolute; bottom: 32%; right: 35%; width: 14px; height: 14px;
  background: #885838; border-radius: 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: moe-weight-r 6s ease-in-out infinite alternate 3s;
}
.scn-magnitude-object-efforts .pointer {
  position: absolute; bottom: 36%; left: 50%; width: 2px; height: 12%;
  background: #b08050; transform-origin: bottom center;
  animation: moe-pointer 4s ease-in-out infinite alternate;
}
.scn-magnitude-object-efforts .general {
  position: absolute; bottom: 24%; left: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1c1820 0%, #0a0810 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: moe-figure 12s ease-in-out infinite;
}
.scn-magnitude-object-efforts .dust {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: rgba(240,200,160,0.3); border-radius: 50%;
  filter: blur(2px); box-shadow: 0 0 6px 2px rgba(240,200,160,0.1);
  animation: moe-dust 25s linear infinite;
}
@keyframes moe-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes moe-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes moe-balance { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes moe-weight-l { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes moe-weight-r { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes moe-pointer { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes moe-figure { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes moe-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.2 } 25% { transform: translate(15px, -10px) scale(1.2); opacity: 0.5 } 50% { transform: translate(30px, -5px) scale(0.8); opacity: 0.3 } 75% { transform: translate(45px, -15px) scale(1.1); opacity: 0.6 } 100% { transform: translate(60px, 0) scale(1); opacity: 0.2 } }

/* Scene 4: uncertainty-resistance-means – tense, dim interior, commander with maps */
.scn-uncertainty-resistance-means {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0a0502 100%),
              radial-gradient(ellipse at 40% 50%, #50201020 0%, transparent 70%);
}
.scn-uncertainty-resistance-means .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e 0%, #120a04 100%);
  animation: ura-wall 14s ease-in-out infinite alternate;
}
.scn-uncertainty-resistance-means .map-large {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 35%;
  background: linear-gradient(135deg, #8a7048 0%, #6a5030 50%, #4a3820 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ura-map 10s ease-in-out infinite alternate;
}
.scn-uncertainty-resistance-means .arrow-up {
  position: absolute; top: 25%; left: 45%; width: 0; height: 0;
  border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 16px solid #c8553d;
  animation: ura-arrow-up 3s ease-in-out infinite alternate;
}
.scn-uncertainty-resistance-means .arrow-down {
  position: absolute; top: 45%; left: 55%; width: 0; height: 0;
  border-left: 8px solid transparent; border-right: 8px solid transparent; border-top: 16px solid #a0461a;
  animation: ura-arrow-down 3s ease-in-out infinite alternate 1.5s;
}
.scn-uncertainty-resistance-means .silhouette-commander {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0a080c 0%, #000000 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ura-commander 5s ease-in-out infinite alternate;
}
.scn-uncertainty-resistance-means .table-rough {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #4a3018 0%, #2a180a 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: ura-table 8s ease-in-out infinite;
}
.scn-uncertainty-resistance-means .lantern-uneven {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 18px;
  background: radial-gradient(circle, #ffc060 0%, #b08030 60%, #402010 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 35px 10px #ffb06070;
  animation: ura-lantern 2s ease-in-out infinite alternate;
}
@keyframes ura-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ura-map { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.03) rotate(0.3deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes ura-arrow-up { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ura-arrow-down { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ura-commander { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ura-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ura-lantern { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.85; transform: scaleY(1) } }

/* twenty-years-victories-error - tense, dim interior */
.scn-twenty-years-victories-error {
  background: 
    radial-gradient(ellipse at 60% 20%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1f1a14 0%, #2d241c 40%, #1c1712 100%);
}
.scn-twenty-years-victories-error .ty-wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(90deg, #2a2220 0%, #3a2a1a 50%, #2a2220 100%);
  animation: ty-wall 12s ease-in-out infinite alternate;
}
.scn-twenty-years-victories-error .ty-desk {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 40%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-twenty-years-victories-error .ty-map {
  position: absolute; bottom: 22%; left: 15%; width: 55%; height: 18%;
  background: linear-gradient(135deg, #b8a080 0%, #8a705a 50%, #a08a6a 100%);
  border-radius: 2px;
  transform: skewX(-8deg) rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ty-map 6s ease-in-out infinite;
}
.scn-twenty-years-victories-error .ty-candle {
  position: absolute; bottom: 24%; left: 72%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8c8a0 0%, #a08060 100%);
  border-radius: 3px 3px 1px 1px;
}
.scn-twenty-years-victories-error .ty-flame {
  position: absolute; bottom: 42%; left: 71.5%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffcc66 0%, #ff8844 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 6px #ff8844, 0 0 40px 12px rgba(255,136,68,.4);
  animation: ty-flame 0.5s ease-in-out infinite alternate;
}
.scn-twenty-years-victories-error .ty-shadow {
  position: absolute; bottom: 8%; left: 20%; width: 50%; height: 14%;
  background: radial-gradient(ellipse, #0a0808 0%, transparent 70%);
  filter: blur(6px);
  animation: ty-shadow 8s ease-in-out infinite;
}
.scn-twenty-years-victories-error .ty-clock {
  position: absolute; top: 10%; right: 8%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 60%, #1c1712 100%);
  box-shadow: inset 0 0 8px rgba(0,0,0,.6), 0 0 4px rgba(0,0,0,.3);
}
.scn-twenty-years-victories-error .ty-hand {
  position: absolute; top: 26%; right: 22%; width: 2px; height: 16px;
  background: #b09080;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ty-hand 2s linear infinite;
}
.scn-twenty-years-victories-error .ty-dust {
  position: absolute; top: 40%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,180,160,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: ty-dust 20s linear infinite;
}
@keyframes ty-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes ty-map { 0%,100% { transform: skewX(-8deg) rotate(-2deg) } 50% { transform: skewX(-7deg) rotate(-1deg) } }
@keyframes ty-flame { 0% { transform: scaleY(1) scaleX(1); opacity: .9 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: .85 } }
@keyframes ty-shadow { 0%,100% { transform: scaleX(1); opacity: .5 } 50% { transform: scaleX(1.2); opacity: .7 } }
@keyframes ty-hand { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ty-dust { 0% { transform: translate(0,0); opacity: 0 } 20% { opacity: .6 } 80% { opacity: .3 } 100% { transform: translate(120px, -80px); opacity: 0 } }

/* altered-war-consequence-policy - tense, dim interior with cool light */
.scn-altered-war-consequence-policy {
  background: 
    radial-gradient(ellipse at 70% 50%, #2a3a4a 0%, transparent 70%),
    linear-gradient(180deg, #1a222a 0%, #15202a 30%, #0e1a24 100%);
}
.scn-altered-war-consequence-policy .aw-bookshelf {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 60%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.5);
  overflow: hidden;
}
.scn-altered-war-consequence-policy .aw-bookshelf::before {
  content: '';
  position: absolute; top: 18%; left: 10%; width: 80%; height: 2px;
  background: #5a4a3a;
}
.scn-altered-war-consequence-policy .aw-lamp {
  position: absolute; top: 25%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
}
.scn-altered-war-consequence-policy .aw-lightcone {
  position: absolute; top: 28%; left: 45%; width: 10%; height: 45%;
  background: linear-gradient(180deg, rgba(200,200,220,.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: aw-light 4s ease-in-out infinite alternate;
}
.scn-altered-war-consequence-policy .aw-paper {
  position: absolute; bottom: 18%; left: 42%; width: 28%; height: 20%;
  background: linear-gradient(135deg, #c0b0a0 0%, #a08a7a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: aw-paper 7s ease-in-out infinite;
}
.scn-altered-war-consequence-policy .aw-figure {
  position: absolute; bottom: 8%; left: 48%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-figure 5s ease-in-out infinite;
}
.scn-altered-war-consequence-policy .aw-chair-back {
  position: absolute; bottom: 5%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #221a0e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform: rotate(10deg);
}
.scn-altered-war-consequence-policy .aw-pen {
  position: absolute; bottom: 20%; left: 55%; width: 2px; height: 16px;
  background: #2a1e14;
  border-radius: 1px;
  transform: rotate(-20deg);
  animation: aw-pen 3s ease-in-out infinite;
}
.scn-altered-war-consequence-policy .aw-inkwell {
  position: absolute; bottom: 22%; left: 52%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.5);
}
@keyframes aw-light { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes aw-paper { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-6deg) } }
@keyframes aw-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes aw-pen { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-2px) } }

/* war-instrument-measures-policy - calm, dim interior with fireplace */
.scn-war-instrument-measures-policy {
  background: 
    radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 60%),
    linear-gradient(180deg, #2a221c 0%, #1c1612 50%, #141010 100%);
}
.scn-war-instrument-measures-policy .wi-floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 0;
}
.scn-war-instrument-measures-policy .wi-fireplace {
  position: absolute; bottom: 18%; left: 12%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.4);
}
.scn-war-instrument-measures-policy .wi-fireglow {
  position: absolute; bottom: 30%; left: 20%; width: 14%; height: 20%;
  background: radial-gradient(circle, #ff9922 0%, #ff6633 30%, transparent 60%);
  filter: blur(6px);
  animation: wi-glow 4s ease-in-out infinite alternate;
}
.scn-war-instrument-measures-policy .wi-armchair {
  position: absolute; bottom: 8%; left: 50%; width: 24%; height: 28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: wi-chair 8s ease-in-out infinite;
}
.scn-war-instrument-measures-policy .wi-book {
  position: absolute; bottom: 12%; left: 56%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: wi-book 12s ease-in-out infinite;
}
.scn-war-instrument-measures-policy .wi-rug {
  position: absolute; bottom: 2%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 50%, #5a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 80% 80% 60% 60%;
  opacity: .6;
}
.scn-war-instrument-measures-policy .wi-picture {
  position: absolute; top: 8%; right: 10%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  border: 2px solid #3a2a1a;
  box-shadow: inset 0 0 8px rgba(0,0,0,.3);
}
.scn-war-instrument-measures-policy .wi-log {
  position: absolute; bottom: 22%; left: 18%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-15deg);
  animation: wi-log 6s ease-in-out infinite;
}
@keyframes wi-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(0.95) } }
@keyframes wi-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wi-book { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } }
@keyframes wi-log { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }

/* limited-object-offensive - calm, dim interior with candelabra */
.scn-limited-object-offensive {
  background: 
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #1e1a16 0%, #2a221c 40%, #1c1814 100%);
}
.scn-limited-object-offensive .lo-table {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 8px 18px rgba(0,0,0,.5);
}
.scn-limited-object-offensive .lo-candelabra {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #c8b8a0 0%, #8a7a6a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
}
.scn-limited-object-offensive .lo-candle1 {
  position: absolute; bottom: 42%; left: 46%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #e8d8c0 0%, #b0a090 100%);
  border-radius: 2px;
  animation: lo-candle 5s ease-in-out infinite;
}
.scn-limited-object-offensive .lo-candle2 {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #e8d8c0 0%, #b0a090 100%);
  border-radius: 2px;
  animation: lo-candle 5s ease-in-out infinite 1s;
}
.scn-limited-object-offensive .lo-maproll {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 10%;
  background: linear-gradient(135deg, #c8b8a0 0%, #a08a70 100%);
  border-radius: 0 0 4px 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: lo-roll 15s ease-in-out infinite;
}
.scn-limited-object-offensive .lo-compass {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #c8b8a0 0%, #8a7060 60%, #3a2a1a 100%);
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: lo-compass 30s linear infinite;
}
.scn-limited-object-offensive .lo-dustmote {
  position: absolute; top: 30%; left: 40%; width: 3px; height: 3px;
  background: rgba(200,180,160,.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: lo-dust 25s linear infinite;
}
.scn-limited-object-offensive .lo-shadow {
  position: absolute; bottom: 6%; left: 25%; width: 50%; height: 10%;
  background: radial-gradient(ellipse, #0a0808 0%, transparent 70%);
  filter: blur(8px);
  animation: lo-shadow 10s ease-in-out infinite;
}
@keyframes lo-candle { 0%,100% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1 } }
@keyframes lo-roll { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } }
@keyframes lo-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes lo-dust { 0% { transform: translate(0,0); opacity: 0 } 20% { opacity: .5 } 80% { opacity: .3 } 100% { transform: translate(100px, -60px); opacity: 0 } }
@keyframes lo-shadow { 0%,100% { transform: scaleX(1); opacity: .4 } 50% { transform: scaleX(1.1); opacity: .6 } }

.scn-absolute-real-war-theory-duty {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d4c5a9 40%, #b8a68a 80%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-absolute-real-war-theory-duty .bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c9b99f 0%, #e8dcc4 50%, #c9b99f 100%);
  animation: war-lighting 12s ease-in-out infinite alternate;
}
.scn-absolute-real-war-theory-duty .window {
  position: absolute; top: 8%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, rgba(255,235,200,0.1) 100%);
  border-radius: 4% 4% 6% 6%; box-shadow: inset 0 0 30px rgba(255,215,120,0.3);
  animation: war-window 20s ease-in-out infinite alternate;
}
.scn-absolute-real-war-theory-duty .desk {
  position: absolute; bottom: 18%; left: 20%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6b5a41 0%, #5a4930 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  animation: war-desk 6s ease-in-out infinite;
}
.scn-absolute-real-war-theory-duty .book {
  position: absolute; bottom: 28%; left: 30%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8a6f4a 0%, #6b5a41 100%);
  border-radius: 8% 8% 4% 4%; transform: rotate(-8deg);
  animation: war-book 10s ease-in-out infinite;
}
.scn-absolute-real-war-theory-duty .lamp {
  position: absolute; bottom: 25%; left: 42%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #c89b40 0%, #a07030 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 25px 10px #f0c860;
  animation: war-lamp 3s ease-in-out infinite alternate;
}
.scn-absolute-real-war-theory-duty .figure {
  position: absolute; bottom: 20%; left: 50%; width: 12%; height: 30%;
  background: radial-gradient(ellipse 60% 70%, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: war-figure 5s ease-in-out infinite;
}
@keyframes war-lighting {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes war-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(255,215,120,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,215,120,0.4); }
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(255,215,120,0.25); }
}
@keyframes war-desk {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes war-book {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-3px); }
}
@keyframes war-lamp {
  0% { box-shadow: 0 0 20px 5px #f0c860, 0 0 40px 10px rgba(240,200,96,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px #ffd570, 0 0 60px 18px rgba(255,213,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #f0c860, 0 0 45px 12px rgba(240,200,96,0.35); opacity: 0.92; }
}
@keyframes war-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-interdependence-intro {
  background:
    linear-gradient(180deg, #e8dcc4 0%, #d4c5a9 40%, #c0aF8e 70%, #a08b70 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 50%);
}
.scn-interdependence-intro .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d9cbb3 0%, #eae2d2 50%, #d9cbb3 100%);
  animation: int-wall 14s ease-in-out infinite;
}
.scn-interdependence-intro .window {
  position: absolute; top: 5%; right: 8%; width: 25%; height: 40%;
  background: linear-gradient(180deg, rgba(255,235,190,0.5) 0%, rgba(200,180,150,0.1) 100%);
  border-radius: 6% 6% 8% 8%; box-shadow: inset 0 0 40px rgba(255,215,120,0.2);
  animation: int-window 22s ease-in-out infinite alternate;
}
.scn-interdependence-intro .table {
  position: absolute; bottom: 20%; left: 15%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #5a4930 0%, #4a3920 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.25);
  animation: int-table 7s ease-in-out infinite;
}
.scn-interdependence-intro .doc {
  position: absolute; bottom: 25%; left: 25%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 100%);
  border-radius: 2%; transform: rotate(3deg);
  animation: int-doc 12s ease-in-out infinite alternate;
}
.scn-interdependence-intro .chair {
  position: absolute; bottom: 18%; left: 55%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3930 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: int-chair 8s ease-in-out infinite;
}
.scn-interdependence-intro .globe {
  position: absolute; bottom: 22%; right: 12%; width: 12%; height: 18%;
  background: radial-gradient(circle at 40% 40%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50%; box-shadow: 0 0 15px rgba(0,0,0,0.2);
  animation: int-globe 30s linear infinite;
}
@keyframes int-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes int-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 30px rgba(255,215,120,0.15); }
  50% { opacity: 0.9; box-shadow: inset 0 0 50px rgba(255,215,120,0.35); }
  100% { opacity: 0.6; box-shadow: inset 0 0 35px rgba(255,215,120,0.2); }
}
@keyframes int-table {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); }
}
@keyframes int-doc {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes int-chair {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes int-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-interdependence-extreme-opposite {
  background:
    linear-gradient(180deg, #2a1a10 0%, #4a3930 30%, #6a5a50 60%, #8a7a70 100%),
    radial-gradient(ellipse at 50% 70%, #c87a30 0%, transparent 60%);
}
.scn-interdependence-extreme-opposite .hearth {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: ext-hearth 8s ease-in-out infinite;
}
.scn-interdependence-extreme-opposite .fire {
  position: absolute; bottom: 30%; left: 20%; width: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #ffb040 0%, #ff8030 40%, #c06020 70%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ext-fire 2s ease-in-out infinite alternate;
}
.scn-interdependence-extreme-opposite .mantle {
  position: absolute; bottom: 42%; left: 8%; right: 8%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ext-mantle 10s ease-in-out infinite;
}
.scn-interdependence-extreme-opposite .chair {
  position: absolute; bottom: 20%; right: 15%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.4);
  animation: ext-chair 6s ease-in-out infinite;
}
.scn-interdependence-extreme-opposite .smalltable {
  position: absolute; bottom: 22%; left: 12%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  animation: ext-table 9s ease-in-out infinite;
}
.scn-interdependence-extreme-opposite .cat {
  position: absolute; bottom: 25%; left: 15%; width: 8%; height: 10%;
  background: radial-gradient(ellipse 60% 50%, #8a7a70 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(-10deg);
  animation: ext-cat 7s ease-in-out infinite;
}
@keyframes ext-hearth {
  0%, 100% { opacity: 0.8; } 50% { opacity: 1; }
}
@keyframes ext-fire {
  0% { transform: scale(0.9) translateY(0); opacity: 0.8; }
  25% { transform: scale(1.05) translateY(-5px); opacity: 1; }
  50% { transform: scale(0.95) translateY(-2px); opacity: 0.9; }
  75% { transform: scale(1.08) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.92) translateY(0); opacity: 0.85; }
}
@keyframes ext-mantle {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); }
}
@keyframes ext-chair {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ext-table {
  0%, 100% { transform: scale(1); } 50% { transform: scale(0.98); }
}
@keyframes ext-cat {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-8deg) translateY(-2px); }
  50% { transform: rotate(-12deg) translateY(0); }
  75% { transform: rotate(-9deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-interdependence-frederick-example {
  background:
    linear-gradient(180deg, #b8a68a 0%, #d4c5a9 40%, #e8dcc4 70%, #f0e4d0 100%),
    radial-gradient(ellipse at 40% 30%, #fff8e7 0%, transparent 60%);
}
.scn-interdependence-frederick-example .mapwall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #c9b99f 0%, #e0d4be 50%, #c9b99f 100%);
  animation: fre-wall 15s ease-in-out infinite;
}
.scn-interdependence-frederick-example .map {
  position: absolute; top: 10%; left: 15%; width: 50%; height: 45%;
  background: linear-gradient(180deg, #7a6a4a 0%, #6a5a3a 100%);
  border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.3);
  animation: fre-map 25s ease-in-out infinite alternate;
}
.scn-interdependence-frederick-example .figure {
  position: absolute; bottom: 20%; left: 35%; width: 10%; height: 28%;
  background: radial-gradient(ellipse 60% 70%, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fre-figure 6s ease-in-out infinite;
}
.scn-interdependence-frederick-example .lamp {
  position: absolute; bottom: 22%; left: 28%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #c89b40 0%, #a07030 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #f0c860;
  animation: fre-lamp 3s ease-in-out infinite alternate;
}
.scn-interdependence-frederick-example .books {
  position: absolute; bottom: 20%; right: 10%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  animation: fre-books 12s ease-in-out infinite;
}
.scn-interdependence-frederick-example .papers {
  position: absolute; bottom: 18%; left: 45%; width: 15%; height: 8%;
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 100%);
  border-radius: 2%; transform: rotate(-5deg);
  animation: fre-papers 14s ease-in-out infinite alternate;
}
@keyframes fre-wall {
  0%, 100% { opacity: 0.9; } 50% { opacity: 1; }
}
@keyframes fre-map {
  0% { transform: scale(1) translateY(0); }
  25% { transform: scale(1.01) translateY(-2px); }
  50% { transform: scale(0.99) translateY(0); }
  75% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes fre-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fre-lamp {
  0% { box-shadow: 0 0 25px 5px #f0c860, 0 0 50px 10px rgba(240,200,96,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px #ffd570, 0 0 65px 18px rgba(255,213,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px #f0c860, 0 0 55px 14px rgba(240,200,96,0.35); opacity: 0.92; }
}
@keyframes fre-books {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes fre-papers {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}

.scn-war-approaches-nature { background: linear-gradient(180deg, #1c1a16 0%, #2a231d 40%, #3c2e22 100%), radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%); }
.scn-war-approaches-nature .wall-banner { position:absolute; top:5%; left:5%; width:20%; height:50%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius:8%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: wa-banner 15s ease-in-out infinite alternate; }
.scn-war-approaches-nature .table { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-war-approaches-nature .map { position:absolute; bottom:30%; left:25%; width:40%; height:20%; background: linear-gradient(135deg, #c8b090 0%, #a08060 50%, #806050 100%); border-radius:4px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wa-map 8s ease-in-out infinite; }
.scn-war-approaches-nature .figure { position:absolute; bottom:20%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wa-figure 4s ease-in-out infinite; }
.scn-war-approaches-nature .candlestick { position:absolute; bottom:35%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:2px; }
.scn-war-approaches-nature .candle-glow { position:absolute; bottom:45%; left:20%; width:12px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffd080 0%, #e0a050 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 24px 8px rgba(224,160,80,.5), 0 0 48px 16px rgba(224,160,80,.3); animation: wa-glow 4s ease-in-out infinite alternate; }
.scn-war-approaches-nature .shadow { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); animation: wa-shadow 6s ease-in-out infinite; }
.scn-war-approaches-nature .bookshelf { position:absolute; top:5%; right:5%; width:25%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: wa-bookshelf 20s ease-in-out infinite alternate; }
@keyframes wa-banner { 0% { filter: brightness(.8); } 50% { filter: brightness(1); } 100% { filter: brightness(.9); } }
@keyframes wa-map { 0%,100% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } }
@keyframes wa-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes wa-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1.05); } }
@keyframes wa-shadow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }
@keyframes wa-bookshelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

.scn-element-war-broke-loose { background: linear-gradient(180deg, #1a1a24 0%, #24202c 40%, #2c2634 100%), radial-gradient(ellipse at 50% 100%, #3a3040 0%, transparent 70%); }
.scn-element-war-broke-loose .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3a3a40 0%, #4a484e 50%, #3a3a40 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); animation: wb-wall 12s ease-in-out infinite alternate; }
.scn-element-war-broke-loose .shattered-glass { position:absolute; top:10%; left:30%; width:50%; height:40%; background: linear-gradient(135deg, #d0d0d8 0%, #a0a0a8 30%, #808088 50%, #a0a0a8 70%, #d0d0d8 100%); clip-path: polygon(20% 0%, 40% 10%, 60% 0%, 80% 15%, 100% 30%, 85% 50%, 100% 70%, 70% 80%, 50% 100%, 30% 85%, 10% 100%, 0% 70%, 15% 50%, 0% 30%); animation: wb-glass 3s ease-in-out infinite; }
.scn-element-war-broke-loose .broken-chair { position:absolute; bottom:15%; left:25%; width:30%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 20%, 80% 30%, 70% 70%, 50% 100%, 30% 70%, 20% 30%, 0% 20%); transform: rotate(15deg); animation: wb-chair 5s ease-in-out infinite; }
.scn-element-war-broke-loose .figure { position:absolute; bottom:20%; left:45%; width:24px; height:44px; background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wb-figure 2s ease-in-out infinite; }
.scn-element-war-broke-loose .dust { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, rgba(180,170,160,.15) 0%, transparent 50%); filter: blur(12px); animation: wb-dust 8s ease-in-out infinite alternate; }
.scn-element-war-broke-loose .crack { position:absolute; top:0; left:40%; width:4px; height:100%; background: linear-gradient(180deg, transparent 0%, #2a2a30 30%, #4a4a50 50%, #2a2a30 70%, transparent 100%); border-radius:2px; box-shadow: 0 0 8px rgba(0,0,0,.5); animation: wb-crack 10s ease-in-out infinite; }
@keyframes wb-wall { 0% { filter: brightness(.8); } 50% { filter: brightness(1); } 100% { filter: brightness(.7); } }
@keyframes wb-glass { 0% { clip-path: polygon(20% 0%, 40% 10%, 60% 0%, 80% 15%, 100% 30%, 85% 50%, 100% 70%, 70% 80%, 50% 100%, 30% 85%, 10% 100%, 0% 70%, 15% 50%, 0% 30%); } 50% { clip-path: polygon(25% 2%, 45% 8%, 65% 3%, 75% 18%, 95% 28%, 82% 52%, 95% 68%, 68% 78%, 48% 95%, 28% 82%, 8% 95%, 3% 68%, 18% 48%, 3% 28%); } 100% { clip-path: polygon(15% 5%, 35% 12%, 55% 2%, 85% 10%, 100% 25%, 88% 48%, 100% 72%, 72% 82%, 52% 100%, 32% 88%, 12% 100%, 5% 72%, 12% 52%, 5% 32%); } }
@keyframes wb-chair { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } }
@keyframes wb-figure { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(16px) rotate(-2deg); } }
@keyframes wb-dust { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes wb-crack { 0% { transform: scaleY(1); opacity:.6; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(.8); opacity:.4; } }

.scn-bounds-thrown-down { background: linear-gradient(180deg, #1e1e24 0%, #2a282e 40%, #3a363e 100%), radial-gradient(ellipse at 70% 50%, #4a444a 0%, transparent 60%); }
.scn-bounds-thrown-down .wall-left { position:absolute; left:0; top:0; width:45%; height:100%; background: linear-gradient(180deg, #4a464c 0%, #2a282c 100%); border-radius:0 20% 20% 0; box-shadow: inset -8px 0 16px rgba(0,0,0,.6); animation: bt-wall 8s ease-in-out infinite alternate; }
.scn-bounds-thrown-down .wall-right { position:absolute; right:0; top:0; width:45%; height:100%; background: linear-gradient(180deg, #3a363c 0%, #1c1a1e 100%); border-radius:20% 0 0 20%; box-shadow: inset 8px 0 16px rgba(0,0,0,.5); animation: bt-wall 8s ease-in-out infinite alternate-reverse; }
.scn-bounds-thrown-down .debris { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background: linear-gradient(135deg, #5a5458 0%, #3a363a 50%, #2a282a 100%); clip-path: polygon(0% 0%, 20% 40%, 40% 10%, 60% 50%, 80% 20%, 100% 60%, 100% 100%, 0% 100%); animation: bt-debris 4s ease-in-out infinite; }
.scn-bounds-thrown-down .figure { position:absolute; bottom:25%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #2a2a34 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-figure 3s ease-in-out infinite; }
.scn-bounds-thrown-down .light-beam { position:absolute; top:10%; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(220,210,200,.3) 0%, transparent 100%); filter: blur(8px); animation: bt-beam 6s ease-in-out infinite alternate; }
.scn-bounds-thrown-down .shadow { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: bt-shadow 10s ease-in-out infinite; }
@keyframes bt-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes bt-debris { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(5deg); } }
@keyframes bt-figure { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(6px) rotate(-3deg); } 100% { transform: translateX(12px) rotate(1deg); } }
@keyframes bt-beam { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.1); } 100% { opacity:.4; transform: scaleY(.9); } }
@keyframes bt-shadow { 0%,100% { opacity:.4; } 50% { opacity:.8; } }

.scn-peculiarities-age-judgment { background: linear-gradient(180deg, #1c1a1a 0%, #2a2422 40%, #3a302c 100%), radial-gradient(ellipse at 30% 60%, #4a3e38 0%, transparent 70%); }
.scn-peculiarities-age-judgment .window { position:absolute; left:5%; top:10%; width:40%; height:60%; background: linear-gradient(135deg, #1a2a3a 0%, #2a4050 50%, #3a5060 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); animation: pj-window 12s ease-in-out infinite alternate; }
.scn-peculiarities-age-judgment .curtain { position:absolute; left:3%; top:8%; width:44%; height:64%; background: linear-gradient(180deg, #a08070 0%, #806050 50%, #60403a 100%); border-radius:4px; clip-path: polygon(0% 0%, 100% 0%, 90% 20%, 100% 40%, 85% 60%, 100% 80%, 85% 100%, 15% 100%, 0% 80%, 15% 60%, 0% 40%, 10% 20%); animation: pj-curtain 20s ease-in-out infinite alternate; }
.scn-peculiarities-age-judgment .globe { position:absolute; bottom:30%; left:15%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #80a0c0 0%, #406080 60%, #203040 100%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset -8px -8px 16px rgba(0,0,0,.3); animation: pj-globe 30s linear infinite; }
.scn-peculiarities-age-judgment .figure { position:absolute; bottom:20%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #2a2420 0%, #1c1816 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pj-figure 6s ease-in-out infinite; }
.scn-peculiarities-age-judgment .books { position:absolute; bottom:10%; left:60%; width:30%; height:50%; background: linear-gradient(90deg, #5a4030 0%, #6a5040 20%, #4a3020 40%, #7a6050 60%, #6a5040 80%, #5a4030 100%); border-radius:4px; box-shadow: inset 0 0 12px rgba(0,0,0,.5); animation: pj-books 18s ease-in-out infinite alternate; }
.scn-peculiarities-age-judgment .lamp { position:absolute; top:5%; right:10%; width:10px; height:30px; background: linear-gradient(180deg, #a08060 0%, #806050 100%); border-radius:4px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-peculiarities-age-judgment .lamp-glow { position:absolute; top:2%; right:8%; width:40px; height:50px; background: radial-gradient(ellipse, #f0d080 0%, #d0a050 30%, transparent 70%); filter: blur(6px); animation: pj-glow 4s ease-in-out infinite alternate; }
@keyframes pj-window { 0% { filter: brightness(.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(.9); } }
@keyframes pj-curtain { 0% { clip-path: polygon(0% 0%, 100% 0%, 90% 20%, 100% 40%, 85% 60%, 100% 80%, 85% 100%, 15% 100%, 0% 80%, 15% 60%, 0% 40%, 10% 20%); } 100% { clip-path: polygon(0% 0%, 100% 0%, 92% 22%, 100% 44%, 87% 62%, 100% 82%, 83% 100%, 17% 100%, 0% 82%, 13% 62%, 0% 44%, 8% 22%); } }
@keyframes pj-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pj-figure { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pj-books { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pj-glow { 0% { opacity:.5; } 50% { opacity:.9; } 100% { opacity:.7; } }

/* ------- Scene: defence-mountains-lamentable-position (Dark, Overcast) ------- */
.scn-defence-mountains-lamentable-position {
  background: linear-gradient(180deg, #2b2e3e 0%, #1d1f2b 50%, #0f1018 100%), radial-gradient(ellipse at 50% 0%, #3b3e52 0%, transparent 60%);
}
.scn-defence-mountains-lamentable-position .sullen-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a4e62 0%, #2b2e3e 50%, transparent 100%);
  animation: sm1-sky 16s ease-in-out infinite alternate;
}
.scn-defence-mountains-lamentable-position .jagged-peaks {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2d3142 0%, #1c1f2c 100%);
  clip-path: polygon(0% 20%, 12% 0%, 25% 15%, 40% 2%, 55% 10%, 70% 0%, 85% 12%, 100% 5%, 100% 100%, 0% 100%);
  animation: sm1-peaks 22s ease-in-out infinite alternate;
}
.scn-defence-mountains-lamentable-position .weeping-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 65%, rgba(90, 94, 112, 0.4) 0%, transparent 65%);
  filter: blur(12px);
  animation: sm1-mist 30s ease-in-out infinite alternate;
}
.scn-defence-mountains-lamentable-position .bleak-ridge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1c26 0%, #0b0c12 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 0 0;
  animation: sm1-ridge 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-lamentable-position .lone-figure {
  position: absolute; bottom: 32%; left: 50%;
  width: 14px; height: 36px;
  background: #090a0d;
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform: translateX(-50%);
  animation: sm1-figure 7s ease-in-out infinite;
}
.scn-defence-mountains-lamentable-position .dying-ember {
  position: absolute; bottom: 28%; left: 46%;
  width: 5px; height: 5px;
  background: #9a4b2a;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px #9a4b2a, 0 0 16px 6px rgba(154, 75, 42, 0.3);
  animation: sm1-ember 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-lamentable-position .scattered-stones {
  position: absolute; bottom: 15%; left: 25%;
  width: 70px; height: 20px;
  background: #151821;
  border-radius: 30% 20% 40% 30% / 60% 40% 60% 40%;
  transform: rotate(-5deg);
  animation: sm1-stones 40s linear infinite alternate;
}
@keyframes sm1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sm1-peaks { 0% { transform: translateY(0px); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes sm1-mist { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.06); } 100% { opacity: 0.4; transform: scale(0.94); } }
@keyframes sm1-ridge { 0% { transform: translateY(0px); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0px); } }
@keyframes sm1-figure { 0% { transform: translateX(-50%) translateY(0px) rotate(-2deg); } 25% { transform: translateX(-48%) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0px) rotate(0deg); } 75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0px) rotate(2deg); } }
@keyframes sm1-ember { 0% { box-shadow: 0 0 4px 1px #9a4b2a; opacity: 0.4; } 50% { box-shadow: 0 0 12px 5px #b85c34; opacity: 1; } 100% { box-shadow: 0 0 2px 0 #7a351a; opacity: 0.2; } }
@keyframes sm1-stones { 0% { transform: rotate(-5deg) translateX(0px); } 50% { transform: rotate(3deg) translateX(8px); } 100% { transform: rotate(-6deg) translateX(-4px); } }

/* ------- Scene: defence-mountains-inevitable-decisive (Tense, Bright-interior) ------- */
.scn-defence-mountains-inevitable-decisive {
  background: radial-gradient(ellipse at 50% 50%, #4a3b2c 0%, #1c1814 80%), linear-gradient(180deg, #2c241c 0%, #1c1814 100%);
}
.scn-defence-mountains-inevitable-decisive .rough-walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2420 0%, transparent 18%, transparent 82%, #2a2420 100%);
  animation: sm2-walls 10s ease-in-out infinite alternate;
}
.scn-defence-mountains-inevitable-decisive .oaken-beams {
  position: absolute; top: 0; left: 0; right: 0; height: 16%;
  background: repeating-linear-gradient(90deg, #1a1612 0px, #1a1612 18px, transparent 18px, transparent 38px);
}
.scn-defence-mountains-inevitable-decisive .command-table {
  position: absolute; bottom: 18%; left: 22%; right: 22%; height: 24%;
  background: linear-gradient(180deg, #3c2e20 0%, #1e1812 100%);
  border-radius: 6px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.8);
}
.scn-defence-mountains-inevitable-decisive .iron-lamp {
  position: absolute; bottom: 36%; left: 50%;
  width: 18px; height: 26px;
  background: #5a4a3a;
  border-radius: 6px 6px 10px 10px;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 12px #c67a3a, 0 0 80px 24px rgba(198, 122, 58, 0.4);
  animation: sm2-lamp 2s ease-in-out infinite alternate;
}
.scn-defence-mountains-inevitable-decisive .figure-commander {
  position: absolute; bottom: 18%; left: 36%;
  width: 22px; height: 44px;
  background: #14100c;
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sm2-commander 9s ease-in-out infinite;
}
.scn-defence-mountains-inevitable-decisive .figure-officer {
  position: absolute; bottom: 18%; right: 34%;
  width: 20px; height: 42px;
  background: #14100c;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm2-officer 8s ease-in-out infinite reverse;
}
.scn-defence-mountains-inevitable-decisive .field-map {
  position: absolute; bottom: 22%; left: 42%; right: 42%; height: 16%;
  background: #8a7a5a;
  border-radius: 3px;
  transform: rotate(2deg);
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
}
.scn-defence-mountains-inevitable-decisive .tactical-blade {
  position: absolute; bottom: 24%; left: 48%;
  width: 3px; height: 18px;
  background: #a0a0a8;
  border-radius: 2px;
  transform: rotate(-40deg);
  box-shadow: 0 0 6px #c0c0c8;
  animation: sm2-blade 5s ease-in-out infinite alternate;
}
@keyframes sm2-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sm2-lamp { 0% { box-shadow: 0 0 30px 8px #c67a3a, 0 0 60px 16px rgba(198, 122, 58, 0.3); } 50% { box-shadow: 0 0 50px 16px #d88a4a, 0 0 90px 30px rgba(216, 138, 74, 0.5); } 100% { box-shadow: 0 0 35px 10px #c67a3a, 0 0 70px 20px rgba(198, 122, 58, 0.4); } }
@keyframes sm2-commander { 0% { transform: rotate(-4deg) translateX(-3px); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes sm2-officer { 0% { transform: rotate(3deg) translateX(3px); } 50% { transform: rotate(-4deg) translateX(-2px); } 100% { transform: rotate(2deg) translateX(1px); } }
@keyframes sm2-blade { 0% { transform: rotate(-40deg) translateY(0px); } 50% { transform: rotate(-30deg) translateY(-3px); } 100% { transform: rotate(-45deg) translateY(0px); } }

/* ------- Scene: defence-mountains-minor-combats-favourable (Calm, Bright-interior) ------- */
.scn-defence-mountains-minor-combats-favourable {
  background: radial-gradient(ellipse at 50% 60%, #6a86a2 0%, #1e222a 80%), linear-gradient(180deg, #2a303a 0%, #1a1e24 100%);
}
.scn-defence-mountains-minor-combats-favourable .cave-arch {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 65%, transparent 35%, #14161c 100%);
  animation: sm3-arch 20s ease-in-out infinite alternate;
}
.scn-defence-mountains-minor-combats-favourable .open-sky {
  position: absolute; inset: 6% 18% 22% 18%;
  background: linear-gradient(180deg, #8aaec8 0%, #5a7a9a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
}
.scn-defence-mountains-minor-combats-favourable .peaceful-valley {
  position: absolute; bottom: 22%; left: 18%; right: 18%; height: 28%;
  background: linear-gradient(180deg, #6a8a62 0%, #4a6a42 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  animation: sm3-valley 35s ease-in-out infinite alternate;
}
.scn-defence-mountains-minor-combats-favourable .vigilant-scout {
  position: absolute; bottom: 24%; left: 50%;
  width: 16px; height: 36px;
  background: #12141a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sm3-scout 10s ease-in-out infinite;
}
.scn-defence-mountains-minor-combats-favourable .sheltered-fern {
  position: absolute; bottom: 24%; left: 32%;
  width: 24px; height: 28px;
  background: linear-gradient(180deg, #3a5a3a 0%, #223222 100%);
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  animation: sm3-fern 18s ease-in-out infinite alternate;
}
.scn-defence-mountains-minor-combats-favourable .dusty-beam {
  position: absolute; inset: 12% 22% 22% 32%;
  background: linear-gradient(135deg, transparent 0%, rgba(230, 240, 210, 0.15) 40%, transparent 80%);
  filter: blur(6px);
  animation: sm3-beam 14s ease-in-out infinite alternate;
}
.scn-defence-mountains-minor-combats-favourable .surveying-glass {
  position: absolute; bottom: 34%; left: 54%;
  width: 8px; height: 14px;
  background: rgba(120, 180, 220, 0.3);
  border: 1px solid rgba(180, 200, 220, 0.5);
  border-radius: 50%;
  transform: rotate(12deg);
  animation: sm3-glass 7s ease-in-out infinite;
}
@keyframes sm3-arch { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sm3-valley { 0% { opacity: 0.8; transform: translateY(0px); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.7; transform: translateY(1px); } }
@keyframes sm3-scout { 0% { transform: translateX(-50%) translateY(0px) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0px) rotate(0deg); } }
@keyframes sm3-fern { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(4deg); } 100% { transform: scale(0.97) rotate(-3deg); } }
@keyframes sm3-beam { 0% { opacity: 0.2; transform: rotate(0deg); } 50% { opacity: 0.5; transform: rotate(6deg); } 100% { opacity: 0.3; transform: rotate(-3deg); } }
@keyframes sm3-glass { 0% { transform: rotate(12deg) scale(1); } 50% { transform: rotate(18deg) scale(1.05); } 100% { transform: rotate(8deg) scale(0.95); } }

/* ------- Scene: defence-mountains-demonstration (Calm, Bright-interior) ------- */
.scn-defence-mountains-demonstration {
  background: linear-gradient(180deg, #7a9ab2 0%, #8aaa7a 40%, #6a8a5a 100%), radial-gradient(ellipse at 50% 0%, #9abaca 0%, transparent 70%);
}
.scn-defence-mountains-demonstration .pavilion-canopy {
  position: absolute; top: 0; left: 8%; right: 8%; height: 18%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e18 100%);
  clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: sm4-canopy 15s ease-in-out infinite alternate;
}
.scn-defence-mountains-demonstration .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 4%; height: 82%;
  background: linear-gradient(90deg, #3a2a1e 0%, #5a3e2e 50%, #3a2a1e 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-defence-mountains-demonstration .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 4%; height: 82%;
  background: linear-gradient(90deg, #3a2a1e 0%, #5a3e2e 50%, #3a2a1e 100%);
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-defence-mountains-demonstration .open-landscape {
  position: absolute; inset: 18% 0 0 0;
  background: linear-gradient(180deg, #6a8a5a 0%, #8aaa7a 30%, #5a7a4a 100%);
  animation: sm4-landscape 25s ease-in-out infinite alternate;
}
.scn-defence-mountains-demonstration .marching-dots {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 6%;
  background: repeating-linear-gradient(90deg, #2a322a 0px, #2a322a 5px, transparent 5px, transparent 10px);
  animation: sm4-march 30s linear infinite;
}
.scn-defence-mountains-demonstration .signal-flags {
  position: absolute; bottom: 32%; left: 42%;
  width: 10px; height: 16px;
  background: #8a4a3a;
  border-radius: 0 3px 3px 0;
  transform-origin: left bottom;
  animation: sm4-flag 4s ease-in-out infinite alternate;
}
.scn-defence-mountains-demonstration .standing-general {
  position: absolute; bottom: 0; left: 48%;
  width: 26px; height: 56px;
  background: #1a1e22;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sm4-general 8s ease-in-out infinite alternate;
}
.scn-defence-mountains-demonstration .viewing-rail {
  position: absolute; bottom: 18%; left: 8%; right: 8%; height: 6px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 3px;
}
.scn-defence-mountains-demonstration .campaign-map {
  position: absolute; bottom: 6%; left: 58%;
  width: 36px; height: 24px;
  background: #7a6a4a;
  transform: rotate(-6deg);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
@keyframes sm4-canopy { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes sm4-landscape { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sm4-march { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }
@keyframes sm4-flag { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.3) rotate(6deg); } 100% { transform: scaleX(0.9) rotate(-4deg); } }
@keyframes sm4-general { 0% { transform: translateX(-50%) translateY(0px); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0px); } }

/* Scene 1: interweaving-military-kinds */
.scn-interweaving-military-kinds {
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1208 40%, #0f0a04 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a14 0%, transparent 60%);
}
.scn-interweaving-military-kinds .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a14 0%, #1a1208 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-interweaving-military-kinds .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1208 0%, #0f0a04 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-interweaving-military-kinds .lamp-glow {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8c060 0%, #a08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,160,80,0.4);
  animation: s1-lamp 4s ease-in-out infinite alternate;
}
.scn-interweaving-military-kinds .figure-feudal {
  position: absolute; bottom: 22%; left: 28%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5e3a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-fig1 3s ease-in-out infinite alternate;
}
.scn-interweaving-military-kinds .figure-condott {
  position: absolute; bottom: 20%; left: 42%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-fig2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-interweaving-military-kinds .figure-standing {
  position: absolute; bottom: 24%; left: 56%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-fig3 2.8s ease-in-out infinite alternate;
}
.scn-interweaving-military-kinds .banner {
  position: absolute; top: 15%; left: 38%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform: skewX(-10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s1-banner 6s ease-in-out infinite;
}
@keyframes s1-lamp {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; box-shadow: 0 0 40px 10px rgba(200,160,80,0.3); }
  50% { transform: translateX(-50%) scale(1.08); opacity: 1; box-shadow: 0 0 80px 25px rgba(220,180,90,0.5); }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; box-shadow: 0 0 50px 15px rgba(200,160,80,0.35); }
}
@keyframes s1-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes s1-fig2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) translateY(-2px) scaleY(1.02); }
  100% { transform: translateX(2px) scaleY(0.98); }
}
@keyframes s1-fig3 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(-2deg) translateY(-1px); }
  100% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes s1-banner {
  0%, 100% { transform: skewX(-10deg) scaleY(1); }
  50% { transform: skewX(-12deg) scaleY(1.05); }
}

/* Scene 2: middle-ages-politics-view */
.scn-middle-ages-politics-view {
  background: linear-gradient(135deg, #1a1208 0%, #2a1e0e 40%, #0f0a04 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a14 0%, transparent 70%);
}
.scn-middle-ages-politics-view .bg-table {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 20% 20% 5% 5% / 10% 10% 5% 5%;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(30deg);
  transform-origin: bottom center;
}
.scn-middle-ages-politics-view .map {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 30%, #5a4a2a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateX(20deg);
  animation: s2-map 20s ease-in-out infinite alternate;
}
.scn-middle-ages-politics-view .token-a,
.scn-middle-ages-politics-view .token-b,
.scn-middle-ages-politics-view .token-c {
  position: absolute; width: 14px; height: 14px;
  background: radial-gradient(circle, #c8a060 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,96,0.3);
  animation: s2-token 6s ease-in-out infinite alternate;
}
.scn-middle-ages-politics-view .token-a { bottom: 40%; left: 25%; animation-delay: 0s; }
.scn-middle-ages-politics-view .token-b { bottom: 35%; left: 45%; animation-delay: -2s; }
.scn-middle-ages-politics-view .token-c { bottom: 45%; left: 60%; animation-delay: -4s; }
.scn-middle-ages-politics-view .candle {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 24px;
  margin-left: -4px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a060 40%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: rotate(2deg);
  animation: s2-candle 5s ease-in-out infinite alternate;
}
.scn-middle-ages-politics-view .candle-glow {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  margin-left: -30px;
  background: radial-gradient(circle, rgba(240,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: s2-glow 3s ease-in-out infinite alternate;
}
.scn-middle-ages-politics-view .shadow-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
  pointer-events: none;
}
@keyframes s2-map {
  0% { transform: perspective(300px) rotateX(20deg) scale(1); }
  50% { transform: perspective(300px) rotateX(18deg) scale(1.02); }
  100% { transform: perspective(300px) rotateX(22deg) scale(0.98); }
}
@keyframes s2-token {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(-2px, 1px) scale(1.05); opacity: 1; }
  100% { transform: translate(2px, -1px) scale(0.95); opacity: 0.9; }
}
@keyframes s2-candle {
  0% { transform: rotate(2deg) scaleY(1); }
  50% { transform: rotate(-1deg) scaleY(1.03); }
  100% { transform: rotate(1deg) scaleY(0.97); }
}
@keyframes s2-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* Scene 3: germany-italy-expeditions */
.scn-germany-italy-expeditions {
  background: linear-gradient(180deg, #1a100c 0%, #2a1a0e 50%, #0f0804 100%),
              radial-gradient(ellipse at 60% 50%, #3a2a14 0%, transparent 70%);
}
.scn-germany-italy-expeditions .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a100c 100%);
}
.scn-germany-italy-expeditions .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-germany-italy-expeditions .globe {
  position: absolute; bottom: 38%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #6a8a5a 0%, #3a5a3a 50%, #2a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: s3-globe 12s linear infinite;
}
.scn-germany-italy-expeditions .compass-ring {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 30px;
  border: 3px solid #8a7a5a;
  border-radius: 50%;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1e0e 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: s3-compass 8s ease-in-out infinite alternate;
}
.scn-germany-italy-expeditions .compass-needle {
  position: absolute; bottom: 43%; left: 33%; width: 3px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 20%;
  transform-origin: center bottom;
  animation: s3-needle 4s ease-in-out infinite alternate;
}
.scn-germany-italy-expeditions .book-stack {
  position: absolute; bottom: 22%; left: 18%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: s3-book 10s ease-in-out infinite alternate;
}
.scn-germany-italy-expeditions .candle-light {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a060 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,200,100,0.3);
  animation: s3-candle 3s ease-in-out infinite alternate;
}
.scn-germany-italy-expeditions .paper {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 20px;
  background: #8a7a5a;
  border-radius: 5%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: s3-paper 15s ease-in-out infinite alternate;
}
@keyframes s3-globe {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(180deg); }
  100% { transform: rotateY(360deg); }
}
@keyframes s3-compass {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(0.95); }
}
@keyframes s3-needle {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes s3-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes s3-candle {
  0% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(240,200,100,0.2); }
  50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 30px 10px rgba(240,200,100,0.4); }
  100% { opacity: 0.9; transform: scaleY(0.98); box-shadow: 0 0 20px 6px rgba(240,200,100,0.3); }
}
@keyframes s3-paper {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.02); }
  100% { transform: rotate(8deg) scale(0.99); }
}

/* Scene 4: france-england-wars-begin */
.scn-france-england-wars-begin {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a0e 40%, #0f0804 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a14 0%, transparent 60%);
}
.scn-france-england-wars-begin .bg-hall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1208 100%);
}
.scn-france-england-wars-begin .table-long {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-france-england-wars-begin .faction-left {
  position: absolute; bottom: 28%; left: 8%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #5e2a1a 0%, #3a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-fleft 4s ease-in-out infinite alternate;
}
.scn-france-england-wars-begin .faction-right {
  position: absolute; bottom: 28%; right: 8%; width: 40px; height: 50px;
  background: linear-gradient(225deg, #2a3a5a 0%, #1a2a4a 100%); /* cool blue tone */
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-fright 4.2s ease-in-out infinite alternate-reverse;
}
.scn-france-england-wars-begin .lantern {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 28px;
  margin-left: -10px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,0.4);
  animation: s4-lantern 5s ease-in-out infinite alternate;
}
.scn-france-england-wars-begin .lantern-glow {
  position: absolute; top: 5%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: s4-glow 4s ease-in-out infinite alternate;
}
.scn-france-england-wars-begin .shadow-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes s4-fleft {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(-1px) rotate(0); }
}
@keyframes s4-fright {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-1deg) translateY(-1px); }
  100% { transform: translateX(1px) rotate(0); }
}
@keyframes s4-lantern {
  0% { transform: scaleY(1); box-shadow: 0 0 20px 6px rgba(200,160,96,0.3); }
  50% { transform: scaleY(1.06); box-shadow: 0 0 40px 15px rgba(200,160,96,0.5); }
  100% { transform: scaleY(0.96); box-shadow: 0 0 25px 8px rgba(200,160,96,0.35); }
}
@keyframes s4-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-diversion-favourable-circumstances { background: linear-gradient(135deg, #f5e6d0 0%, #e3c9a6 50%, #d4b78a 100%), radial-gradient(ellipse at 80% 30%, #fff8e7 0%, transparent 70%); }
.scn-diversion-favourable-circumstances .desk { position: absolute; bottom: 8%; left: 10%; right: 10%; height: 52%; background: linear-gradient(180deg, #b08a5a 0%, #8e6a3e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-diversion-favourable-circumstances .map  { position: absolute; bottom: 30%; left: 30%; width: 45%; height: 30%; background: linear-gradient(135deg, #e8d5a8 0%, #cfb87a 60%, #b89e5c 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: d1-map 8s ease-in-out infinite; }
.scn-diversion-favourable-circumstances .candle { position: absolute; bottom: 46%; left: 18%; width: 8px; height: 20px; background: linear-gradient(180deg, #fff3cb 0%, #f0c27a 100%); border-radius: 20% 20% 4px 4px; box-shadow: 0 0 16px 6px rgba(240,194,122,.8); animation: d1-candle 3s ease-in-out infinite alternate; }
.scn-diversion-favourable-circumstances .globe { position: absolute; bottom: 22%; right: 12%; width: 40px; height: 40px; background: radial-gradient(circle at 40% 35%, #6a9abe 0%, #3b6b8a 60%, #1e3d5a 100%); border-radius: 50%; box-shadow: 2px 2px 8px rgba(0,0,0,.3); animation: d1-globe 12s linear infinite; }
.scn-diversion-favourable-circumstances .hand  { position: absolute; bottom: 36%; left: 40%; width: 20px; height: 30px; background: radial-gradient(ellipse at 50% 60%, #e8c8a0 0%, #c8a070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: d1-hand 4s ease-in-out infinite; }
.scn-diversion-favourable-circumstances .window { position: absolute; top: 5%; left: 5%; width: 30%; height: 40%; background: linear-gradient(180deg, #fff9e6 0%, #e6dcb8 100%); border: 3px solid #8e6a3e; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,249,230,.5); }
.scn-diversion-favourable-circumstances .inkwell { position: absolute; bottom: 24%; left: 20%; width: 16px; height: 14px; background: radial-gradient(ellipse, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
@keyframes d1-map    { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.01); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes d1-candle { 0% { box-shadow: 0 0 10px 4px rgba(240,194,122,.6); } 50% { box-shadow: 0 0 20px 10px rgba(240,194,122,.9); } 100% { box-shadow: 0 0 14px 6px rgba(240,194,122,.7); } }
@keyframes d1-globe  { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } }
@keyframes d1-hand   { 0% { transform: translate(0, 0) rotate(-5deg); } 25% { transform: translate(4px, -2px) rotate(0deg); } 50% { transform: translate(8px, -1px) rotate(3deg); } 75% { transform: translate(12px, -2px) rotate(0deg); } 100% { transform: translate(16px, 0) rotate(-5deg); } }

.scn-diversion-examples { background: linear-gradient(160deg, #eedcc6 0%, #dcc4a8 50%, #c8aa86 100%), radial-gradient(ellipse at 20% 80%, #fdf4e3 0%, transparent 70%); }
.scn-diversion-examples .table { position: absolute; bottom: 6%; left: 5%; right: 5%; height: 55%; background: linear-gradient(180deg, #a6825e 0%, #8a6840 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-diversion-examples .ship  { position: absolute; bottom: 38%; left: 30%; width: 60px; height: 30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: d2-ship 6s ease-in-out infinite; }
.scn-diversion-examples .ship::after { content: ''; position: absolute; top: -20px; left: 10px; width: 0; height: 0; border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 30px solid #e8dcc8; }
.scn-diversion-examples .chart { position: absolute; bottom: 28%; left: 15%; width: 40%; height: 24%; background: linear-gradient(135deg, #e8d5a8 0%, #cfb87a 60%, #b89e5c 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: d2-chart 10s ease-in-out infinite; }
.scn-diversion-examples .compass { position: absolute; bottom: 42%; right: 18%; width: 24px; height: 24px; background: radial-gradient(circle, #d4b07a 0%, #a08050 100%); border-radius: 50%; border: 2px solid #8a6840; animation: d2-compass 18s linear infinite; }
.scn-diversion-examples .quill  { position: absolute; bottom: 32%; left: 50%; width: 4px; height: 30px; background: linear-gradient(180deg, #e8dcc8 0%, #b8a888 100%); border-radius: 50% 50% 4px 4px; transform: rotate(-20deg); transform-origin: bottom center; animation: d2-quill 4s ease-in-out infinite; }
.scn-diversion-examples .inkwell { position: absolute; bottom: 22%; left: 45%; width: 14px; height: 12px; background: radial-gradient(ellipse, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
@keyframes d2-ship   { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes d2-chart  { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(4deg) scale(1.01); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes d2-compass{ 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes d2-quill  { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-invasion-concept { background: linear-gradient(180deg, #f0e6d6 0%, #dcc8b0 40%, #c8b098 100%), radial-gradient(ellipse at 50% 0%, #fffdf5 0%, transparent 80%); }
.scn-invasion-concept .shelf { position: absolute; top: 8%; left: 5%; right: 5%; height: 10%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-invasion-concept .book1 { position: absolute; top: 6%; left: 12%; width: 20px; height: 50px; background: linear-gradient(90deg, #8a3a3a 0%, #a05040 100%); border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); animation: in3-book1 8s ease-in-out infinite; }
.scn-invasion-concept .book2 { position: absolute; top: 6%; right: 20%; width: 24px; height: 45px; background: linear-gradient(90deg, #3a5a7a 0%, #4a6a8a 100%); border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.2); animation: in3-book2 6s ease-in-out infinite; }
.scn-invasion-concept .candle { position: absolute; bottom: 40%; left: 45%; width: 8px; height: 22px; background: linear-gradient(180deg, #fff3cb 0%, #f0c27a 100%); border-radius: 20% 20% 4px 4px; box-shadow: 0 0 16px 6px rgba(240,194,122,.8); animation: in3-candle 3s ease-in-out infinite alternate; }
.scn-invasion-concept .figure { position: absolute; bottom: 16%; left: 35%; width: 20px; height: 50px; background: radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: in3-figure 4s ease-in-out infinite; }
.scn-invasion-concept .desk  { position: absolute; bottom: 6%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #b08a5a 0%, #8e6a3e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
@keyframes in3-book1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes in3-book2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes in3-candle { 0% { box-shadow: 0 0 10px 4px rgba(240,194,122,.6); } 50% { box-shadow: 0 0 22px 10px rgba(240,194,122,.9); } 100% { box-shadow: 0 0 14px 6px rgba(240,194,122,.7); } }
@keyframes in3-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-culminating-point-victory { background: linear-gradient(180deg, #e8ddd4 0%, #d4c8b8 50%, #c0b0a0 100%), radial-gradient(ellipse at 50% 100%, #fff5e8 0%, transparent 70%); }
.scn-culminating-point-victory .table { position: absolute; bottom: 5%; left: 2%; right: 2%; height: 60%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 8px; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-culminating-point-victory .map   { position: absolute; bottom: 20%; left: 15%; width: 70%; height: 50%; background: linear-gradient(135deg, #e8d5a8 0%, #cfb87a 60%, #b89e5c 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,.2); animation: cp4-map 20s linear infinite; }
.scn-culminating-point-victory .terrain { position: absolute; bottom: 22%; left: 30%; width: 40%; height: 25%; background: radial-gradient(ellipse at 50% 60%, #6a8a5a 0%, #4a6a3a 100%); border-radius: 60% 40% 40% 60% / 50% 40% 40% 50%; box-shadow: inset 2px 2px 6px rgba(0,0,0,.2); animation: cp4-terrain 15s ease-in-out infinite; }
.scn-culminating-point-victory .soldier1 { position: absolute; bottom: 30%; left: 35%; width: 8px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cp4-soldier1 5s ease-in-out infinite; }
.scn-culminating-point-victory .soldier2 { position: absolute; bottom: 30%; left: 48%; width: 8px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cp4-soldier2 5s ease-in-out infinite 1.5s; }
.scn-culminating-point-victory .candle { position: absolute; bottom: 45%; right: 15%; width: 8px; height: 20px; background: linear-gradient(180deg, #fff3cb 0%, #f0c27a 100%); border-radius: 20% 20% 4px 4px; box-shadow: 0 0 16px 6px rgba(240,194,122,.8); animation: cp4-candle 3s ease-in-out infinite alternate; }
@keyframes cp4-map     { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes cp4-terrain { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cp4-soldier1{ 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cp4-soldier2{ 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cp4-candle { 0% { box-shadow: 0 0 10px 4px rgba(240,194,122,.6); } 50% { box-shadow: 0 0 20px 10px rgba(240,194,122,.9); } 100% { box-shadow: 0 0 14px 6px rgba(240,194,122,.7); } }

/* regular-game-diplomacy – dim table, cards, lamp, hand, dice */
.scn-regular-game-diplomacy {
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 60%, #0f0a05 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-regular-game-diplomacy .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(5deg); animation: rgd-table 14s ease-in-out infinite alternate;
}
.scn-regular-game-diplomacy .card-left {
  position: absolute; bottom: 38%; left: 30%; width: 28px; height: 40px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c4b69a 50%, #a09074 100%);
  border-radius: 4px 4px 6px 6px; transform: rotate(-12deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: rgd-card 6s ease-in-out infinite;
}
.scn-regular-game-diplomacy .card-right {
  position: absolute; bottom: 40%; right: 30%; width: 28px; height: 40px;
  background: linear-gradient(225deg, #e8dcc8 0%, #c4b69a 50%, #a09074 100%);
  border-radius: 4px 4px 6px 6px; transform: rotate(8deg);
  box-shadow: -2px 2px 8px rgba(0,0,0,.5); animation: rgd-card-r 7s ease-in-out infinite;
}
.scn-regular-game-diplomacy .lamp {
  position: absolute; bottom: 70%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #c87a40 0%, #8a5a2a 60%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #d08a4a;
  animation: rgd-lamp 3s ease-in-out infinite;
}
.scn-regular-game-diplomacy .lamp-glow {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,64,.2) 0%, transparent 60%);
  animation: rgd-glow 3s ease-in-out infinite alternate;
}
.scn-regular-game-diplomacy .hand {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #c4a07a 0%, #8a6a4a 50%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: rgd-hand 8s ease-in-out infinite;
}
.scn-regular-game-diplomacy .dice1 {
  position: absolute; bottom: 26%; left: 25%; width: 14px; height: 14px;
  background: #e0d4c0; border-radius: 4px;
  box-shadow: inset 0 0 0 1px #a09074, 2px 2px 6px rgba(0,0,0,.5);
  animation: rgd-dice 4s ease-in-out infinite;
}
.scn-regular-game-diplomacy .dice2 {
  position: absolute; bottom: 26%; left: 20%; width: 14px; height: 14px;
  background: #d8ccb8; border-radius: 4px;
  box-shadow: inset 0 0 0 1px #a09074, 2px 2px 6px rgba(0,0,0,.5);
  animation: rgd-dice2 5s ease-in-out infinite;
}
@keyframes rgd-table { 0% { transform: perspective(400px) rotateX(5deg) } 100% { transform: perspective(400px) rotateX(7deg) } }
@keyframes rgd-card { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes rgd-card-r { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes rgd-lamp { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes rgd-glow { 0% { opacity: .7; transform: translateX(-50%) scale(1) } 100% { opacity: 1; transform: translateX(-50%) scale(1.1) } }
@keyframes rgd-hand { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 33% { transform: translateX(-40%) translateY(-5px) rotate(0deg) } 66% { transform: translateX(-60%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes rgd-dice { 0% { transform: rotate(0) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes rgd-dice2 { 0% { transform: rotate(0) translate(0,0) } 50% { transform: rotate(180deg) translate(-5px, -3px) } 100% { transform: rotate(360deg) translate(0,0) } }

/* restricted-form-war – tense dim interior, map with pins, candle, general, shadow */
.scn-restricted-form-war {
  background: linear-gradient(135deg, #1a120e 0%, #2a1e16 30%, #0f0a05 70%, #050302 100%),
              radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-restricted-form-war .map {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(135deg, #c4aa80 0%, #a88e64 30%, #7a6040 70%, #5a4a2a 100%);
  border-radius: 12px; transform: perspective(500px) rotateX(10deg);
  box-shadow: 0 8px 30px rgba(0,0,0,.7); animation: rfw-map 20s ease-in-out infinite alternate;
}
.scn-restricted-form-war .pin-red {
  position: absolute; bottom: 40%; left: 32%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 80%, #a03520 0%, #5e1a1d 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px 2px rgba(160,53,32,.3);
  animation: rfw-pin 2s ease-in-out infinite alternate;
}
.scn-restricted-form-war .pin-blue {
  position: absolute; bottom: 48%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 80%, #3a5a8a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px 2px rgba(58,90,138,.3);
  animation: rfw-pin-b 2s ease-in-out infinite alternate-reverse;
}
.scn-restricted-form-war .candle {
  position: absolute; bottom: 70%; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b48e 40%, #8a7a5a 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: inset 0 2px 6px rgba(0,0,0,.3);
  animation: rfw-candle 6s ease-in-out infinite;
}
.scn-restricted-form-war .candle-flame {
  position: absolute; bottom: 75%; left: 20%; transform: translateX(50%);
  width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #ffc860 0%, #e08020 40%, #8a3a0a 70%, transparent 90%);
  border-radius: 50%; filter: blur(1px);
  animation: rfw-flame 0.5s ease-in-out infinite alternate;
}
.scn-restricted-form-war .general {
  position: absolute; bottom: 22%; left: 63%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scale(1.2); animation: rfw-general 8s ease-in-out infinite;
}
.scn-restricted-form-war .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.25) 100%);
  border-radius: 12px; animation: rfw-shadow 12s ease-in-out infinite alternate;
}
@keyframes rfw-map { 0% { transform: perspective(500px) rotateX(10deg) } 100% { transform: perspective(500px) rotateX(12deg) translateY(-2px) } }
@keyframes rfw-pin { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes rfw-pin-b { 0% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rfw-candle { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes rfw-flame { 0% { transform: translateX(50%) scaleY(1) } 100% { transform: translateX(50%) scaleY(1.3) } }
@keyframes rfw-general { 0% { transform: scale(1.2) rotate(0) } 50% { transform: scale(1.25) rotate(-2deg) } 100% { transform: scale(1.2) rotate(0) } }
@keyframes rfw-shadow { 0% { opacity: .5 } 100% { opacity: .8 } }

/* diplomacy-intrigue-system – calm dim desk with scroll, quill, inkwell, candle, seal, letter */
.scn-diplomacy-intrigue-system {
  background: linear-gradient(180deg, #1e1610 0%, #2a1e14 40%, #1a120a 70%, #0f0a05 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-diplomacy-intrigue-system .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: dis-desk 18s ease-in-out infinite alternate;
}
.scn-diplomacy-intrigue-system .map-scroll {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(135deg, #d4c4a8 0%, #b4a484 50%, #8a7a5a 100%);
  border-radius: 0 0 20px 20px; transform: rotate(3deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: dis-scroll 14s ease-in-out infinite;
}
.scn-diplomacy-intrigue-system .inkwell {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 22px;
  background: radial-gradient(ellipse at 50% 100%, #2a1e12 0%, #0f0a05 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 2px 4px rgba(0,0,0,.6);
  animation: dis-inkwell 12s ease-in-out infinite;
}
.scn-diplomacy-intrigue-system .quill {
  position: absolute; bottom: 50%; left: 58%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #c4b89a 0%, #a09074 50%, #7a6a4a 100%);
  border-radius: 40% 10% 10% 40%; transform: rotate(30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: dis-quill 5s ease-in-out infinite alternate;
}
.scn-diplomacy-intrigue-system .candle {
  position: absolute; bottom: 66%; left: 42%; width: 14px; height: 45px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b48e 40%, #8a7a5a 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: inset 0 2px 6px rgba(0,0,0,.3);
  animation: dis-candle 8s ease-in-out infinite;
}
.scn-diplomacy-intrigue-system .candle-glow {
  position: absolute; bottom: 62%; left: 42%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 80%, rgba(200,140,60,.15) 0%, transparent 60%);
  animation: dis-glow 4s ease-in-out infinite alternate;
}
.scn-diplomacy-intrigue-system .seal {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #a03020 0%, #5e1a1d 100%);
  border-radius: 50%; transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dis-seal 10s ease-in-out infinite;
}
.scn-diplomacy-intrigue-system .letter {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #e0d4c0 0%, #c4b69e 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: dis-letter 10s ease-in-out infinite;
}
@keyframes dis-desk { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes dis-scroll { 0% { transform: rotate(3deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(3deg) } }
@keyframes dis-inkwell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dis-quill { 0% { transform: rotate(30deg) } 100% { transform: rotate(35deg) } }
@keyframes dis-candle { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes dis-glow { 0% { opacity: .6; transform: scale(1) } 100% { opacity: .8; transform: scale(1.05) } }
@keyframes dis-seal { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } }
@keyframes dis-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* plundering-barbarity-rejected – calm dim interior, hand rejecting, broken sword, chain, torch */
.scn-plundering-barbarity-rejected {
  background: linear-gradient(180deg, #1e1410 0%, #2a1e16 30%, #1a120a 70%, #0f0a05 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-plundering-barbarity-rejected .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 12px; animation: pbr-wall 20s ease-in-out infinite alternate;
}
.scn-plundering-barbarity-rejected .torch {
  position: absolute; bottom: 60%; left: 15%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10px; transform: rotate(-10deg);
  box-shadow: 0 0 20px 4px rgba(200,120,40,.4); animation: pbr-torch 4s ease-in-out infinite;
}
.scn-plundering-barbarity-rejected .torch-glow {
  position: absolute; bottom: 55%; left: 15%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,120,40,.15) 0%, transparent 60%);
  animation: pbr-glow 4s ease-in-out infinite alternate;
}
.scn-plundering-barbarity-rejected .hand {
  position: absolute; bottom: 30%; left: 60%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #c4a07a 0%, #8a6a4a 50%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(20deg); animation: pbr-hand 6s ease-in-out infinite;
}
.scn-plundering-barbarity-rejected .sword-broken {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #6a5a4a 0%, #a09074 30%, #6a5a4a 60%, #2a221a 100%);
  border-radius: 20px; transform: rotate(45deg) scaleX(.6);
  box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: pbr-sword 8s ease-in-out infinite;
}
.scn-plundering-barbarity-rejected .chain {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 20px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  border-radius: 4px; transform: rotate(-30deg);
  animation: pbr-chain 10s ease-in-out infinite;
}
.scn-plundering-barbarity-rejected .chain-end {
  position: absolute; bottom: 30%; left: 43%; width: 10px; height: 10px;
  background: radial-gradient(circle at 50% 50%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pbr-chain-end 10s ease-in-out infinite;
}
@keyframes pbr-wall { 0% { opacity: .85 } 100% { opacity: .95 } }
@keyframes pbr-torch { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } }
@keyframes pbr-glow { 0% { opacity: .6; transform: scale(1) } 100% { opacity: .9; transform: scale(1.1) } }
@keyframes pbr-hand { 0% { transform: rotate(20deg) translateY(0) } 33% { transform: rotate(15deg) translateY(-8px) } 66% { transform: rotate(25deg) translateY(-4px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes pbr-sword { 0% { transform: rotate(45deg) scaleX(.6) } 50% { transform: rotate(50deg) scaleX(.55) translateY(-5px) } 100% { transform: rotate(45deg) scaleX(.6) } }
@keyframes pbr-chain { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-30deg) } }
@keyframes pbr-chain-end { 0% { transform: translate(0,0) } 50% { transform: translate(-5px, 3px) } 100% { transform: translate(0,0) } }

/* attack-on-mountain */
.scn-attack-on-mountain {
  background:
    linear-gradient(180deg, #f4e8c8 0%, #e8d8b0 40%, #d4c09a 100%),
    radial-gradient(ellipse at 30% 20%, #fffbe0 0%, transparent 60%);
}
.scn-attack-on-mountain .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%);
  border-bottom: 4px solid #b8a880;
}
.scn-attack-on-mountain .window {
  position: absolute; top: 10%; left: 55%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #b0d0f0 0%, #80a8d0 100%);
  border: 6px solid #c8b898; border-radius: 10% / 8%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: am1-sky 14s ease-in-out infinite alternate;
}
.scn-attack-on-mountain .mountains {
  position: absolute; bottom: 45%; left: 18%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 35% 20%, 50% 45%, 70% 10%, 85% 30%, 100% 50%, 100% 100%);
  animation: am1-mountains 20s ease-in-out infinite alternate;
}
.scn-attack-on-mountain .desk {
  position: absolute; bottom: 5%; left: 8%; width: 84%; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.2);
}
.scn-attack-on-mountain .map {
  position: absolute; bottom: 20%; left: 20%; width: 45%; height: 28%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d8c8a0 100%);
  border: 2px solid #b09878;
  border-radius: 2%;
  transform: perspective(500px) rotateX(5deg);
  animation: am1-map 8s ease-in-out infinite alternate;
}
.scn-attack-on-mountain .figure {
  position: absolute; bottom: 18%; left: 12%; width: 10%; height: 30%;
  background: radial-gradient(ellipse 70% 50% at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: am1-figure 6s ease-in-out infinite;
}
.scn-attack-on-mountain .lamp {
  position: absolute; bottom: 36%; left: 70%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px #f0c880, 0 0 40px 20px rgba(240,200,128,0.3);
  animation: am1-lamp 4s ease-in-out infinite alternate;
}
.scn-attack-on-mountain .curtain {
  position: absolute; top: 0; left: 0; width: 15%; height: 60%;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 0 20% 20% 0;
  animation: am1-curtain 12s ease-in-out infinite;
}
@keyframes am1-sky {
  0% { opacity: 0.7; background: linear-gradient(180deg, #b0d0f0, #80a8d0); }
  50% { opacity: 1; background: linear-gradient(180deg, #c0e0ff, #90b8e0); }
  100% { opacity: 0.8; background: linear-gradient(180deg, #a0c0e0, #70a0c0); }
}
@keyframes am1-mountains {
  0% { clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 35% 20%, 50% 45%, 70% 10%, 85% 30%, 100% 50%, 100% 100%); }
  50% { clip-path: polygon(0% 100%, 10% 42%, 20% 58%, 35% 22%, 50% 43%, 70% 12%, 85% 28%, 100% 52%, 100% 100%); }
  100% { clip-path: polygon(0% 100%, 10% 38%, 20% 62%, 35% 18%, 50% 47%, 70% 8%, 85% 32%, 100% 48%, 100% 100%); }
}
@keyframes am1-map {
  0% { transform: perspective(500px) rotateX(5deg) rotateY(0deg) translateY(0); }
  50% { transform: perspective(500px) rotateX(5deg) rotateY(2deg) translateY(-2px); }
  100% { transform: perspective(500px) rotateX(5deg) rotateY(0deg) translateY(0); }
}
@keyframes am1-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes am1-lamp {
  0% { box-shadow: 0 0 20px 10px #f0c880, 0 0 40px 20px rgba(240,200,128,0.3); }
  50% { box-shadow: 0 0 30px 15px #ffd890, 0 0 60px 30px rgba(255,216,144,0.5); }
  100% { box-shadow: 0 0 20px 10px #f0c880, 0 0 40px 20px rgba(240,200,128,0.3); }
}
@keyframes am1-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8%); }
  100% { transform: translateX(0); }
}

/* attack-mountain-advantages */
.scn-attack-mountain-advantages {
  background:
    linear-gradient(180deg, #f0e4cc 0%, #e0d0b8 50%, #c8b898 100%),
    radial-gradient(ellipse at 20% 40%, #fff8e0 0%, transparent 70%);
}
.scn-attack-mountain-advantages .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  opacity: 0.5;
}
.scn-attack-mountain-advantages .table {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #b8a080 0%, #908060 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}
.scn-attack-mountain-advantages .model-mountain {
  position: absolute; bottom: 32%; left: 30%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  clip-path: polygon(0% 100%, 20% 30%, 40% 50%, 60% 10%, 80% 40%, 100% 60%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: am2-mountain 16s ease-in-out infinite alternate;
}
.scn-attack-mountain-advantages .flag-red {
  position: absolute; bottom: 60%; left: 38%; width: 4%; height: 12%;
  background: #b84a2a; /* desaturated red */
  clip-path: polygon(0% 0%, 100% 30%, 100% 60%, 0% 90%);
  animation: am2-flag 6s ease-in-out infinite;
}
.scn-attack-mountain-advantages .flag-blue {
  position: absolute; bottom: 62%; left: 48%; width: 4%; height: 12%;
  background: #3a6a8a;
  clip-path: polygon(0% 0%, 100% 30%, 100% 60%, 0% 90%);
  animation: am2-flag 6s ease-in-out infinite reverse;
}
.scn-attack-mountain-advantages .hand {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 20%;
  background: radial-gradient(ellipse 60% 30% at 50% 70%, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: am2-hand 7s ease-in-out infinite alternate;
}
.scn-attack-mountain-advantages .compass {
  position: absolute; bottom: 22%; left: 18%; width: 14%; height: 14%;
  background: radial-gradient(circle, #e0d0b8 30%, #c8b898 50%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: am2-compass 20s linear infinite;
}
.scn-attack-mountain-advantages .shadow {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.08));
}
@keyframes am2-mountain {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes am2-flag {
  0% { clip-path: polygon(0% 0%, 100% 30%, 100% 60%, 0% 90%); }
  50% { clip-path: polygon(0% 0%, 100% 35%, 100% 55%, 0% 85%); }
  100% { clip-path: polygon(0% 0%, 100% 30%, 100% 60%, 0% 90%); }
}
@keyframes am2-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes am2-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* attack-mountain-advanced-guard */
.scn-attack-mountain-advanced-guard {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #e0d4b8 40%, #c8b898 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-attack-mountain-advanced-guard .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #dacab0 0%, #c8b8a0 100%);
}
.scn-attack-mountain-advanced-guard .window-out {
  position: absolute; top: 10%; right: 12%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #a0c4e0 0%, #78a0c0 100%);
  border: 6px solid #b8a888; border-radius: 8% / 6%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.2);
  animation: am3-sky 12s ease-in-out infinite alternate;
}
.scn-attack-mountain-advanced-guard .outpost {
  position: absolute; bottom: 42%; right: 20%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: am3-outpost 18s ease-in-out infinite alternate;
}
.scn-attack-mountain-advanced-guard .telescope {
  position: absolute; bottom: 30%; left: 60%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 30% / 50%;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: am3-telescope 8s ease-in-out infinite;
}
.scn-attack-mountain-advanced-guard .figure-profile {
  position: absolute; bottom: 18%; left: 22%; width: 12%; height: 35%;
  background: radial-gradient(ellipse 70% 50% at 50% 40%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  animation: am3-figure 7s ease-in-out infinite alternate;
}
.scn-attack-mountain-advanced-guard .book {
  position: absolute; bottom: 10%; left: 40%; width: 18%; height: 12%;
  background: linear-gradient(135deg, #d0b890 0%, #b09870 100%);
  border-radius: 4%;
  transform: perspective(400px) rotateX(10deg);
  animation: am3-book 10s ease-in-out infinite;
}
.scn-attack-mountain-advanced-guard .candle {
  position: absolute; bottom: 40%; left: 10%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #f0c880, 0 0 40px 12px rgba(240,200,128,0.3);
  animation: am3-candle 4s ease-in-out infinite alternate;
}
@keyframes am3-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes am3-outpost {
  0% { clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); }
  50% { clip-path: polygon(32% 0%, 68% 0%, 98% 100%, 2% 100%); }
  100% { clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); }
}
@keyframes am3-telescope {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes am3-figure {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes am3-book {
  0% { transform: perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(8deg) translateY(-1px); }
  100% { transform: perspective(400px) rotateX(10deg) translateY(0); }
}
@keyframes am3-candle {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #f0c880, 0 0 40px 12px rgba(240,200,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd890, 0 0 60px 20px rgba(255,216,144,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 20px 6px #f0c880, 0 0 40px 12px rgba(240,200,128,0.3); }
}

/* attack-mountain-tactical-measures */
.scn-attack-mountain-tactical-measures {
  background:
    linear-gradient(180deg, #f0e4cc 0%, #dcc8a8 50%, #c0a888 100%),
    radial-gradient(ellipse at 50% 80%, #fff8e8 0%, transparent 60%);
}
.scn-attack-mountain-tactical-measures .floor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a888 100%);
  background-size: 60px 60px;
  background-image: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.03) 30px, rgba(0,0,0,0.03) 60px);
}
.scn-attack-mountain-tactical-measures .paper {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 40%;
  background: linear-gradient(135deg, #f4e8d0 0%, #e0d0b8 100%);
  border: 2px solid #b09878;
  border-radius: 2%;
  transform: perspective(600px) rotateX(8deg) rotateY(-5deg);
  box-shadow: 0 8px 30px rgba(0,0,0,0.2);
  animation: am4-paper 10s ease-in-out infinite;
}
.scn-attack-mountain-tactical-measures .hand-point {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 24%;
  background: radial-gradient(ellipse 60% 30% at 50% 70%, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  transform-origin: bottom left;
  animation: am4-hand 5s ease-in-out infinite alternate;
}
.scn-attack-mountain-tactical-measures .compass-small {
  position: absolute; bottom: 34%; left: 22%; width: 10%; height: 10%;
  background: radial-gradient(circle, #e8d8c0 30%, #c8b898 50%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: am4-compass 15s linear infinite;
}
.scn-attack-mountain-tactical-measures .inkwell {
  position: absolute; bottom: 30%; right: 28%; width: 8%; height: 8%;
  background: radial-gradient(ellipse, #1a1a2a 30%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: am4-inkwell 8s ease-in-out infinite;
}
.scn-attack-mountain-tactical-measures .pencil {
  position: absolute; bottom: 36%; right: 34%; width: 10%; height: 4%;
  background: linear-gradient(90deg, #c8a070 30%, #e0c898 50%, #a08050 100%);
  border-radius: 20% / 50%;
  transform: rotate(20deg);
  animation: am4-pencil 6s ease-in-out infinite alternate;
}
.scn-attack-mountain-tactical-measures .map-contour {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 20%;
  background: repeating-linear-gradient(0deg, transparent, transparent 10px, rgba(80,60,40,0.1) 10px, rgba(80,60,40,0.1) 11px),
              repeating-linear-gradient(90deg, transparent, transparent 10px, rgba(80,60,40,0.1) 10px, rgba(80,60,40,0.1) 11px);
  border-radius: 2%;
  opacity: 0.6;
}
.scn-attack-mountain-tactical-measures .glow {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,248,224,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: am4-glow 5s ease-in-out infinite alternate;
}
@keyframes am4-paper {
  0% { transform: perspective(600px) rotateX(8deg) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(6deg) rotateY(-3deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) rotateY(-5deg) translateY(0); }
}
@keyframes am4-hand {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes am4-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes am4-inkwell {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes am4-pencil {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes am4-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-theory-difficulty-philosophical {
  background:
    radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #1c140e 100%);
}
.scn-theory-difficulty-philosophical .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1814 0%, #2a201a 100%);
  animation: th1-wall 14s ease-in-out infinite alternate;
}
.scn-theory-difficulty-philosophical .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3424 0%, #2e2016 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
  animation: th1-desk 8s ease-in-out infinite;
}
.scn-theory-difficulty-philosophical .book {
  position: absolute; bottom: 22%; left: 38%; width: 90px; height: 60px;
  background: linear-gradient(135deg, #5c3822 0%, #3a2214 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-3deg); animation: th1-book 12s ease-in-out infinite;
}
.scn-theory-difficulty-philosophical .candle {
  position: absolute; bottom: 24%; left: 52%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a878 40%, #8a6a4a 100%);
  border-radius: 3px; transform-origin: bottom center;
  animation: th1-candle 5s ease-in-out infinite alternate;
}
.scn-theory-difficulty-philosophical .flame {
  position: absolute; bottom: 37%; left: 52.5%; width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffd680 0%, #f09040 50%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px #f0a030, 0 0 40px 16px rgba(240,160,48,.3);
  animation: th1-flame 3s ease-in-out infinite;
}
.scn-theory-difficulty-philosophical .shadow {
  position: absolute; bottom: 0; left: 38%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: th1-shadow 8s ease-in-out infinite alternate;
}
.scn-theory-difficulty-philosophical .shelf {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1c14 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: th1-shelf 20s ease-in-out infinite;
}
@keyframes th1-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes th1-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes th1-book { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes th1-candle { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(1px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes th1-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity: .9; } 50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; } 100% { transform: scaleY(1) rotate(-1deg); opacity: .95; } }
@keyframes th1-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.05); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes th1-shelf { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }

.scn-war-instrument-policy {
  background:
    radial-gradient(ellipse at 40% 35%, #3a2e22 0%, transparent 50%),
    linear-gradient(180deg, #14100c 0%, #1c1612 40%, #120e0a 100%);
}
.scn-war-instrument-policy .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1612 0%, #241e18 100%);
  animation: war2-wall 16s ease-in-out infinite alternate;
}
.scn-war-instrument-policy .desk {
  position: absolute; bottom: 0; left: 12%; right: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e14 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.7);
  animation: war2-desk 10s ease-in-out infinite;
}
.scn-war-instrument-policy .figure {
  position: absolute; bottom: 30%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: war2-figure 6s ease-in-out infinite;
}
.scn-war-instrument-policy .paper {
  position: absolute; bottom: 18%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #e8dccc 0%, #c8bca8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(2deg); animation: war2-paper 14s ease-in-out infinite;
}
.scn-war-instrument-policy .inkwell {
  position: absolute; bottom: 24%; left: 48%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: war2-inkwell 8s ease-in-out infinite alternate;
}
.scn-war-instrument-policy .lamp {
  position: absolute; bottom: 34%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%; transform-origin: bottom center;
  animation: war2-lamp 7s ease-in-out infinite alternate;
}
.scn-war-instrument-policy .glow {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(230,200,150,.3) 0%, transparent 70%);
  border-radius: 50%; pointer-events: none;
  animation: war2-glow 5s ease-in-out infinite;
}
@keyframes war2-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes war2-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.005); } 100% { transform: translateY(0) scale(1); } }
@keyframes war2-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes war2-paper { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes war2-inkwell { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes war2-lamp { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes war2-glow { 0% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.2); } 100% { opacity: .5; transform: scale(1.05); } }

.scn-political-intercourse-continues {
  background:
    radial-gradient(ellipse at 30% 40%, #2a2e3a 0%, transparent 60%),
    linear-gradient(180deg, #14181e 0%, #1c2028 50%, #0e1218 100%);
}
.scn-political-intercourse-continues .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #181c22 0%, #1e222a 100%);
  animation: pol3-wall 18s ease-in-out infinite alternate;
}
.scn-political-intercourse-continues .window-frame {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: pol3-frame 12s ease-in-out infinite;
}
.scn-political-intercourse-continues .window-glass {
  position: absolute; top: 10%; left: 32%; width: 36%; height: 46%;
  background: linear-gradient(180deg, rgba(40,50,70,.4) 0%, rgba(20,30,50,.2) 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(255,255,255,.05);
  animation: pol3-glass 20s ease-in-out infinite;
}
.scn-political-intercourse-continues .curtain-left {
  position: absolute; top: 8%; left: 24%; width: 8%; height: 55%;
  background: linear-gradient(135deg, #4a3e3a 0%, #2a221e 100%);
  border-radius: 0 20% 20% 0; transform-origin: top left;
  animation: pol3-curtain 25s ease-in-out infinite alternate;
}
.scn-political-intercourse-continues .curtain-right {
  position: absolute; top: 8%; right: 24%; width: 8%; height: 55%;
  background: linear-gradient(225deg, #4a3e3a 0%, #2a221e 100%);
  border-radius: 20% 0 0 20%; transform-origin: top right;
  animation: pol3-curtain 25s ease-in-out infinite alternate-reverse;
}
.scn-political-intercourse-continues .chair {
  position: absolute; bottom: 12%; left: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1612 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pol3-chair 10s ease-in-out infinite;
}
.scn-political-intercourse-continues .table {
  position: absolute; bottom: 8%; left: 50%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #4a3e3a 0%, #2e221e 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: translateX(-50%); animation: pol3-table 14s ease-in-out infinite;
}
.scn-political-intercourse-continues .vase {
  position: absolute; bottom: 20%; left: 52%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pol3-vase 8s ease-in-out infinite alternate;
}
@keyframes pol3-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes pol3-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pol3-glass { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .35; } }
@keyframes pol3-curtain { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes pol3-chair { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pol3-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pol3-vase { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.02) rotate(2deg); } 100% { transform: scaleY(1) rotate(-2deg); } }

.scn-war-grammar-not-logic {
  background:
    radial-gradient(ellipse at 60% 30%, #2a2e22 0%, transparent 50%),
    linear-gradient(180deg, #0e0c0a 0%, #1a1814 40%, #0e0c08 100%);
}
.scn-war-grammar-not-logic .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #141210 0%, #1a1816 100%);
  animation: gra4-wall 20s ease-in-out infinite alternate;
}
.scn-war-grammar-not-logic .shelves {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 15%;
  background: repeating-linear-gradient(0deg, #2a221e 0px, #2a221e 10px, #1c1612 10px, #1c1612 12px);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: gra4-shelves 30s ease-in-out infinite;
}
.scn-war-grammar-not-logic .book-a {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4);
  transform: rotate(-5deg); animation: gra4-book 10s ease-in-out infinite;
}
.scn-war-grammar-not-logic .book-b {
  position: absolute; top: 18%; left: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 2px; box-shadow: -2px 0 4px rgba(0,0,0,.4);
  transform: rotate(3deg); animation: gra4-book 12s ease-in-out infinite -2s;
}
.scn-war-grammar-not-logic .book-c {
  position: absolute; top: 12%; left: 42%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.4);
  transform: rotate(-2deg); animation: gra4-book 8s ease-in-out infinite -4s;
}
.scn-war-grammar-not-logic .ladder {
  position: absolute; bottom: 10%; left: 65%; width: 12px; height: 70%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(5deg); transform-origin: bottom center;
  animation: gra4-ladder 15s ease-in-out infinite alternate;
}
.scn-war-grammar-not-logic .beam {
  position: absolute; top: 2%; left: 30%; width: 200px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,120,.15) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px); pointer-events: none;
  animation: gra4-beam 25s ease-in-out infinite;
}
@keyframes gra4-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes gra4-shelves { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .65; } }
@keyframes gra4-book { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(-4deg) translateY(-1px); } 75% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gra4-ladder { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes gra4-beam { 0% { opacity: .2; transform: translateX(0) scaleY(1); } 50% { opacity: .4; transform: translateX(20px) scaleY(1.1); } 100% { opacity: .25; transform: translateX(0) scaleY(1); } }

/* reflections-from-history (calm, dim interior) */
.scn-reflections-from-history {
  background: linear-gradient(135deg, #2b1e16 0%, #4a3528 50%, #1a120d 100%),
              radial-gradient(ellipse at 30% 70%, #3d2b20 0%, transparent 70%);
}
.scn-reflections-from-history .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f18 0%, #1a120d 100%); }
.scn-reflections-from-history .shelf { position:absolute; top:35%; left:10%; right:10%; height:6px; background: #5a3f2c; border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-reflections-from-history .desk { position:absolute; bottom:20%; left:50%; width:60%; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #6b4d32 0%, #4a3528 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.6); }
.scn-reflections-from-history .book { position:absolute; bottom:22%; left:42%; width:20px; height:28px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3f2c 100%); border-radius:2px; transform:rotate(-10deg); box-shadow:2px 2px 4px rgba(0,0,0,.5); animation: rh-book 8s ease-in-out infinite; }
.scn-reflections-from-history .candle { position:absolute; bottom:27%; left:35%; width:8px; height:24px; background: linear-gradient(180deg, #d4b89a 0%, #a08060 100%); border-radius:2px; }
.scn-reflections-from-history .flame { position:absolute; bottom:51%; left:35.5%; width:6px; height:12px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #ff8844 50%, #cc5511 100%); border-radius:50% 50% 30% 30%; box-shadow:0 0 12px 4px #ff8844, 0 0 24px 8px rgba(255,136,68,.4); animation: rh-flame 2s ease-in-out infinite alternate; }
.scn-reflections-from-history .figure { position:absolute; bottom:22%; left:55%; width:20px; height:40px; background: linear-gradient(135deg, #1a120d 0%, #0d0906 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rh-figure 6s ease-in-out infinite; }
.scn-reflections-from-history .curtain { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #2b1e16 0%, #3d2b20 50%, #1a120d 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); border-left:2px solid #4a3528; animation: rh-curtain 12s ease-in-out infinite alternate; }
@keyframes rh-book { 0%,100% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-1px); } }
@keyframes rh-flame { 0% { transform:scaleY(1); opacity:0.8; } 50% { transform:scaleY(1.15) scaleX(0.9); opacity:1; } 100% { transform:scaleY(0.95); opacity:0.7; } }
@keyframes rh-figure { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(-2deg) translateY(-1px); } }
@keyframes rh-curtain { 0% { transform:scaleX(0.95); } 100% { transform:scaleX(1.05); } }

/* policy-blamed-error (tense, dim interior) */
.scn-policy-blamed-error {
  background: linear-gradient(180deg, #1e1612 0%, #2b2018 40%, #3d2b20 70%, #1a120d 100%),
              radial-gradient(ellipse at 50% 100%, #2b2018 0%, transparent 60%);
}
.scn-policy-blamed-error .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0b09 0%, #1a120d 100%); opacity:0.6; }
.scn-policy-blamed-error .table { position:absolute; bottom:15%; left:50%; width:70%; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3f2c 0%, #4a3528 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.7); }
.scn-policy-blamed-error .map { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #c4a882 0%, #a08060 100%); border-radius:2px; transform:rotate(5deg); box-shadow:2px 2px 6px rgba(0,0,0,.5); animation: pbe-map 3s ease-in-out infinite; }
.scn-policy-blamed-error .lamp { position:absolute; bottom:45%; left:50%; width:6px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3f2c 100%); border-radius:2px; animation: pbe-lamp-sway 4s ease-in-out infinite; }
.scn-policy-blamed-error .light { position:absolute; bottom:35%; left:48.5%; width:20px; height:20px; background: radial-gradient(circle, #ffcc66 0%, #ff8800 40%, transparent 70%); border-radius:50%; animation: pbe-light 0.8s ease-in-out infinite alternate; }
.scn-policy-blamed-error .figure { position:absolute; bottom:18%; left:60%; width:18px; height:44px; background: linear-gradient(180deg, #1a120d 0%, #0a0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pbe-figure 3s ease-in-out infinite; }
.scn-policy-blamed-error .chain { position:absolute; top:35%; left:50%; width:2px; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); transform:translateX(-50%); animation: pbe-chain 4s ease-in-out infinite; }
@keyframes pbe-map { 0%,100% { transform:rotate(5deg) translateY(0); } 25% { transform:rotate(8deg) translateY(-1px); } 75% { transform:rotate(2deg) translateY(1px); } }
@keyframes pbe-lamp-sway { 0%,100% { transform:rotate(2deg); } 50% { transform:rotate(-2deg); } }
@keyframes pbe-light { 0% { opacity:0.7; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes pbe-figure { 0%,100% { transform:rotate(0deg) translateX(0); } 30% { transform:rotate(-3deg) translateX(-2px); } 70% { transform:rotate(3deg) translateX(2px); } }
@keyframes pbe-chain { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(3deg); } }

/* surprise-war-or-policy (tense, dim interior) */
.scn-surprise-war-or-policy {
  background: linear-gradient(180deg, #1c1410 0%, #2a1e18 50%, #3a2a20 100%),
              radial-gradient(ellipse at 80% 50%, #3a2a20 0%, transparent 70%);
}
.scn-surprise-war-or-policy .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0b09 0%, #1a120d 100%); opacity:0.7; }
.scn-surprise-war-or-policy .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:4px; border:3px solid #4a3a2a; box-shadow:inset 0 0 20px rgba(0,0,0,.6); overflow:hidden; }
.scn-surprise-war-or-policy .rain { position:absolute; top:10%; right:10%; width:80px; height:100px; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.1) 0px, rgba(255,255,255,0.1) 2px, transparent 2px, transparent 8px); animation: swp-rain 1s linear infinite; }
.scn-surprise-war-or-policy .desk { position:absolute; bottom:20%; left:40%; width:60%; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3f2c 0%, #3a2a1c 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.6); }
.scn-surprise-war-or-policy .lamp { position:absolute; bottom:40%; left:55%; width:6px; height:28px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3f2c 100%); border-radius:2px; transform-origin:bottom center; animation: swp-lamp 5s ease-in-out infinite; }
.scn-surprise-war-or-policy .figure1 { position:absolute; bottom:18%; left:45%; width:18px; height:46px; background: linear-gradient(180deg, #1a120d 0%, #0a0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: swp-figure1 4s ease-in-out infinite; }
.scn-surprise-war-or-policy .figure2 { position:absolute; bottom:18%; left:55%; width:18px; height:44px; background: linear-gradient(180deg, #1a120d 0%, #0a0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: swp-figure2 4s ease-in-out infinite 1s; }
.scn-surprise-war-or-policy .glow { position:absolute; bottom:38%; left:54.5%; width:16px; height:16px; background: radial-gradient(circle, #ffcc66 0%, #ff8800 50%, transparent 70%); border-radius:50%; animation: swp-glow 1.5s ease-in-out infinite alternate; }
@keyframes swp-rain { 0% { transform:translateY(0); } 100% { transform:translateY(30px); } }
@keyframes swp-lamp { 0%,100% { transform:rotate(1deg); } 50% { transform:rotate(-1deg); } }
@keyframes swp-figure1 { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(-2deg); } 75% { transform:translateX(-2px) rotate(2deg); } }
@keyframes swp-figure2 { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(2deg); } 75% { transform:translateX(2px) rotate(-2deg); } }
@keyframes swp-glow { 0% { opacity:0.6; transform:scale(0.9); } 100% { opacity:1; transform:scale(1.1); } }

/* military-scheme-insufficient (tense, dim interior) */
.scn-military-scheme-insufficient {
  background: linear-gradient(180deg, #1a120d 0%, #2a1e18 50%, #1c1410 100%),
              radial-gradient(ellipse at 30% 60%, #2a1e18 0%, transparent 70%);
}
.scn-military-scheme-insufficient .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0705 0%, #1a120d 100%); opacity:0.8; }
.scn-military-scheme-insufficient .table { position:absolute; bottom:12%; left:50%; width:80%; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3528 0%, #3a2a1c 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.7); }
.scn-military-scheme-insufficient .map { position:absolute; bottom:22%; left:30%; width:50px; height:35px; background: linear-gradient(135deg, #b89878 0%, #9a7a5a 100%); border-radius:2px; transform:rotate(-4deg); box-shadow:2px 2px 6px rgba(0,0,0,.5); animation: msi-map 4s ease-in-out infinite; }
.scn-military-scheme-insufficient .piece1 { position:absolute; bottom:28%; left:42%; width:8px; height:14px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3528 100%); border-radius:2px; transform:rotate(10deg); animation: msi-piece1 3s ease-in-out infinite; }
.scn-military-scheme-insufficient .piece2 { position:absolute; bottom:27%; left:52%; width:8px; height:14px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3528 100%); border-radius:2px; transform:rotate(-5deg); animation: msi-piece2 3.5s ease-in-out infinite; }
.scn-military-scheme-insufficient .lamp { position:absolute; bottom:45%; left:40%; width:6px; height:32px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3f2c 100%); border-radius:2px; transform-origin:bottom center; animation: msi-lamp 4.5s ease-in-out infinite; }
.scn-military-scheme-insufficient .figure { position:absolute; bottom:16%; left:50%; width:20px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #1a120d 0%, #0a0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: msi-figure 5s ease-in-out infinite; }
.scn-military-scheme-insufficient .shadow { position:absolute; bottom:10%; left:30%; width:40%; height:8px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%); animation: msi-shadow 5s ease-in-out infinite; }
@keyframes msi-map { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-6deg) translateY(-1px); } }
@keyframes msi-piece1 { 0%,100% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(12deg) translateY(-2px); } }
@keyframes msi-piece2 { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-7deg) translateY(-1px); } }
@keyframes msi-lamp { 0%,100% { transform:rotate(1deg); } 50% { transform:rotate(-1.5deg); } }
@keyframes msi-figure { 0%,100% { transform:translateX(-50%) rotate(0deg); } 30% { transform:translateX(-50%) translateX(-2px) rotate(-2deg); } 70% { transform:translateX(-50%) translateX(2px) rotate(2deg); } }
@keyframes msi-shadow { 0%,100% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.2); } }

.scn-extreme-exertion-wrecked {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2c241c 40%, #3a2e22 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-extreme-exertion-wrecked .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1410 0%, #2a2018 50%, #1a1410 100%);
  animation: eew-wall 20s ease-in-out infinite alternate;
}
.scn-extreme-exertion-wrecked .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: eew-desk 12s ease-in-out infinite alternate;
}
.scn-extreme-exertion-wrecked .figure {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: eew-figure 3s ease-in-out infinite;
}
.scn-extreme-exertion-wrecked .papers {
  position: absolute;
  background: #c8b088;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
}
.scn-extreme-exertion-wrecked .papers-1 {
  bottom: 20%; left: 25%; width: 35%; height: 8%; 
  transform: rotate(-8deg);
  animation: eew-paper1 8s ease-in-out infinite;
}
.scn-extreme-exertion-wrecked .papers-2 {
  bottom: 22%; left: 50%; width: 30%; height: 6%; 
  transform: rotate(12deg);
  animation: eew-paper2 10s ease-in-out infinite;
}
.scn-extreme-exertion-wrecked .candle {
  position: absolute; bottom: 22%; left: 55%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b088 50%, #8a6e54 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: eew-candle 4s ease-in-out infinite;
}
.scn-extreme-exertion-wrecked .flame {
  position: absolute; bottom: 36%; left: 55.5%; width: 2%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, #ff6000 70%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 12px 6px #ffa040, 0 0 24px 12px rgba(255,160,64,.4);
  animation: eew-flame 0.8s ease-in-out infinite alternate;
}
.scn-extreme-exertion-wrecked .glow {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,160,64,.15) 0%, transparent 70%);
  animation: eew-glow 4s ease-in-out infinite alternate;
}
@keyframes eew-wall {
  0% { opacity: .6 }
  50% { opacity: .8 }
  100% { opacity: .7 }
}
@keyframes eew-desk {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes eew-figure {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1) }
  25% { transform: translateY(-4px) rotate(0deg) scaleY(1.02) }
  50% { transform: translateY(-2px) rotate(2deg) scaleY(0.98) }
  75% { transform: translateY(-5px) rotate(0deg) scaleY(1.01) }
  100% { transform: translateY(0) rotate(-2deg) scaleY(1) }
}
@keyframes eew-paper1 {
  0% { transform: rotate(-8deg) translateX(0) }
  50% { transform: rotate(-5deg) translateX(3px) }
  100% { transform: rotate(-8deg) translateX(0) }
}
@keyframes eew-paper2 {
  0% { transform: rotate(12deg) translateX(0) }
  50% { transform: rotate(15deg) translateX(-2px) }
  100% { transform: rotate(12deg) translateX(0) }
}
@keyframes eew-candle {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.05) }
  100% { transform: scaleY(1) }
}
@keyframes eew-flame {
  0% { transform: scale(1) rotate(-5deg); opacity: .9 }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1 }
  100% { transform: scale(0.95) rotate(-3deg); opacity: .85 }
}
@keyframes eew-glow {
  0% { opacity: .3; transform: scale(1) }
  50% { opacity: .6; transform: scale(1.1) }
  100% { opacity: .4; transform: scale(0.95) }
}

.scn-art-discriminating-judgment {
  background:
    linear-gradient(180deg, #2a221c 0%, #3a2e26 40%, #4a3c32 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a3e 0%, transparent 50%);
}
.scn-art-discriminating-judgment .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1814 0%, #2e2620 50%, #1e1814 100%);
  animation: adj-wall 30s ease-in-out infinite alternate;
}
.scn-art-discriminating-judgment .window {
  position: absolute; top: 8%; left: 18%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 10px rgba(0,0,50,.3);
  animation: adj-window 30s ease-in-out infinite alternate;
}
.scn-art-discriminating-judgment .chair {
  position: absolute; bottom: 12%; left: 45%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: rotate(-5deg);
  animation: adj-chair 20s ease-in-out infinite alternate;
}
.scn-art-discriminating-judgment .figure {
  position: absolute; bottom: 18%; left: 47%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #1e1814 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: adj-figure 8s ease-in-out infinite;
}
.scn-art-discriminating-judgment .book {
  position: absolute; 
  background: linear-gradient(135deg, #8a6e54 0%, #4a3020 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
}
.scn-art-discriminating-judgment .book-1 {
  bottom: 10%; left: 22%; width: 20%; height: 10%; 
  transform: rotate(10deg);
  animation: adj-book1 25s ease-in-out infinite;
}
.scn-art-discriminating-judgment .book-2 {
  bottom: 8%; left: 35%; width: 15%; height: 12%; 
  transform: rotate(-12deg);
  animation: adj-book2 30s ease-in-out infinite;
}
.scn-art-discriminating-judgment .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #c8b088 0%, #6a5040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: adj-lamp 15s ease-in-out infinite alternate;
}
.scn-art-discriminating-judgment .lamp-glow {
  position: absolute; bottom: 28%; left: 28%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.2) 0%, transparent 70%);
  animation: adj-lampglow 5s ease-in-out infinite alternate;
}
@keyframes adj-wall {
  0% { opacity: .7 }
  50% { opacity: .85 }
  100% { opacity: .75 }
}
@keyframes adj-window {
  0% { opacity: .3; transform: scale(1) }
  50% { opacity: .6; transform: scale(1.02) }
  100% { opacity: .4; transform: scale(0.98) }
}
@keyframes adj-chair {
  0% { transform: rotate(-5deg) translateY(0) }
  50% { transform: rotate(-3deg) translateY(-2px) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes adj-figure {
  0% { transform: translateY(0) rotate(0) scaleY(1) }
  25% { transform: translateY(-2px) rotate(-1deg) scaleY(1.01) }
  50% { transform: translateY(0) rotate(1deg) scaleY(0.99) }
  75% { transform: translateY(-1px) rotate(0) scaleY(1.01) }
  100% { transform: translateY(0) rotate(0) scaleY(1) }
}
@keyframes adj-book1 {
  0% { transform: rotate(10deg) translateX(0) }
  50% { transform: rotate(12deg) translateX(2px) }
  100% { transform: rotate(10deg) translateX(0) }
}
@keyframes adj-book2 {
  0% { transform: rotate(-12deg) translateX(0) }
  50% { transform: rotate(-10deg) translateX(-1px) }
  100% { transform: rotate(-12deg) translateX(0) }
}
@keyframes adj-lamp {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.03) }
  100% { transform: scaleY(1) }
}
@keyframes adj-lampglow {
  0% { opacity: .2; transform: scale(1) }
  50% { opacity: .4; transform: scale(1.1) }
  100% { opacity: .25; transform: scale(0.95) }
}

.scn-scale-means-consideration {
  background:
    linear-gradient(180deg, #1e1a14 0%, #2c241e 40%, #3a3028 100%),
    radial-gradient(ellipse at 50% 100%, #4a3e34 0%, transparent 60%);
}
.scn-scale-means-consideration .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%);
  border-radius: 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: smc-floor 40s ease-in-out infinite alternate;
}
.scn-scale-means-consideration .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 18px rgba(0,0,0,.5);
  animation: smc-table 30s ease-in-out infinite alternate;
}
.scn-scale-means-consideration .map {
  position: absolute; background: #b8a088; border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,.4);
}
.scn-scale-means-consideration .map-1 {
  bottom: 14%; left: 15%; width: 35%; height: 18%;
  transform: rotate(5deg);
  animation: smc-map1 20s ease-in-out infinite;
}
.scn-scale-means-consideration .map-2 {
  bottom: 12%; left: 50%; width: 30%; height: 15%;
  transform: rotate(-8deg);
  animation: smc-map2 25s ease-in-out infinite;
}
.scn-scale-means-consideration .scale {
  position: absolute; bottom: 16%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #8a7256 0%, #4a3828 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: smc-scale 18s ease-in-out infinite alternate;
}
.scn-scale-means-consideration .weight {
  position: absolute; bottom: 18%;
  background: radial-gradient(circle, #5a5040 0%, #2a2218 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,.6);
}
.scn-scale-means-consideration .weight-1 {
  left: 28%; width: 6%; height: 10%;
  animation: smc-weight1 12s ease-in-out infinite;
}
.scn-scale-means-consideration .weight-2 {
  left: 55%; width: 8%; height: 12%;
  animation: smc-weight2 14s ease-in-out infinite;
}
.scn-scale-means-consideration .figure {
  position: absolute; bottom: 15%; left: 55%; width: 18%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: smc-figure 10s ease-in-out infinite;
}
.scn-scale-means-consideration .shadow {
  position: absolute; bottom: 10%; left: 50%; width: 25%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: smc-shadow 15s ease-in-out infinite;
}
@keyframes smc-floor {
  0% { opacity: .6 }
  50% { opacity: .8 }
  100% { opacity: .7 }
}
@keyframes smc-table {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes smc-map1 {
  0% { transform: rotate(5deg) translateX(0) }
  50% { transform: rotate(7deg) translateX(1px) }
  100% { transform: rotate(5deg) translateX(0) }
}
@keyframes smc-map2 {
  0% { transform: rotate(-8deg) translateX(0) }
  50% { transform: rotate(-6deg) translateX(-1px) }
  100% { transform: rotate(-8deg) translateX(0) }
}
@keyframes smc-scale {
  0% { transform: rotate(0) scaleX(1) }
  50% { transform: rotate(2deg) scaleX(1.02) }
  100% { transform: rotate(0) scaleX(1) }
}
@keyframes smc-weight1 {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}
@keyframes smc-weight2 {
  0% { transform: translateY(0) }
  50% { transform: translateY(-5px) }
  100% { transform: translateY(0) }
}
@keyframes smc-figure {
  0% { transform: translateY(0) rotate(0) scaleY(1) }
  25% { transform: translateY(-2px) rotate(-1deg) scaleY(1.01) }
  50% { transform: translateY(-1px) rotate(1deg) scaleY(0.99) }
  75% { transform: translateY(-3px) rotate(0) scaleY(1.02) }
  100% { transform: translateY(0) rotate(0) scaleY(1) }
}
@keyframes smc-shadow {
  0% { transform: scaleX(1); opacity: .3 }
  50% { transform: scaleX(1.05); opacity: .4 }
  100% { transform: scaleX(1); opacity: .3 }
}

.scn-bonaparte-algebra-problem {
  background:
    linear-gradient(180deg, #1a1612 0%, #2c2420 40%, #3a302a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3e36 0%, transparent 60%);
}
.scn-bonaparte-algebra-problem .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12100e 0%, #221e1a 50%, #12100e 100%);
  animation: bap-wall 35s ease-in-out infinite alternate;
}
.scn-bonaparte-algebra-problem .desk {
  position: absolute; bottom: 0; left: 8%; right: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e24 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: bap-desk 25s ease-in-out infinite alternate;
}
.scn-bonaparte-algebra-problem .figure {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 48%;
  background: radial-gradient(ellipse at 50% 30%, #1e1814 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: bap-figure 9s ease-in-out infinite;
}
.scn-bonaparte-algebra-problem .paper {
  position: absolute; bottom: 12%; left: 35%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #d8c8b0 0%, #a08870 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 10px rgba(0,0,0,.5);
  transform: rotate(3deg);
  animation: bap-paper 20s ease-in-out infinite;
}
.scn-bonaparte-algebra-problem .equations {
  position: absolute; bottom: 16%; left: 37%; width: 34%; height: 10%;
  background: repeating-linear-gradient(
    to right,
    transparent 0px, transparent 8px,
    rgba(60,50,40,.8) 8px, rgba(60,50,40,.8) 10px,
    transparent 10px, transparent 16px
  );
  background-size: 16px 100%;
  opacity: .6;
  animation: bap-equations 6s ease-in-out infinite alternate;
}
.scn-bonaparte-algebra-problem .lamp {
  position: absolute; bottom: 30%; left: 25%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #c8b088 0%, #6a5040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: bap-lamp 18s ease-in-out infinite alternate;
}
.scn-bonaparte-algebra-problem .lamp-glow {
  position: absolute; bottom: 28%; left: 22%; width: 14%; height: 22%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,210,120,.2) 0%, transparent 70%);
  animation: bap-lampglow 4s ease-in-out infinite alternate;
}
.scn-bonaparte-algebra-problem .chess {
  position: absolute; bottom: 10%; left: 60%; width: 8%; height: 10%;
  background: radial-gradient(circle, #6a5040 0%, #3a281e 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
  animation: bap-chess 12s ease-in-out infinite;
}
@keyframes bap-wall {
  0% { opacity: .7 }
  50% { opacity: .85 }
  100% { opacity: .75 }
}
@keyframes bap-desk {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes bap-figure {
  0% { transform: translateY(0) rotate(0) scaleY(1) }
  30% { transform: translateY(-2px) rotate(1deg) scaleY(1.01) }
  60% { transform: translateY(-1px) rotate(-1deg) scaleY(0.99) }
  100% { transform: translateY(0) rotate(0) scaleY(1) }
}
@keyframes bap-paper {
  0% { transform: rotate(3deg) translateX(0) }
  50% { transform: rotate(5deg) translateX(1px) }
  100% { transform: rotate(3deg) translateX(0) }
}
@keyframes bap-equations {
  0% { opacity: .4; transform: scaleY(1) }
  50% { opacity: .7; transform: scaleY(1.05) }
  100% { opacity: .5; transform: scaleY(0.95) }
}
@keyframes bap-lamp {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.03) }
  100% { transform: scaleY(1) }
}
@keyframes bap-lampglow {
  0% { opacity: .15; transform: scale(1) }
  50% { opacity: .35; transform: scale(1.1) }
  100% { opacity: .2; transform: scale(0.95) }
}
@keyframes bap-chess {
  0% { transform: translateY(0) rotate(0) }
  50% { transform: translateY(-2px) rotate(10deg) }
  100% { transform: translateY(0) rotate(0) }
}

/* defence-of-theatre-dau-vs-fred */
.scn-defence-of-theatre-dau-vs-fred { background: linear-gradient(180deg, #f5e6c8 0%, #e3cdab 40%, #c9b38a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%); }
.scn-defence-of-theatre-dau-vs-fred .dtf-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #dcc4a0 70%); }
.scn-defence-of-theatre-dau-vs-fred .dtf-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #8a6e4b 0%, #a88a63 100%); border-radius:0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: dtf-floor 12s ease-in-out infinite alternate; }
.scn-defence-of-theatre-dau-vs-fred .dtf-table { position:absolute; bottom:15%; left:50%; width:180px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #b08a5c 0%, #7a5a30 100%); border-radius:12% 12% 8% 8% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: dtf-table 8s ease-in-out infinite; }
.scn-defence-of-theatre-dau-vs-fred .dtf-figure-left { position:absolute; bottom:18%; left:38%; width:20px; height:45px; background: linear-gradient(180deg, #5e3a2a 0%, #2c1a10 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dtf-fig-l 4s ease-in-out infinite; }
.scn-defence-of-theatre-dau-vs-fred .dtf-figure-right { position:absolute; bottom:18%; right:38%; width:20px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #1e150e 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dtf-fig-r 5s ease-in-out infinite; }
.scn-defence-of-theatre-dau-vs-fred .dtf-map { position:absolute; bottom:23%; left:50%; width:120px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 45% 35%, #dcc48a 0%, #b8985a 60%, #8a6e3a 100%); border-radius:15% 15% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dtf-map 9s ease-in-out infinite alternate; }
.scn-defence-of-theatre-dau-vs-fred .dtf-candle { position:absolute; bottom:22%; left:50%; width:6px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.4); animation: dtf-candle 3s ease-in-out infinite alternate; }
@keyframes dtf-floor { 0% { background-position: 0% 0% } 50% { background-position: 2% 1% } 100% { background-position: 0% 0% } }
@keyframes dtf-table { 0% { transform: translateX(-50%) rotate(-0.3deg) } 50% { transform: translateX(-50%) rotate(0.3deg) scale(1.002,1) } 100% { transform: translateX(-50%) rotate(-0.3deg) } }
@keyframes dtf-fig-l { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dtf-fig-r { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-1.5deg) translateY(-3px) } }
@keyframes dtf-map { 0% { transform: translateX(-50%) rotate(0) scale(1) } 50% { transform: translateX(-50%) rotate(0.5deg) scale(0.995) } 100% { transform: translateX(-50%) rotate(0) scale(1) } }
@keyframes dtf-candle { 0% { opacity:.8; box-shadow: 0 0 15px 4px #f0c060 } 50% { opacity:1; box-shadow: 0 0 30px 8px #ffd080 } 100% { opacity:.9; box-shadow: 0 0 20px 6px #f0c060 } }

/* defence-of-theatre-summary-2 */
.scn-defence-of-theatre-summary-2 { background: linear-gradient(180deg, #faf0e0 0%, #e6d7c0 50%, #cfbca0 100%), radial-gradient(ellipse at 50% 100%, #e0ceb0 0%, transparent 50%); }
.scn-defence-of-theatre-summary-2 .dts-bg { position:absolute; inset:0; background: linear-gradient(135deg, #faf0e0 0%, #e6d7c0 50%, #d4c0a5 100%); }
.scn-defence-of-theatre-summary-2 .dts-manuscript { position:absolute; bottom:25%; left:50%; width:160px; height:100px; transform:translateX(-50%); background: linear-gradient(135deg, #f5edc8 0%, #dad0a0 50%, #b8a87a 100%); border-radius:6% 6% 8% 8% / 10% 10% 12% 12%; box-shadow: 0 10px 30px rgba(0,0,0,.25); animation: dts-manuscript 12s ease-in-out infinite alternate; }
.scn-defence-of-theatre-summary-2 .dts-inkwell { position:absolute; bottom:40%; right:25%; width:20px; height:18px; background: radial-gradient(circle at 40% 35%, #3e2a1a 0%, #1a0e06 100%); border-radius:30% 30% 15% 15% / 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: dts-ink 18s ease-in-out infinite; }
.scn-defence-of-theatre-summary-2 .dts-quill { position:absolute; bottom:42%; right:22%; width:4px; height:30px; background: linear-gradient(180deg, #e8dcc8 0%, #b8a88a 50%, #8a7860 100%); border-radius:20% 20% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: dts-quill 4s ease-in-out infinite; }
.scn-defence-of-theatre-summary-2 .dts-hand { position:absolute; bottom:26%; right:22%; width:16px; height:30px; background: linear-gradient(180deg, #c8a880 0%, #a08058 100%); border-radius:50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom right; animation: dts-hand 3s ease-in-out infinite alternate; }
.scn-defence-of-theatre-summary-2 .dts-candle { position:absolute; bottom:40%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #f0c080 0%, #c08040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 25px 8px #f0c060, 0 0 50px 16px rgba(240,192,96,.3); animation: dts-candle 3s ease-in-out infinite alternate; }
@keyframes dts-manuscript { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(0.8deg) scale(0.996) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes dts-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dts-quill { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0) } }
@keyframes dts-hand { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(0) } }
@keyframes dts-candle { 0% { opacity:.85; box-shadow: 0 0 20px 6px #f0c060 } 50% { opacity:1; box-shadow: 0 0 35px 12px #ffd080 } 100% { opacity:.9; box-shadow: 0 0 25px 8px #f0c060 } }

/* defence-of-theatre-offensive-principle-weak */
.scn-defence-of-theatre-offensive-principle-weak { background: linear-gradient(180deg, #b8d2e8 0%, #8ab0c8 40%, #568098 100%), radial-gradient(ellipse at 50% 100%, #5a8a9e 0%, transparent 60%); }
.scn-defence-of-theatre-offensive-principle-weak .dtp-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(0deg, transparent 0%, rgba(255,255,255,.2) 30%, #b8d2e8 100%); animation: dtp-sky 20s ease-in-out infinite alternate; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a3a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.4); animation: dtp-ground 15s ease-in-out infinite alternate; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-barrier { position:absolute; bottom:25%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5e4a3a 0%, #2a1e12 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: dtp-barrier 10s ease-in-out infinite; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-figure-left { position:absolute; bottom:28%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #4a3a2e 0%, #1e140c 100%); border-radius:50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dtp-fig-l 6s ease-in-out infinite; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-figure-right { position:absolute; bottom:28%; right:35%; width:22px; height:50px; background: linear-gradient(180deg, #3e2e22 0%, #18100a 100%); border-radius:50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: dtp-fig-r 7s ease-in-out infinite; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-cloud-a { position:absolute; top:15%; right:20%; width:80px; height:16px; background: linear-gradient(180deg, rgba(240,248,255,.6) 0%, rgba(200,220,240,.1) 100%); border-radius:50%; filter: blur(6px); animation: dtp-drift-a 40s linear infinite; }
.scn-defence-of-theatre-offensive-principle-weak .dtp-cloud-b { position:absolute; top:20%; left:10%; width:60px; height:12px; background: linear-gradient(180deg, rgba(240,248,255,.5) 0%, rgba(200,220,240,.05) 100%); border-radius:50%; filter: blur(5px); animation: dtp-drift-b 55s linear infinite reverse; }
@keyframes dtp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes dtp-ground { 0% { background-position: 0% 0% } 50% { background-position: 1% 0% } 100% { background-position: 0% 0% } }
@keyframes dtp-barrier { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(0.98) } }
@keyframes dtp-fig-l { 0%,100% { transform: rotate(0) } 33% { transform: rotate(-2deg) } 66% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes dtp-fig-r { 0%,100% { transform: rotate(0) } 33% { transform: rotate(1.5deg) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes dtp-drift-a { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes dtp-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(110vw) } }

/* strategic-manoeuvring-intro */
.scn-strategic-manoeuvring-intro { background: linear-gradient(180deg, #dad0b8 0%, #bfaa8a 40%, #8a7458 100%), radial-gradient(ellipse at 50% 50%, #c8b898 0%, transparent 70%); }
.scn-strategic-manoeuvring-intro .smi-bg { position:absolute; inset:0; background: linear-gradient(135deg, #dad0b8 0%, #bfaa8a 50%, #9a8268 100%); }
.scn-strategic-manoeuvring-intro .smi-board { position:absolute; top:10%; left:5%; right:5%; bottom:10%; background: linear-gradient(135deg, #e0d4b0 0%, #c8b890 50%, #a89070 100%); border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 40px rgba(0,0,0,.2); animation: smi-board 20s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-intro .smi-marker-a { position:absolute; top:40%; left:20%; width:18px; height:18px; background: radial-gradient(circle at 40% 35%, #b04030 0%, #702a20 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: smi-marker-a 14s ease-in-out infinite; }
.scn-strategic-manoeuvring-intro .smi-marker-b { position:absolute; top:50%; right:25%; width:18px; height:18px; background: radial-gradient(circle at 40% 35%, #3a7080 0%, #1e4050 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: smi-marker-b 12s ease-in-out infinite; }
.scn-strategic-manoeuvring-intro .smi-arrow { position:absolute; top:45%; left:25%; width:40px; height:6px; background: linear-gradient(90deg, #8a6e3a 0%, transparent 100%); border-radius:0 40% 40% 0 / 0 50% 50% 0; transform-origin: left center; animation: smi-arrow 18s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-intro .smi-compass { position:absolute; bottom:5%; right:5%; width:30px; height:30px; border:2px solid #8a7458; border-radius:50%; background: radial-gradient(circle at 50% 50%, #f5e8c8 0%, #b8a080 100%); box-shadow: 0 0 10px rgba(0,0,0,.2); animation: smi-compass 25s linear infinite; }
@keyframes smi-board { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.15) } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,.25) } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.15) } }
@keyframes smi-marker-a { 0% { transform: translate(0,0) } 25% { transform: translate(15px,-8px) } 50% { transform: translate(30px,-16px) } 75% { transform: translate(15px,-24px) } 100% { transform: translate(0,0) } }
@keyframes smi-marker-b { 0% { transform: translate(0,0) } 20% { transform: translate(-10px,6px) } 40% { transform: translate(-20px,12px) } 60% { transform: translate(-10px,18px) } 80% { transform: translate(0,12px) } 100% { transform: translate(0,0) } }
@keyframes smi-arrow { 0% { transform: rotate(-10deg) } 50% { transform: rotate(15deg) scaleX(1.2) } 100% { transform: rotate(-10deg) } }
@keyframes smi-compass { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

/* Scene: culminating-point-elements (cpe) */
.scn-culminating-point-elements {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4b896 40%, #b89a7a 100%),
              radial-gradient(ellipse at 80% 100%, #8a6a4a 0%, transparent 70%);
}
.scn-culminating-point-elements .cpe-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e6d4b8 0%, #c8ae88 100%);
}
.scn-culminating-point-elements .cpe-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
}
.scn-culminating-point-elements .cpe-table {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  animation: cpe-table 20s ease-in-out infinite;
}
.scn-culminating-point-elements .cpe-map {
  position: absolute; bottom: 24%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #e8d4b0 0%, #d0b890 50%, #bca078 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 12px rgba(90,60,30,.3), 0 4px 8px rgba(0,0,0,.2);
  animation: cpe-map 25s ease-in-out infinite alternate;
}
.scn-culminating-point-elements .cpe-figure {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpe-figure 8s ease-in-out infinite;
}
.scn-culminating-point-elements .cpe-candle {
  position: absolute; bottom: 28%; left: 28%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 50%, #806030 100%);
  border-radius: 40%;
  box-shadow: 0 0 20px 6px #e0b060, 0 0 40px 12px rgba(224,176,96,.4);
  animation: cpe-candle 4s ease-in-out infinite alternate;
}
.scn-culminating-point-elements .cpe-window {
  position: absolute; top: 8%; right: 8%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #fcf8f0 0%, #e8dcc8 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,245,230,.6), 0 0 20px rgba(255,235,200,.3);
  animation: cpe-window 12s ease-in-out infinite alternate;
}
.scn-culminating-point-elements .cpe-shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.15) 0%, transparent 70%);
  animation: cpe-shadows 30s ease-in-out infinite;
}
.scn-culminating-point-elements .cpe-flag {
  position: absolute; top: 10%; left: 12%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%);
  border-radius: 0 60% 60% 0;
  transform-origin: bottom left;
  animation: cpe-flag 6s ease-in-out infinite alternate;
}
@keyframes cpe-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cpe-map {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(1.01); }
  100% { transform: translateX(-2px) scale(0.99); }
}
@keyframes cpe-figure {
  0% { transform: rotate(-2deg); }
  30% { transform: rotate(1deg) translateY(-3px); }
  60% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(2deg); }
}
@keyframes cpe-candle {
  0% { box-shadow: 0 0 15px 4px #e0b060, 0 0 30px 8px rgba(224,176,96,.3); opacity: .9; }
  50% { box-shadow: 0 0 28px 10px #f0d080, 0 0 50px 18px rgba(240,208,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 6px #e0b060, 0 0 35px 12px rgba(224,176,96,.35); opacity: .85; }
}
@keyframes cpe-window {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes cpe-shadows {
  0% { opacity: .3; }
  50% { opacity: .15; }
  100% { opacity: .25; }
}
@keyframes cpe-flag {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}

/* Scene: culminating-point-decrease (cpd) */
.scn-culminating-point-decrease {
  background: linear-gradient(180deg, #dcc8b0 0%, #b89a78 40%, #8a6a4a 100%),
              radial-gradient(ellipse at 30% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-culminating-point-decrease .cpd-wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #c8ae8e 0%, #a88868 100%);
}
.scn-culminating-point-decrease .cpd-window {
  position: absolute; top: 8%; left: 8%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #b0c8d8 0%, #889aa8 100%);
  border: 8px solid #6a5030;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
  animation: cpd-window 15s ease-in-out infinite alternate;
}
.scn-culminating-point-decrease .cpd-view {
  position: absolute; top: 12%; left: 12%; width: 32%; height: 42%;
  background: linear-gradient(180deg, #90a8b8 0%, #6a7a84 100%);
  border-radius: 4px;
  animation: cpd-view 20s ease-in-out infinite alternate;
}
.scn-culminating-point-decrease .cpd-figure {
  position: absolute; bottom: 8%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpd-figure 10s ease-in-out infinite;
}
.scn-culminating-point-decrease .cpd-table {
  position: absolute; bottom: 4%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-culminating-point-decrease .cpd-candle {
  position: absolute; bottom: 14%; left: 22%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e8c878 0%, #b08040 50%, #806030 100%);
  border-radius: 40%;
  box-shadow: 0 0 24px 6px #d8b060, 0 0 48px 12px rgba(216,176,96,.4);
  animation: cpd-candle 3s ease-in-out infinite alternate;
}
.scn-culminating-point-decrease .cpd-shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 100%, rgba(0,0,0,.2) 0%, transparent 70%);
  animation: cpd-shadows 25s ease-in-out infinite;
}
@keyframes cpd-window {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .7; }
}
@keyframes cpd-view {
  0% { transform: scale(1); }
  50% { transform: scale(0.98) translateY(-3px); }
  100% { transform: scale(1.01) translateY(2px); }
}
@keyframes cpd-figure {
  0% { transform: rotate(-1deg) translateX(0); }
  25% { transform: rotate(1deg) translateX(4px); }
  50% { transform: rotate(-1deg) translateX(0); }
  75% { transform: rotate(1deg) translateX(-4px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes cpd-candle {
  0% { box-shadow: 0 0 18px 4px #d8b060, 0 0 36px 8px rgba(216,176,96,.3); opacity: .85; }
  50% { box-shadow: 0 0 32px 10px #f0d080, 0 0 64px 18px rgba(240,208,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 5px #d8b060, 0 0 40px 10px rgba(216,176,96,.35); opacity: .9; }
}
@keyframes cpd-shadows {
  0% { opacity: .4; }
  50% { opacity: .2; }
  100% { opacity: .35; }
}

/* Scene: culminating-point-analysis (cpa) */
.scn-culminating-point-analysis {
  background: linear-gradient(180deg, #f0e4d0 0%, #d0b898 40%, #a88868 100%),
              radial-gradient(ellipse at 20% 100%, #8a6a4a 0%, transparent 60%);
}
.scn-culminating-point-analysis .cpa-wall {
  position: absolute; inset: 0 0 12% 0;
  background: linear-gradient(180deg, #dcc4a8 0%, #b89878 100%);
}
.scn-culminating-point-analysis .cpa-bookshelf {
  position: absolute; top: 2%; right: 4%; width: 30%; height: 86%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: cpa-bookshelf 30s ease-in-out infinite alternate;
}
.scn-culminating-point-analysis .cpa-desk {
  position: absolute; bottom: 6%; left: 10%; width: 55%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
}
.scn-culminating-point-analysis .cpa-figure {
  position: absolute; bottom: 8%; left: 20%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpa-figure 12s ease-in-out infinite;
}
.scn-culminating-point-analysis .cpa-paper {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d8c0a0 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 4px rgba(90,60,30,.2);
  animation: cpa-paper 18s ease-in-out infinite alternate;
}
.scn-culminating-point-analysis .cpa-inkwell {
  position: absolute; bottom: 16%; left: 28%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-culminating-point-analysis .cpa-candle {
  position: absolute; bottom: 18%; left: 22%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8c878 0%, #b08040 50%, #806030 100%);
  border-radius: 40%;
  box-shadow: 0 0 24px 6px #d8b060, 0 0 48px 12px rgba(216,176,96,.4);
  animation: cpa-candle 3.5s ease-in-out infinite alternate;
}
.scn-culminating-point-analysis .cpa-shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 100%, rgba(0,0,0,.15) 0%, transparent 70%);
  animation: cpa-shadows 30s ease-in-out infinite;
}
@keyframes cpa-bookshelf {
  0% { opacity: .85; }
  50% { opacity: .95; }
  100% { opacity: .9; }
}
@keyframes cpa-figure {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes cpa-paper {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes cpa-candle {
  0% { box-shadow: 0 0 18px 4px #d8b060, 0 0 36px 8px rgba(216,176,96,.3); opacity: .85; }
  50% { box-shadow: 0 0 32px 10px #f0d080, 0 0 64px 18px rgba(240,208,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 5px #d8b060, 0 0 40px 10px rgba(216,176,96,.35); opacity: .9; }
}
@keyframes cpa-shadows {
  0% { opacity: .35; }
  50% { opacity: .2; }
  100% { opacity: .3; }
}

/* Scene: culminating-point-weakness (cpw) */
.scn-culminating-point-weakness {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4b896 40%, #b89a7a 100%),
              radial-gradient(ellipse at 70% 100%, #8a6a4a 0%, transparent 60%);
}
.scn-culminating-point-weakness .cpw-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #dcc8b0 0%, #b89878 100%);
}
.scn-culminating-point-weakness .cpw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.scn-culminating-point-weakness .cpw-table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  animation: cpw-table 22s ease-in-out infinite;
}
.scn-culminating-point-weakness .cpw-map {
  position: absolute; bottom: 18%; left: 22%; width: 56%; height: 12%;
  background: linear-gradient(135deg, #e8d4b0 0%, #d0b890 50%, #bca078 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 12px rgba(90,60,30,.3), 0 4px 8px rgba(0,0,0,.2);
  animation: cpw-map 28s ease-in-out infinite alternate;
}
.scn-culminating-point-weakness .cpw-piece {
  position: absolute; bottom: 20%; left: 30%; width: 10px; height: 10px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,70,26,.5);
  animation: cpw-piece 10s ease-in-out infinite alternate;
}
.scn-culminating-point-weakness .cpw-figure {
  position: absolute; bottom: 10%; left: 45%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpw-figure 9s ease-in-out infinite;
}
.scn-culminating-point-weakness .cpw-candle {
  position: absolute; bottom: 24%; left: 20%; width: 8px; height: 26px;
  background: linear-gradient(180deg, #f0d080 0%, #b08040 50%, #806030 100%);
  border-radius: 40%;
  box-shadow: 0 0 20px 6px #e0b060, 0 0 40px 12px rgba(224,176,96,.4);
  animation: cpw-candle 4s ease-in-out infinite alternate;
}
.scn-culminating-point-weakness .cpw-shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.18) 0%, transparent 70%);
  animation: cpw-shadows 30s ease-in-out infinite;
}
@keyframes cpw-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cpw-map {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(3px) scale(1.005); }
  100% { transform: translateX(-2px) scale(0.995); }
}
@keyframes cpw-piece {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(8px,-4px) scale(1.1); }
  100% { transform: translate(-4px,2px) scale(0.95); }
}
@keyframes cpw-figure {
  0% { transform: rotate(0) translateX(0); }
  33% { transform: rotate(1deg) translateX(3px); }
  66% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes cpw-candle {
  0% { box-shadow: 0 0 18px 4px #e0b060, 0 0 36px 8px rgba(224,176,96,.3); opacity: .85; }
  50% { box-shadow: 0 0 32px 10px #f0d080, 0 0 64px 18px rgba(240,208,128,.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 5px #e0b060, 0 0 40px 10px rgba(224,176,96,.35); opacity: .9; }
}
@keyframes cpw-shadows {
  0% { opacity: .4; }
  50% { opacity: .2; }
  100% { opacity: .35; }
}

/* defence-of-streams-distance-calculation */
.scn-defence-of-streams-distance-calculation {
  background: linear-gradient(135deg, #f5f0e0 0%, #d4c9a8 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, transparent 70%);
}
.scn-defence-of-streams-distance-calculation .ds1-table {
  position: absolute; inset: 5% 5% 10% 5%; background: linear-gradient(180deg, #8b5e3c 0%, #654321 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-distance-calculation .ds1-map {
  position: absolute; top: 20%; left: 15%; width: 60%; height: 50%; background: linear-gradient(135deg, #e8dcc8 0%, #c4b896 100%); border: 2px solid #a0866e; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: ds1-map-pulse 12s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-calculation .ds1-ruler {
  position: absolute; top: 35%; left: 10%; width: 25%; height: 4px; background: linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 1px 2px rgba(0,0,0,0.3); animation: ds1-ruler-slide 8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-calculation .ds1-compass {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #daa520 0%, #b8860b 50%, #8b6914 100%); border-radius: 50%; border: 2px solid #6b4910; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ds1-compass-spin 20s linear infinite;
}
.scn-defence-of-streams-distance-calculation .ds1-compass:after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 4px; height: 20px; background: #c0c0c0; transform: translate(-50%, -50%) rotate(45deg); border-radius: 2px;
}
.scn-defence-of-streams-distance-calculation .ds1-candle {
  position: absolute; bottom: 10%; left: 45%; width: 12px; height: 30px; background: linear-gradient(180deg, #f5e6d0 0%, #e0c9a0 40%, #b89a70 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 10px 2px rgba(255,200,100,0.3);
}
.scn-defence-of-streams-distance-calculation .ds1-flame {
  position: absolute; bottom: calc(10% + 28px); left: calc(45% + 6px); width: 8px; height: 12px; background: radial-gradient(ellipse at 50% 100%, #ffdd66 0%, #ffaa33 40%, transparent 70%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); animation: ds1-flame-dance 0.8s ease-in-out infinite alternate;
}
.scn-defence-of-streams-distance-calculation .ds1-glow {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 20%; background: radial-gradient(ellipse, rgba(255,200,100,0.4) 0%, transparent 70%); pointer-events: none; animation: ds1-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes ds1-map-pulse { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.95; transform: scale(1); } }
@keyframes ds1-ruler-slide { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(10px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ds1-compass-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ds1-flame-dance { 0% { transform: translateX(-50%) scaleY(1) rotate(-3deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(3deg); } }
@keyframes ds1-glow-pulse { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.5); } 100% { opacity: 0.4; transform: scale(1.2); } }

/* defence-of-streams-theory-summary */
.scn-defence-of-streams-theory-summary {
  background: linear-gradient(180deg, #f0e8d0 0%, #d9cfb0 50%, #c0b090 100%), radial-gradient(ellipse at 50% 20%, #fff5e6 0%, transparent 60%);
}
.scn-defence-of-streams-theory-summary .ds2-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c9a8 0%, #b8a88a 100%); 
}
.scn-defence-of-streams-theory-summary .ds2-window {
  position: absolute; top: 15%; left: 65%; width: 25%; height: 40%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border: 4px solid #8b5e3c; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); animation: ds2-sky 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-theory-summary .ds2-desk {
  position: absolute; bottom: 10%; left: 10%; width: 70%; height: 30%; background: linear-gradient(180deg, #8b5e3c 0%, #654321 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-theory-summary .ds2-book1 {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 55px; background: linear-gradient(180deg, #6b3a2a 0%, #4a2518 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: ds2-book-bob 6s ease-in-out infinite;
}
.scn-defence-of-streams-theory-summary .ds2-book2 {
  position: absolute; bottom: 28%; left: 40%; width: 35px; height: 50px; background: linear-gradient(180deg, #2e6b4a 0%, #1a4028 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: ds2-book-bob 8s ease-in-out infinite reverse;
}
.scn-defence-of-streams-theory-summary .ds2-book3 {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 45px; background: linear-gradient(180deg, #8b6b3a 0%, #5a4518 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.4); animation: ds2-book-bob 7s ease-in-out infinite alternate;
}
.scn-defence-of-streams-theory-summary .ds2-figure {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 60px; background: linear-gradient(180deg, #3e2723 0%, #1a0f0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds2-figure-breathe 4s ease-in-out infinite;
}
.scn-defence-of-streams-theory-summary .ds2-lamp {
  position: absolute; top: 25%; left: 30%; width: 10px; height: 20px; background: linear-gradient(180deg, #b8860b 0%, #8b6914 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,200,100,0.5); animation: ds2-lamp-glow 3s ease-in-out infinite alternate;
}
@keyframes ds2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ds2-book-bob { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ds2-figure-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ds2-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.7); } 100% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); } }

/* defence-of-streams-corps-position */
.scn-defence-of-streams-corps-position {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 50%, #a89880 100%), radial-gradient(ellipse at 50% 30%, #f5f0e0 0%, transparent 70%);
}
.scn-defence-of-streams-corps-position .ds3-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c9a8 0%, #b8a88a 100%);
}
.scn-defence-of-streams-corps-position .ds3-map {
  position: absolute; top: 10%; left: 15%; width: 60%; height: 70%; background: linear-gradient(135deg, #e8dcc8 0%, #c4b896 100%); border: 3px solid #8b5e3c; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-defence-of-streams-corps-position .ds3-river {
  position: absolute; top: 30%; left: 20%; width: 40%; height: 6%; background: linear-gradient(90deg, #5b9bd5 0%, #4a86c8 50%, #5b9bd5 100%); border-radius: 50%; transform: rotate(-10deg); opacity: 0.7; animation: ds3-river-flow 15s ease-in-out infinite alternate;
}
.scn-defence-of-streams-corps-position .ds3-marker1 {
  position: absolute; top: 25%; left: 30%; width: 10px; height: 10px; background: #a0522d; border-radius: 50%; box-shadow: 0 0 4px rgba(160,82,45,0.8); animation: ds3-marker-pulse 4s ease-in-out infinite;
}
.scn-defence-of-streams-corps-position .ds3-marker2 {
  position: absolute; top: 40%; left: 50%; width: 10px; height: 10px; background: #a0522d; border-radius: 50%; box-shadow: 0 0 4px rgba(160,82,45,0.8); animation: ds3-marker-pulse 5s ease-in-out infinite 2s;
}
.scn-defence-of-streams-corps-position .ds3-pointer {
  position: absolute; bottom: 30%; left: 25%; width: 2px; height: 120px; background: #5a3e2b; border-radius: 1px; transform-origin: bottom center; transform: rotate(-20deg); box-shadow: 0 0 2px rgba(0,0,0,0.5); animation: ds3-pointer-sway 6s ease-in-out infinite alternate;
}
.scn-defence-of-streams-corps-position .ds3-hand {
  position: absolute; bottom: 25%; left: 22%; width: 20px; height: 30px; background: linear-gradient(180deg, #3e2723 0%, #1a0f0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ds3-hand-reach 6s ease-in-out infinite alternate;
}
@keyframes ds3-river-flow { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ds3-marker-pulse { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes ds3-pointer-sway { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes ds3-hand-reach { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(10deg) translateX(0); } }

/* defence-of-streams-temptation-of-line-posts */
.scn-defence-of-streams-temptation-of-line-posts {
  background: linear-gradient(135deg, #f5f0e0 0%, #d4c9a8 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 50%, #e8dcc8 0%, transparent 70%);
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c9a8 0%, #b8a88a 100%);
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-paper {
  position: absolute; top: 20%; left: 20%; width: 50%; height: 50%; background: #fffae6; border: 1px solid #a0866e; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(2deg); animation: ds4-paper-shake 2s ease-in-out infinite;
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-redline1 {
  position: absolute; top: 35%; left: 25%; width: 40%; height: 2px; background: #a0522d; transform: rotate(10deg); border-radius: 1px; animation: ds4-redline-appear 3s ease-in-out infinite;
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-redline2 {
  position: absolute; top: 45%; left: 25%; width: 35%; height: 2px; background: #a0522d; transform: rotate(-15deg); border-radius: 1px; animation: ds4-redline-appear 4s ease-in-out infinite 1s;
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-hand {
  position: absolute; bottom: 30%; left: 40%; width: 25px; height: 40px; background: linear-gradient(180deg, #3e2723 0%, #1a0f0c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ds4-hand-clench 2s ease-in-out infinite;
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-inkwell {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 25px; background: linear-gradient(180deg, #1a1a1a 0%, #000 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-quill {
  position: absolute; bottom: 22%; right: 22%; width: 4px; height: 40px; background: linear-gradient(180deg, #f5e6d0 0%, #d4c0a0 100%); border-radius: 2px 2px 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: ds4-quill-tremble 1.5s ease-in-out infinite alternate;
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-candle {
  position: absolute; bottom: 10%; left: 15%; width: 10px; height: 25px; background: linear-gradient(180deg, #f5e6d0 0%, #e0c9a0 40%, #b89a70 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 8px 2px rgba(255,200,100,0.4);
}
.scn-defence-of-streams-temptation-of-line-posts .ds4-flicker {
  position: absolute; bottom: calc(10% + 23px); left: calc(15% + 5px); width: 6px; height: 10px; background: radial-gradient(ellipse at 50% 100%, #ffdd66 0%, #ffaa33 40%, transparent 70%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); animation: ds4-flicker-dance 0.4s ease-in-out infinite alternate;
}
@keyframes ds4-paper-shake { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(2.5deg) translateX(2px); } 50% { transform: rotate(1.5deg) translateX(-2px); } 75% { transform: rotate(3deg) translateX(1px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes ds4-redline-appear { 0% { opacity: 0.2; transform: rotate(10deg) scaleX(0.5); } 50% { opacity: 1; transform: rotate(10deg) scaleX(1); } 100% { opacity: 0.2; transform: rotate(10deg) scaleX(0.5); } }
@keyframes ds4-hand-clench { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.1); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes ds4-quill-tremble { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-32deg) translateY(2px); } 100% { transform: rotate(-28deg) translateY(0); } }
@keyframes ds4-flicker-dance { 0% { transform: translateX(-50%) scaleY(1) rotate(-5deg); } 50% { transform: translateX(-50%) scaleY(1.3) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(0.8) rotate(5deg); } }

/* pursuit-after-victory */
.scn-pursuit-after-victory {
  background: linear-gradient(180deg, #1f1a1a 0%, #2a1a1a 30%, #1a1212 100%), radial-gradient(ellipse at 50% 30%, #4a2a2a 0%, transparent 70%);
}
.scn-pursuit-after-victory .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1f1f 0%, #3a2a2a 60%, #2a1f1f 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-pursuit-after-victory .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1410 0%, #121010 100%); border-radius: 60% 40% 0 0 / 20% 20% 0 0; }
.scn-pursuit-after-victory .doorway { position:absolute; bottom:30%; left:50%; width:90px; height:130px; transform:translateX(-50%); background: #0a0606; border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(200,100,30,.3); }
.scn-pursuit-after-victory .torch-left { position:absolute; bottom:45%; left:15%; width:12px; height:16px; background: radial-gradient(ellipse, #ff8040 0%, #cc4400 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #ff6020, 0 0 40px 20px rgba(200,80,20,.4); animation: pa-torch 1.2s ease-in-out infinite alternate; }
.scn-pursuit-after-victory .torch-right { position:absolute; bottom:45%; right:15%; width:12px; height:16px; background: radial-gradient(ellipse, #ff8040 0%, #cc4400 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #ff6020, 0 0 40px 20px rgba(200,80,20,.4); animation: pa-torch 1.2s ease-in-out infinite alternate-reverse; }
.scn-pursuit-after-victory .soldier-a { position:absolute; bottom:30%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pa-march 2s ease-in-out infinite; }
.scn-pursuit-after-victory .soldier-b { position:absolute; bottom:30%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pa-march 2s ease-in-out infinite 0.3s; }
.scn-pursuit-after-victory .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(8px); animation: pa-shadow 4s ease-in-out infinite alternate; }
@keyframes pa-torch { 0% { transform: scaleY(1) scaleX(.8); opacity:.9; } 50% { transform: scaleY(1.15) scaleX(1); opacity:1; } 100% { transform: scaleY(.9) scaleX(1); opacity:.85; } }
@keyframes pa-march { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(5px) rotate(-3deg) scaleY(1.02); } 50% { transform: translateX(10px) rotate(0deg) scaleY(1); } 75% { transform: translateX(15px) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(20px) rotate(0deg) scaleY(1); } }
@keyframes pa-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* culminating-point-advance */
.scn-culminating-point-advance {
  background: linear-gradient(180deg, #1a1e2a 0%, #101418 50%, #0a0e12 100%), radial-gradient(ellipse at 40% 50%, #1a2a3a 0%, transparent 80%);
}
.scn-culminating-point-advance .wall-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a3038 0%, #1a1820 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.7); }
.scn-culminating-point-advance .wall-left { position:absolute; bottom:20%; left:0; top:0; width:20%; background: linear-gradient(90deg, #1a1c24 0%, #2a3038 100%); box-shadow: inset -10px 0 30px rgba(0,0,0,.5); }
.scn-culminating-point-advance .wall-right { position:absolute; bottom:20%; right:0; top:0; width:20%; background: linear-gradient(270deg, #1a1c24 0%, #2a3038 100%); box-shadow: inset 10px 0 30px rgba(0,0,0,.5); }
.scn-culminating-point-advance .door { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2618 0%, #1a1610 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(0,0,0,.6), inset 0 -10px 20px rgba(0,0,0,.4); animation: cp-door 5s ease-in-out infinite; }
.scn-culminating-point-advance .window { position:absolute; bottom:55%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #406080 0%, #203050 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 5px rgba(64,96,128,.3), inset 0 0 10px rgba(0,0,0,.5); animation: cp-window 8s ease-in-out infinite alternate; }
.scn-culminating-point-advance .ladder { position:absolute; bottom:20%; left:40%; width:8px; height:140px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 4px 0 0 #2a1a0a, -4px 0 0 #2a1a0a; animation: cp-ladder 6s ease-in-out infinite; }
.scn-culminating-point-advance .climber { position:absolute; bottom:25%; left:40%; width:18px; height:30px; margin-left:-9px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cp-climb 3s ease-in-out infinite; }
@keyframes cp-door { 0% { transform: translateX(-50%) rotateY(0deg); } 30% { transform: translateX(-50%) rotateY(15deg); } 60% { transform: translateX(-50%) rotateY(-10deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes cp-window { 0% { opacity:.6; box-shadow: 0 0 5px 2px rgba(64,96,128,.2); } 50% { opacity:1; box-shadow: 0 0 15px 5px rgba(64,96,128,.5); } 100% { opacity:.7; box-shadow: 0 0 8px 3px rgba(64,96,128,.3); } }
@keyframes cp-ladder { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cp-climb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(20px) rotate(5deg); } 50% { transform: translateY(40px) rotate(0deg); } 75% { transform: translateY(60px) rotate(-5deg); } 100% { transform: translateY(80px) rotate(0deg); } }

/* intrinsic-counterpoise-advance */
.scn-intrinsic-counterpoise-advance {
  background: linear-gradient(180deg, #0e1018 0%, #14121a 30%, #0a0a12 100%), radial-gradient(ellipse at 30% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-intrinsic-counterpoise-advance .corridor-left { position:absolute; top:0; bottom:15%; left:0; width:35%; background: linear-gradient(90deg, #1a1820 0%, #2a2830 100%); box-shadow: inset -10px 0 30px rgba(0,0,0,.7); }
.scn-intrinsic-counterpoise-advance .corridor-right { position:absolute; top:0; bottom:15%; right:0; width:35%; background: linear-gradient(270deg, #1a1820 0%, #2a2830 100%); box-shadow: inset 10px 0 30px rgba(0,0,0,.7); }
.scn-intrinsic-counterpoise-advance .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); }
.scn-intrinsic-counterpoise-advance .obstacle { position:absolute; bottom:15%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.8); animation: ic-obstacle 2.5s ease-in-out infinite; }
.scn-intrinsic-counterpoise-advance .pusher { position:absolute; bottom:15%; left:45%; width:22px; height:40px; margin-left:-11px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ic-push 1.2s ease-in-out infinite; }
.scn-intrinsic-counterpoise-advance .light-source { position:absolute; bottom:40%; left:10%; width:16px; height:20px; background: radial-gradient(circle, #f0a050 0%, #b06020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #c07030, 0 0 60px 30px rgba(160,80,20,.3); animation: ic-light 2s ease-in-out infinite alternate; }
@keyframes ic-obstacle { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-5px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ic-push { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(5deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes ic-light { 0% { opacity:.6; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }

/* culminating-point-reached */
.scn-culminating-point-reached {
  background: linear-gradient(180deg, #1a1418 0%, #20181c 40%, #0e0a0c 100%), radial-gradient(ellipse at 50% 30%, #3a222a 0%, transparent 70%);
}
.scn-culminating-point-reached .tent-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1c1a 0%, #1a1210 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-culminating-point-reached .table { position:absolute; bottom:25%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 10px 20px rgba(0,0,0,.6); }
.scn-culminating-point-reached .map { position:absolute; bottom:25%; left:25%; right:25%; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 2px; transform: perspective(400px) rotateX(5deg); box-shadow: 0 5px 10px rgba(0,0,0,.5); animation: cr-map 8s ease-in-out infinite alternate; }
.scn-culminating-point-reached .candle { position:absolute; bottom:34%; left:50%; width:8px; height:24px; margin-left:-4px; background: linear-gradient(180deg, #e0c080 0%, #b08040 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 16px rgba(200,120,40,.4); animation: cr-candle 2.5s ease-in-out infinite alternate; }
.scn-culminating-point-reached .hand { position:absolute; bottom:30%; left:45%; width:24px; height:16px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 60% 40% 30% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cr-hand 4s ease-in-out infinite; }
.scn-culminating-point-reached .scroll { position:absolute; bottom:25%; right:10%; width:10px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; transform: rotate(15deg); animation: cr-scroll 6s ease-in-out infinite alternate; }
.scn-culminating-point-reached .shadow { position:absolute; bottom:25%; left:0; right:0; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 80%); filter: blur(6px); animation: cr-shadow 3s ease-in-out infinite alternate; }
@keyframes cr-map { 0% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(8deg) translateY(-3px); } 100% { transform: perspective(400px) rotateX(4deg) translateY(0); } }
@keyframes cr-candle { 0% { transform: scaleY(1) translateY(0); opacity:.85; } 50% { transform: scaleY(1.12) translateY(-2px); opacity:1; } 100% { transform: scaleY(.95) translateY(0); opacity:.9; } }
@keyframes cr-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(10deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(24px) rotate(-10deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes cr-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes cr-shadow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-paradox-offensive-war {
  background: linear-gradient(180deg, #2a1a1a 0%, #1f1212 40%, #0f0a0a 100%), radial-gradient(ellipse at 30% 60%, #3a2525 0%, transparent 70%);
}
.scn-paradox-offensive-war .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1212, #0f0a0a); animation: po-room 12s ease-in-out infinite alternate;
}
.scn-paradox-offensive-war .window-faint {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(120,100,80,0.2) 0%, transparent 70%); border-radius: 10%; filter: blur(2px); animation: po-window 8s ease-in-out infinite alternate;
}
.scn-paradox-offensive-war .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #4a3520, #2a1f10); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 15px rgba(0,0,0,0.8); animation: po-desk 14s ease-in-out infinite alternate;
}
.scn-paradox-offensive-war .lamp {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 35px; background: linear-gradient(180deg, #8a7040, #4a3a20); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 10px #b09050, 0 0 80px 20px rgba(176,144,80,0.3); animation: po-lamp 1.5s ease-in-out infinite;
}
.scn-paradox-offensive-war .figure {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 55px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: po-figure 4s ease-in-out infinite;
}
.scn-paradox-offensive-war .shadow-beast {
  position: absolute; bottom: 10%; right: 10%; width: 120px; height: 100px; background: rgba(10,5,5,0.7); border-radius: 60% 40% 30% 50% / 50% 60% 40% 50%; filter: blur(8px); animation: po-shadow 3s ease-in-out infinite;
}
@keyframes po-room { 0% { opacity:0.85; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.8; filter: brightness(0.9) } }
@keyframes po-window { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.02) } 100% { opacity:0.2; transform: scale(0.98) } }
@keyframes po-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes po-lamp { 0% { box-shadow: 0 0 30px 5px #b09050,0 0 60px 10px rgba(176,144,80,0.2); transform: rotate(-1deg) } 30% { box-shadow: 0 0 50px 12px #d0b070,0 0 100px 20px rgba(208,176,112,0.4); transform: rotate(1deg) } 60% { box-shadow: 0 0 20px 3px #a08040,0 0 40px 6px rgba(160,128,64,0.15); transform: rotate(-2deg) } 100% { box-shadow: 0 0 35px 8px #b09050,0 0 70px 15px rgba(176,144,80,0.3); transform: rotate(0) } }
@keyframes po-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes po-shadow { 0% { transform: scale(1) translateX(0) rotate(0deg); opacity:0.5 } 33% { transform: scale(1.05) translateX(-5px) rotate(3deg); opacity:0.7 } 66% { transform: scale(0.95) translateX(8px) rotate(-2deg); opacity:0.4 } 100% { transform: scale(1) translateX(0) rotate(0); opacity:0.5 } }

.scn-methodical-offensive-components {
  background: linear-gradient(180deg, #3a3028 0%, #2a221e 50%, #1f1815 100%), radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 60%);
}
.scn-methodical-offensive-components .bg-floor {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2e2620, #1a1512); animation: mo-floor 20s ease-in-out infinite alternate;
}
.scn-methodical-offensive-components .map-border {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 75%; background: #3a2a1a; border-radius: 2% 2% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: mo-map 30s ease-in-out infinite;
}
.scn-methodical-offensive-components .fortress {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 60px; background: linear-gradient(180deg, #6a5040, #3a2a20); border-radius: 20% 20% 5% 5%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: mo-fortress 15s ease-in-out infinite;
}
.scn-methodical-offensive-components .supply-pile {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 20px; background: #4a3a30; border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); animation: mo-supply 20s ease-in-out infinite alternate;
}
.scn-methodical-offensive-components .lantern {
  position: absolute; bottom: 45%; left: 25%; width: 12px; height: 18px; background: radial-gradient(circle, #c8a060, #8a6a30); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px #b09050,0 0 60px 15px rgba(176,144,80,0.2); animation: mo-lantern 4s ease-in-out infinite;
}
.scn-methodical-offensive-components .figure-leaning {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mo-lean 6s ease-in-out infinite;
}
@keyframes mo-floor { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mo-map { 0% { transform: rotate(0deg) scale(1) } 33% { transform: rotate(0.5deg) scale(1.005) } 66% { transform: rotate(-0.3deg) scale(0.995) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes mo-fortress { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mo-supply { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes mo-lantern { 0% { box-shadow: 0 0 20px 5px #b09050,0 0 40px 10px rgba(176,144,80,0.15); transform: rotate(-2deg) } 35% { box-shadow: 0 0 35px 8px #d0b070,0 0 70px 18px rgba(208,176,112,0.3); transform: rotate(2deg) } 70% { box-shadow: 0 0 25px 6px #a08040,0 0 50px 12px rgba(160,128,64,0.2); transform: rotate(-1deg) } 100% { box-shadow: 0 0 20px 5px #b09050,0 0 40px 10px rgba(176,144,80,0.15); transform: rotate(0) } }
@keyframes mo-lean { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-3deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-motives-convenient-not-surer {
  background: linear-gradient(180deg, #2a3020 0%, #1a2018 50%, #0f1410 100%), radial-gradient(ellipse at 50% 100%, #3a4a2a 0%, transparent 60%);
}
.scn-motives-convenient-not-surer .bg-sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3a4a3a, #1a2a1a); animation: mc-sky 18s ease-in-out infinite alternate;
}
.scn-motives-convenient-not-surer .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a3a2a, #1a1a0a); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-motives-convenient-not-surer .tent {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 50px; background: linear-gradient(135deg, #5a4a3a, #2a2218); border-radius: 20% 20% 5% 5%; clip-path: polygon(0 100%, 20% 0%, 80% 0%, 100% 100%); animation: mc-tent 12s ease-in-out infinite;
}
.scn-motives-convenient-not-surer .campfire {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 20px; background: radial-gradient(ellipse at 50% 100%, #d08030, #8a4a10); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 60px 20px #d08030,0 0 100px 30px rgba(208,128,48,0.3); animation: mc-fire 1.8s ease-in-out infinite;
}
.scn-motives-convenient-not-surer .figure-sitting {
  position: absolute; bottom: 18%; left: 42%; width: 22px; height: 35px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 40% 40% 50% 50% / 50% 50% 50% 50%; transform-origin: bottom center; animation: mc-sit 18s ease-in-out infinite;
}
.scn-motives-convenient-not-surer .figure-standing {
  position: absolute; bottom: 20%; left: 35%; 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: mc-stand 14s ease-in-out infinite;
}
.scn-motives-convenient-not-surer .smoke {
  position: absolute; bottom: 40%; left: 46%; width: 30px; height: 40px; background: rgba(180,160,130,0.15); border-radius: 50%; filter: blur(6px); animation: mc-smoke 8s ease-in-out infinite alternate;
}
@keyframes mc-sky { 0% { opacity:0.8; background-position: 0% 0% } 50% { opacity:1; background-position: 20% 5% } 100% { opacity:0.7; background-position: 0% 0% } }
@keyframes mc-tent { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mc-fire { 0% { box-shadow: 0 0 40px 10px #d08030,0 0 80px 20px rgba(208,128,48,0.2); transform: scale(1) rotate(-1deg) } 30% { box-shadow: 0 0 70px 18px #f0a050,0 0 140px 30px rgba(240,160,80,0.4); transform: scale(1.05) rotate(2deg) } 60% { box-shadow: 0 0 30px 6px #b06020,0 0 60px 12px rgba(176,96,32,0.15); transform: scale(0.95) rotate(-2deg) } 100% { box-shadow: 0 0 40px 10px #d08030,0 0 80px 20px rgba(208,128,48,0.2); transform: scale(1) rotate(0) } }
@keyframes mc-sit { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mc-stand { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(4px) rotate(-2deg) } 66% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mc-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3 } 50% { transform: translateY(-20px) translateX(5px) scale(1.3); opacity:0.1 } 100% { transform: translateY(-40px) translateX(-3px) scale(1.6); opacity:0 } }

.scn-reinforcements-suit-enemy {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1e 40%, #050510 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 60%);
}
.scn-reinforcements-suit-enemy .bg-sky {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #2a2a3e, #0a0a1a); animation: re-sky 20s ease-in-out infinite alternate;
}
.scn-reinforcements-suit-enemy .horizon {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 5%; background: linear-gradient(180deg, #3a3030, #1a1515); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.8);
}
.scn-reinforcements-suit-enemy .hill {
  position: absolute; bottom: 25%; left: 10%; right: 60%; height: 20%; background: linear-gradient(180deg, #2a2a2a, #1a1a1a); border-radius: 80% 50% 0 0 / 100% 60% 0 0; animation: re-hill 25s ease-in-out infinite alternate;
}
.scn-reinforcements-suit-enemy .figure-foreground {
  position: absolute; bottom: 10%; left: 30%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: re-fore 8s ease-in-out infinite;
}
.scn-reinforcements-suit-enemy .figures-distant {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 20px; background: rgba(30,30,40,0.6); border-radius: 40% 40% 20% 20%; filter: blur(3px); animation: re-distant 30s linear infinite;
}
.scn-reinforcements-suit-enemy .flag {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 20px; background: #2a2a1a; border-radius: 10% 10% 0 0; box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: re-flag 4s ease-in-out infinite;
}
@keyframes re-sky { 0% { opacity:0.8; background-position: 0% 0% } 50% { opacity:1; background-position: 10% 3% } 100% { opacity:0.7; background-position: 0% 0% } }
@keyframes re-hill { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes re-fore { 0% { transform: translateX(0) rotate(-1deg) } 20% { transform: translateX(5px) rotate(2deg) } 40% { transform: translateX(10px) rotate(-1deg) } 60% { transform: translateX(15px) rotate(1deg) } 80% { transform: translateX(5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes re-distant { 0% { transform: translateX(-30px) scale(1) } 25% { transform: translateX(-10px) scale(1.02) } 50% { transform: translateX(10px) scale(1) } 75% { transform: translateX(30px) scale(0.98) } 100% { transform: translateX(50px) scale(1) } }
@keyframes re-flag { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(15deg) translateY(-2px) } 50% { transform: rotate(-10deg) translateY(0) } 75% { transform: rotate(20deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }

/* scene: political-element-details (calm dim-interior, desk close-up) */
.scn-political-element-details {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 40%, #0f0b08 100%),
              radial-gradient(ellipse at 50% 60%, #3a2b22 0%, transparent 70%);
}
.scn-political-element-details .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: pe-desk 12s ease-in-out infinite alternate;
}
.scn-political-element-details .paper-left {
  position: absolute; bottom: 26%; left: 16%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform-origin: left bottom;
  animation: pe-paper 14s ease-in-out infinite;
}
.scn-political-element-details .paper-right {
  position: absolute; bottom: 28%; right: 14%; width: 30%; height: 16%;
  background: linear-gradient(45deg, #d4c4a8 0%, #b8a888 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform-origin: right bottom;
  animation: pe-paper 16s ease-in-out infinite reverse;
}
.scn-political-element-details .inkwell {
  position: absolute; bottom: 32%; left: 42%; width: 10%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #2a2a3a 0%, #0c0c1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 3px 8px rgba(0,0,0,.7);
}
.scn-political-element-details .quill {
  position: absolute; bottom: 40%; left: 38%; width: 4%; height: 22%;
  background: linear-gradient(180deg, #e8e0d8 0%, #c0b8a8 100%);
  border-radius: 90% 10% 10% 10% / 30% 10% 90% 70%;
  transform-origin: 50% 100%;
  animation: pe-quill 8s ease-in-out infinite;
}
.scn-political-element-details .candle {
  position: absolute; bottom: 32%; left: 60%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b888 100%);
  border-radius: 20% 20% 4% 4%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  animation: pe-candle 5s ease-in-out infinite;
}
.scn-political-element-details .candle-glow {
  position: absolute; bottom: 50%; left: 56%; width: 14%; height: 14%;
  background: radial-gradient(circle, rgba(255,200,100,.8) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: pe-glow 3s ease-in-out infinite alternate;
}
@keyframes pe-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pe-paper { 0% { transform: rotate(-1deg) translate(0,0); } 50% { transform: rotate(2deg) translate(2px,-1px); } 100% { transform: rotate(-1deg) translate(0,0); } }
@keyframes pe-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes pe-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes pe-glow { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }

/* scene: right-point-of-view (calm dim-interior, window with hands) */
.scn-right-point-of-view {
  background: linear-gradient(180deg, #1c1f2a 0%, #12141c 50%, #0a0c12 100%),
              radial-gradient(ellipse at 50% 80%, #2a3040 0%, transparent 70%);
}
.scn-right-point-of-view .window-frame {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(135deg, #3a322a 0%, #221e18 100%);
  border-radius: 4%; box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: rp-frame 20s ease-in-out infinite alternate;
}
.scn-right-point-of-view .window-view {
  position: absolute; top: 12%; left: 24%; width: 52%; height: 52%;
  background: linear-gradient(180deg, #26354a 0%, #1a2433 30%, #2a3a50 100%);
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: rp-view 30s ease-in-out infinite alternate;
}
.scn-right-point-of-view .windowsill {
  position: absolute; bottom: 24%; left: 18%; width: 64%; height: 6%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-right-point-of-view .hand-left {
  position: absolute; bottom: 26%; left: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b8a896 0%, #7a6a5a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: 50% 100%;
  animation: rp-hand 10s ease-in-out infinite;
}
.scn-right-point-of-view .hand-right {
  position: absolute; bottom: 26%; right: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b8a896 0%, #7a6a5a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: 50% 100%;
  animation: rp-hand 12s ease-in-out infinite reverse;
}
.scn-right-point-of-view .curtain-left {
  position: absolute; top: 8%; left: 10%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: rp-curtain 16s ease-in-out infinite alternate;
}
.scn-right-point-of-view .curtain-right {
  position: absolute; top: 8%; right: 10%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,.4);
  animation: rp-curtain 18s ease-in-out infinite alternate-reverse;
}
@keyframes rp-frame { 0% { transform: scale(1); } 50% { transform: scale(0.99); } 100% { transform: scale(1); } }
@keyframes rp-view { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rp-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes rp-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(0); } }

/* scene: policy-unites-interests (calm dim-interior, table with lamp) */
.scn-policy-unites-interests {
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 40%, #0c0a08 100%),
              radial-gradient(ellipse at 50% 40%, #3a3028 0%, transparent 70%);
}
.scn-policy-unites-interests .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 6% 6% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-policy-unites-interests .lamp {
  position: absolute; bottom: 38%; left: 44%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b8986a 0%, #7a6040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pu-lamp 8s ease-in-out infinite;
}
.scn-policy-unites-interests .light-cone {
  position: absolute; bottom: 28%; left: 36%; width: 28%; height: 16%;
  background: linear-gradient(180deg, rgba(255,200,100,.15) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 80% 80%;
  filter: blur(8px);
  animation: pu-cone 6s ease-in-out infinite alternate;
}
.scn-policy-unites-interests .map {
  position: absolute; bottom: 22%; left: 8%; width: 30%; height: 20%;
  background: linear-gradient(135deg, #c8b898 0%, #a88c6e 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: pu-map 20s ease-in-out infinite;
}
.scn-policy-unites-interests .document {
  position: absolute; bottom: 20%; right: 8%; width: 26%; height: 18%;
  background: linear-gradient(45deg, #d4c4a8 0%, #b8a888 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: right center;
  animation: pu-doc 18s ease-in-out infinite reverse;
}
.scn-policy-unites-interests .compass {
  position: absolute; bottom: 30%; left: 36%; width: 10%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #c0b8a8 0%, #8a7a6a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pu-compass 14s linear infinite;
}
.scn-policy-unites-interests .globe {
  position: absolute; bottom: 26%; right: 36%; width: 12%; height: 12%;
  background: radial-gradient(circle at 40% 40%, #4a7a4a 0%, #2a5a2a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: pu-globe 22s linear infinite;
}
@keyframes pu-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes pu-cone { 0% { opacity: 0.8; transform: scaleX(1); } 100% { opacity: 1; transform: scaleX(1.05); } }
@keyframes pu-map { 0% { transform: rotate(-1deg) translate(0,0); } 50% { transform: rotate(2deg) translate(3px,-1px); } 100% { transform: rotate(-1deg) translate(0,0); } }
@keyframes pu-doc { 0% { transform: rotate(1deg) translate(0,0); } 50% { transform: rotate(-2deg) translate(-2px,1px); } 100% { transform: rotate(1deg) translate(0,0); } }
@keyframes pu-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pu-globe { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(0.98); } 100% { transform: rotate(360deg) scale(1); } }

/* scene: political-point-ruling (calm dim-interior, pedestal with gavel) */
.scn-political-point-ruling {
  background: linear-gradient(180deg, #1a1612 0%, #0f0c0a 50%, #060504 100%),
              radial-gradient(ellipse at 50% 60%, #2a221c 0%, transparent 70%);
}
.scn-political-point-ruling .pedestal {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 6px 16px rgba(0,0,0,.7);
  animation: pr-pedestal 15s ease-in-out infinite alternate;
}
.scn-political-point-ruling .book {
  position: absolute; bottom: 32%; left: 36%; width: 28%; height: 14%;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform-origin: left center;
  animation: pr-book 20s ease-in-out infinite;
}
.scn-political-point-ruling .gavel {
  position: absolute; bottom: 34%; left: 42%; width: 16%; height: 8%;
  background: linear-gradient(180deg, #b8a898 0%, #7a6a5a 100%);
  border-radius: 6px; box-shadow: 0 2px 4px rgba(0,0,0,.6);
  transform-origin: 50% 100%;
  animation: pr-gavel 5s ease-in-out infinite;
}
.scn-political-point-ruling .figure-robe {
  position: absolute; bottom: 8%; left: 40%; width: 20%; height: 44%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pr-robe 12s ease-in-out infinite;
}
.scn-political-point-ruling .column-left {
  position: absolute; bottom: 8%; left: 4%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #3a322a 0%, #1e1a16 100%);
  border-radius: 6px; box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: pr-column 18s ease-in-out infinite alternate;
}
.scn-political-point-ruling .column-right {
  position: absolute; bottom: 8%; right: 4%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #3a322a 0%, #1e1a16 100%);
  border-radius: 6px; box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: pr-column 18s ease-in-out infinite alternate-reverse;
}
.scn-political-point-ruling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
@keyframes pr-pedestal { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pr-book { 0% { transform: skewX(-1deg) translate(0,0); } 50% { transform: skewX(2deg) translate(2px,-1px); } 100% { transform: skewX(-1deg) translate(0,0); } }
@keyframes pr-gavel { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pr-robe { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(1deg) scaleX(0.98); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes pr-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.99); } 100% { transform: scaleY(1); } }

/* ---------------------------------------------------------------- */
/* russian-campaign-last-blow (rc-) */
.scn-russian-campaign-last-blow {
  background: radial-gradient(ellipse at 60% 50%, #3a2a1a 0%, transparent 70%), linear-gradient(180deg, #2a1e12 0%, #1c1410 50%, #0f0b08 100%);
}
.scn-russian-campaign-last-blow .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,40,20,.4) 0%, transparent 50%, rgba(20,10,5,.6) 100%);
  animation: rc-room-pulse 8s ease-in-out infinite alternate;
}
.scn-russian-campaign-last-blow .window {
  position: absolute; top: 8%; left: 70%; width: 22%; height: 35%;
  background: linear-gradient(180deg, rgba(80,60,40,.6) 0%, rgba(30,20,10,.8) 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: rc-window-glow 6s ease-in-out infinite alternate;
}
.scn-russian-campaign-last-blow .map {
  position: absolute; top: 30%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: rc-map-tremble 4s ease-in-out infinite;
}
.scn-russian-campaign-last-blow .table {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
  animation: rc-table-settle 12s ease-in-out infinite alternate;
}
.scn-russian-campaign-last-blow .candle {
  position: absolute; bottom: 40%; left: 47%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px 2px 0 0;
}
.scn-russian-campaign-last-blow .candle::before {
  content: ''; position: absolute; top: -6px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d09030, 0 0 60px 30px rgba(200,120,40,.4);
  animation: rc-flame-flicker 0.8s steps(4) infinite;
}
.scn-russian-campaign-last-blow .figure {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  animation: rc-figure-turn 10s ease-in-out infinite;
}
.scn-russian-campaign-last-blow .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,5,.7) 100%);
  animation: rc-shadow-sway 14s ease-in-out infinite alternate;
}
@keyframes rc-room-pulse { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .6 } }
@keyframes rc-window-glow { 0% { opacity: .5; box-shadow: inset 0 0 15px rgba(0,0,0,.5) } 50% { opacity: .8; box-shadow: inset 0 0 30px rgba(0,0,0,.7) } 100% { opacity: .4; box-shadow: inset 0 0 20px rgba(0,0,0,.6) } }
@keyframes rc-map-tremble { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(1px,-1px) rotate(.5deg) } 50% { transform: translate(-1px,1px) rotate(-.3deg) } 75% { transform: translate(-1px,-1px) rotate(.2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes rc-table-settle { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rc-flame-flicker { 0%,100% { opacity: 1; transform: scale(1) } 25% { opacity: .8; transform: scale(1.1) } 50% { opacity: .9; transform: scale(.95) } 75% { opacity: .7; transform: scale(1.05) } }
@keyframes rc-figure-turn { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(8px) rotate(1deg) } 60% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(2px) rotate(0) } }
@keyframes rc-shadow-sway { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }

/* ---------------------------------------------------------------- */
/* result-cannot-be-determined (rcd-) */
.scn-result-cannot-be-determined {
  background: radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, transparent 60%), linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #0f0b08 100%);
}
.scn-result-cannot-be-determined .study {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(50,35,20,.3) 0%, transparent 40%, rgba(10,8,5,.5) 100%);
  animation: rcd-room-breathe 10s ease-in-out infinite alternate;
}
.scn-result-cannot-be-determined .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 6px 18px rgba(0,0,0,.6);
  animation: rcd-desk-dip 8s ease-in-out infinite alternate;
}
.scn-result-cannot-be-determined .books {
  position: absolute; bottom: 42%; left: 25%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: rcd-books-tilt 12s ease-in-out infinite;
}
.scn-result-cannot-be-determined .candle {
  position: absolute; bottom: 42%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #b09060 0%, #906040 100%);
  border-radius: 2px 2px 0 0;
}
.scn-result-cannot-be-determined .candle::before {
  content: ''; position: absolute; top: -8px; left: -6px; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0b050 0%, #c09030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c09030, 0 0 80px 40px rgba(180,120,30,.3);
  animation: rcd-flame-waver 1.2s steps(4) infinite;
}
.scn-result-cannot-be-determined .hourglass {
  position: absolute; bottom: 32%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rcd-hourglass-shift 20s ease-in-out infinite;
}
.scn-result-cannot-be-determined .papers1 {
  position: absolute; bottom: 18%; left: 20%; width: 25%; height: 12%;
  background: linear-gradient(135deg, #c0b080 0%, #a09060 100%);
  border-radius: 1px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: rcd-paper-rustle 6s ease-in-out infinite alternate;
}
.scn-result-cannot-be-determined .papers2 {
  position: absolute; bottom: 16%; left: 30%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #b0a070 0%, #908050 100%);
  border-radius: 1px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: rcd-paper-rustle 6s ease-in-out infinite alternate-reverse;
}
.scn-result-cannot-be-determined .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,5,.6) 100%);
}
@keyframes rcd-room-breathe { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes rcd-desk-dip { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rcd-books-tilt { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes rcd-flame-waver { 0%,100% { opacity: 1; transform: scale(1) } 25% { opacity: .7; transform: scale(1.15) } 50% { opacity: .9; transform: scale(.9) } 75% { opacity: .8; transform: scale(1.05) } }
@keyframes rcd-hourglass-shift { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes rcd-paper-rustle { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) scale(1.02) } 100% { transform: translateX(-2px) rotate(-1deg) scale(.98) } }

/* ---------------------------------------------------------------- */
/* centre-gravity-principle (cgp-) */
.scn-centre-gravity-principle {
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 60%), linear-gradient(180deg, #3a2a1a 0%, #2a1a10 40%, #1a100a 100%);
}
.scn-centre-gravity-principle .library {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,40,20,.3) 0%, transparent 50%, rgba(10,8,5,.4) 100%);
  animation: cgp-room-fade 12s ease-in-out infinite alternate;
}
.scn-centre-gravity-principle .globe {
  position: absolute; bottom: 30%; left: 42%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 35%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: cgp-globe-spin 20s linear infinite;
}
.scn-centre-gravity-principle .scale {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: cgp-scale-tilt 15s ease-in-out infinite;
}
.scn-centre-gravity-principle .figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  animation: cgp-figure-read 10s ease-in-out infinite;
}
.scn-centre-gravity-principle .lamp {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #c0a070 0%, #906040 100%);
  border-radius: 4px 4px 0 0;
}
.scn-centre-gravity-principle .lamp::before {
  content: ''; position: absolute; top: -10px; left: -6px; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #d0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #c09040, 0 0 100px 50px rgba(180,120,30,.3);
  animation: cgp-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-centre-gravity-principle .shadows {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,5,.5) 100%);
  animation: cgp-shadow-creep 18s ease-in-out infinite alternate;
}
.scn-centre-gravity-principle .bookshelf {
  position: absolute; top: 15%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 4px 0 8px rgba(0,0,0,.5);
  animation: cgp-shelf-sway 22s ease-in-out infinite;
}
@keyframes cgp-room-fade { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes cgp-globe-spin { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes cgp-scale-tilt { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(1px) } }
@keyframes cgp-figure-read { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cgp-lamp-glow { 0% { opacity: .8; box-shadow: 0 0 40px 15px #c09040, 0 0 80px 30px rgba(180,120,30,.2) } 50% { opacity: 1; box-shadow: 0 0 60px 25px #e0b060, 0 0 120px 50px rgba(200,150,60,.4) } 100% { opacity: .9; box-shadow: 0 0 50px 20px #c09040, 0 0 100px 40px rgba(180,120,30,.3) } }
@keyframes cgp-shadow-creep { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes cgp-shelf-sway { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(2px) } }

/* ---------------------------------------------------------------- */
/* concentrated-blows-direction (cbd-) */
.scn-concentrated-blows-direction {
  background: radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%), linear-gradient(180deg, #2a1e12 0%, #1c1410 50%, #0f0b08 100%);
}
.scn-concentrated-blows-direction .tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,40,20,.4) 0%, transparent 50%, rgba(20,10,5,.6) 100%);
  animation: cbd-tent-billow 14s ease-in-out infinite alternate;
}
.scn-concentrated-blows-direction .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
  animation: cbd-table-thump 6s ease-in-out infinite;
}
.scn-concentrated-blows-direction .map {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 28%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: cbd-map-focus 8s ease-in-out infinite alternate;
}
.scn-concentrated-blows-direction .arrows1 {
  position: absolute; bottom: 40%; left: 20%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #a08050 0%, #c0a070 50%, transparent 100%);
  clip-path: polygon(0 40%, 80% 40%, 80% 0, 100% 50%, 80% 100%, 80% 60%, 0 60%);
  animation: cbd-arrow-thrust 5s ease-in-out infinite alternate;
}
.scn-concentrated-blows-direction .arrows2 {
  position: absolute; bottom: 35%; left: 50%; width: 20%; height: 5%;
  background: linear-gradient(90deg, #c0a070 0%, #a08050 100%);
  clip-path: polygon(0 40%, 80% 40%, 80% 0, 100% 50%, 80% 100%, 80% 60%, 0 60%);
  animation: cbd-arrow-thrust 5s ease-in-out infinite alternate-reverse;
}
.scn-concentrated-blows-direction .fist {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 6px 10px rgba(0,0,0,.6);
  animation: cbd-fist-strike 3s ease-in-out infinite;
}
.scn-concentrated-blows-direction .lantern {
  position: absolute; bottom: 38%; left: 60%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c0a070 0%, #906040 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 10px #c09040;
}
.scn-concentrated-blows-direction .lantern::before {
  content: ''; position: absolute; top: -8px; left: -6px; width: 26px; height: 26px;
  background: radial-gradient(circle, #ffd080 0%, #d0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #c09040, 0 0 120px 40px rgba(180,120,30,.3);
  animation: cbd-lantern-swing 4s ease-in-out infinite alternate;
}
.scn-concentrated-blows-direction .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,5,.7) 100%);
  animation: cbd-shadow-lurch 12s ease-in-out infinite alternate;
}
@keyframes cbd-tent-billow { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes cbd-table-thump { 0% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(0) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cbd-map-focus { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes cbd-arrow-thrust { 0% { opacity: .4; transform: translateX(0) scaleX(1) } 50% { opacity: 1; transform: translateX(10px) scaleX(1.2) } 100% { opacity: .4; transform: translateX(0) scaleX(1) } }
@keyframes cbd-fist-strike { 0% { transform: translateY(0) rotate(0) } 40% { transform: translateY(0) rotate(0) } 45% { transform: translateY(-8px) rotate(5deg) scale(1.1) } 55% { transform: translateY(2px) rotate(-5deg) scale(.95) } 70% { transform: translateY(0) rotate(0) scale(1) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cbd-lantern-swing { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes cbd-shadow-lurch { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }

/* Scene 1: defence-of-theatre-communications-important */
.scn-defence-of-theatre-communications-important {
  background:
    linear-gradient(180deg, #d6c9b3 0%, #b8a285 50%, #9c8460 100%),
    radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%);
}
.scn-defence-of-theatre-communications-important .wall {
  position:absolute; inset:0; background:linear-gradient(135deg, #e1d5c0 0%, #c8b89a 100%);
}
.scn-defence-of-theatre-communications-important .window-sash {
  position:absolute; top:12%; left:10%; width:80%; height:40%;
  background:radial-gradient(ellipse at 50% 50%, #aaccee 0%, #8ab4d0 40%, #5a7a90 70%, #3a4a60 100%);
  border-radius:4% 4% 20% 20% / 8% 8% 20% 20%;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.5);
  animation: dtc1-sky 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-communications-important .desk {
  position:absolute; bottom:18%; left:15%; right:15%; height:30%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius:4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: dtc1-desk 15s ease-in-out infinite;
}
.scn-defence-of-theatre-communications-important .map {
  position:absolute; bottom:28%; left:30%; width:50%; height:15%;
  background:linear-gradient(145deg, #d4c9a0 0%, #b8a87a 50%, #9a8a5a 100%);
  border-radius:2%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dtc1-map 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-communications-important .candle {
  position:absolute; bottom:32%; left:20%; width:10px; height:30px;
  background:linear-gradient(180deg, #f0d0a0 0%, #c09060 100%);
  border-radius:30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.4);
  animation: dtc1-candle 3s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-communications-important .c1 { left:20%; }
.scn-defence-of-theatre-communications-important .book {
  position:absolute; bottom:24%; left:55%; width:40px; height:20px;
  background:linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius:4px; box-shadow: 0 2px 4px #2a1a0a; transform:rotate(-8deg);
  animation: dtc1-book 10s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-communications-important .figure.profile {
  position:absolute; bottom:20%; left:40%; width:24px; height:50px;
  background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius:50% 60% 50% 40% / 60% 50% 50% 40%;
  transform:rotate(5deg); transform-origin:bottom center;
  animation: dtc1-figure 6s ease-in-out infinite;
}
.scn-defence-of-theatre-communications-important .inkwell {
  position:absolute; bottom:28%; left:70%; width:16px; height:20px;
  background:radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a0a 100%);
  border-radius:40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
@keyframes dtc1-sky { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes dtc1-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes dtc1-map { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(1.01) } 100% { transform: translateX(2px) scale(1) } }
@keyframes dtc1-candle { 0% { box-shadow:0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,0.3); } 50% { box-shadow:0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,0.5); } 100% { box-shadow:0 0 18px 5px #ffd080, 0 0 36px 10px rgba(255,208,128,0.4); } }
@keyframes dtc1-book { 0% { transform:rotate(-8deg) } 50% { transform:rotate(-6deg) translateY(-1px) } 100% { transform:rotate(-9deg) } }
@keyframes dtc1-figure { 0% { transform:rotate(5deg) } 50% { transform:rotate(3deg) scaleY(1.01) } 100% { transform:rotate(6deg) } }

/* Scene 2: defence-of-theatre-offensive-means */
.scn-defence-of-theatre-offensive-means {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #a89078 50%, #8a7058 100%),
    radial-gradient(ellipse at 50% 0%, #d0b898 0%, transparent 60%);
}
.scn-defence-of-theatre-offensive-means .wall {
  position:absolute; inset:0; background:linear-gradient(135deg, #d8c8b0 0%, #b8a080 100%);
}
.scn-defence-of-theatre-offensive-means .table {
  position:absolute; bottom:15%; left:12%; right:12%; height:35%;
  background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius:6% 6% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: dto2-table 18s ease-in-out infinite;
}
.scn-defence-of-theatre-offensive-means .map-arrows {
  position:absolute; bottom:30%; left:25%; width:50%; height:20%;
  background:linear-gradient(135deg, #b8a070 0%, #9a8050 50%, #706030 100%);
  border-radius:3%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dto2-map 25s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-means .token {
  position:absolute; width:10px; height:10px; border-radius:50%;
  background:radial-gradient(circle, #a08060 0%, #705040 100%);
  box-shadow: 0 0 4px #4a3a2a;
}
.scn-defence-of-theatre-offensive-means .token-a { bottom:32%; left:30%; animation: dto2-token 8s ease-in-out infinite; }
.scn-defence-of-theatre-offensive-means .token-b { bottom:34%; left:55%; animation: dto2-token 8s ease-in-out infinite reverse; }
.scn-defence-of-theatre-offensive-means .candle {
  position:absolute; bottom:35%; left:15%; width:10px; height:28px;
  background:linear-gradient(180deg, #e0a070 0%, #b08040 100%);
  border-radius:30% 30% 10% 10%;
  box-shadow: 0 0 16px 5px #ffc070, 0 0 32px 10px rgba(255,192,112,0.4);
  animation: dto2-candle 3.5s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-means .c2 { left:18%; }
.scn-defence-of-theatre-offensive-means .sword {
  position:absolute; bottom:28%; left:65%; width:4px; height:40px;
  background:linear-gradient(180deg, #c0c0c0 0%, #8a8a8a 50%, #5a5a5a 100%);
  border-radius:1px; transform:rotate(15deg); transform-origin:bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dto2-sword 7s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-means .figure.standing {
  position:absolute; bottom:18%; left:45%; width:22px; height:55px;
  background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:60% 50% 50% 40% / 50% 60% 40% 50%;
  transform-origin:bottom center;
  animation: dto2-figure 5s ease-in-out infinite;
}
@keyframes dto2-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes dto2-map { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(3px) rotate(-1deg) } }
@keyframes dto2-token { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.15) } 100% { opacity:0.8; transform:scale(0.95) } }
@keyframes dto2-candle { 0% { box-shadow:0 0 12px 3px #ffc070, 0 0 24px 6px rgba(255,192,112,0.3); } 50% { box-shadow:0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.5); } 100% { box-shadow:0 0 14px 4px #ffc070, 0 0 28px 8px rgba(255,192,112,0.35); } }
@keyframes dto2-sword { 0% { transform:rotate(15deg) } 50% { transform:rotate(18deg) translateX(2px) } 100% { transform:rotate(13deg) } }
@keyframes dto2-figure { 0% { transform:rotate(-2deg) } 50% { transform:rotate(0deg) scaleY(1.01) } 100% { transform:rotate(1deg) } }

/* Scene 3: defence-of-theatre-offensive-comm */
.scn-defence-of-theatre-offensive-comm {
  background:
    linear-gradient(180deg, #c0b0a0 0%, #a09078 50%, #807060 100%),
    radial-gradient(ellipse at 30% 70%, #d0b8a0 0%, transparent 70%);
}
.scn-defence-of-theatre-offensive-comm .wall {
  position:absolute; inset:0; background:linear-gradient(135deg, #d0c0b0 0%, #b09880 100%);
}
.scn-defence-of-theatre-offensive-comm .window-arch {
  position:absolute; top:10%; left:15%; width:70%; height:45%;
  background:radial-gradient(ellipse at 50% 60%, #aac0d0 0%, #7a9aae 40%, #4a6a7a 70%, #2a4a5a 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(200,220,255,0.4);
  animation: dtc3-sky 14s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-comm .telescope {
  position:absolute; bottom:28%; left:30%; width:30px; height:30px;
  background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:20% 20% 40% 40% / 40% 40% 20% 20%;
  transform:rotate(10deg); transform-origin:bottom left;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dtc3-telescope 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-comm .figure.at-lens {
  position:absolute; bottom:22%; left:38%; width:20px; height:48px;
  background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius:50% 60% 40% 50% / 60% 40% 50% 50%;
  transform:rotate(-5deg); transform-origin:bottom center;
  animation: dtc3-figure 6s ease-in-out infinite;
}
.scn-defence-of-theatre-offensive-comm .desk {
  position:absolute; bottom:15%; left:10%; right:10%; height:28%;
  background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius:6% 6% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: dtc3-desk 16s ease-in-out infinite;
}
.scn-defence-of-theatre-offensive-comm .paper {
  position:absolute; bottom:25%; left:45%; width:30px; height:20px;
  background:linear-gradient(145deg, #c8b89a 0%, #a89072 100%);
  border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform:rotate(3deg);
  animation: dtc3-paper 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-comm .quill {
  position:absolute; bottom:27%; left:55%; width:3px; height:18px;
  background:linear-gradient(180deg, #d0c0b0 0%, #8a7a6a 100%);
  border-radius:20% 20% 10% 10%;
  transform:rotate(-15deg); transform-origin:bottom center;
  box-shadow: 0 0 2px #3a3020;
  animation: dtc3-quill 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-comm .candle {
  position:absolute; bottom:30%; left:20%; width:8px; height:25px;
  background:linear-gradient(180deg, #e0a070 0%, #b08040 100%);
  border-radius:30% 30% 10% 10%;
  box-shadow: 0 0 18px 5px #ffc070, 0 0 36px 10px rgba(255,192,112,0.4);
  animation: dtc3-candle 3.2s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-offensive-comm .c3 { left:22%; }
@keyframes dtc3-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes dtc3-telescope { 0% { transform:rotate(10deg) } 50% { transform:rotate(12deg) translateX(2px) } 100% { transform:rotate(8deg) } }
@keyframes dtc3-figure { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-3deg) scaleY(1.01) } 100% { transform:rotate(-6deg) } }
@keyframes dtc3-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes dtc3-paper { 0% { transform:rotate(3deg) } 50% { transform:rotate(5deg) translateY(-1px) } 100% { transform:rotate(1deg) } }
@keyframes dtc3-quill { 0% { transform:rotate(-15deg) } 50% { transform:rotate(-10deg) scale(1.02) } 100% { transform:rotate(-18deg) } }
@keyframes dtc3-candle { 0% { box-shadow:0 0 14px 4px #ffc070, 0 0 28px 8px rgba(255,192,112,0.3); } 50% { box-shadow:0 0 22px 7px #ffc070, 0 0 44px 14px rgba(255,192,112,0.5); } 100% { box-shadow:0 0 16px 5px #ffc070, 0 0 32px 10px rgba(255,192,112,0.35); } }

/* Scene 4: defence-of-theatre-frederick-example */
.scn-defence-of-theatre-frederick-example {
  background:
    linear-gradient(180deg, #b8a890 0%, #9a8070 50%, #7a6050 100%),
    radial-gradient(ellipse at 50% 30%, #c8b098 0%, transparent 60%);
}
.scn-defence-of-theatre-frederick-example .wall {
  position:absolute; inset:0; background:linear-gradient(135deg, #c8b8a0 0%, #a89078 100%);
}
.scn-defence-of-theatre-frederick-example .frame {
  position:absolute; top:15%; left:25%; width:50%; height:60%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius:10% 10% 8% 8% / 8% 8% 6% 6%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dfe4-frame 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-frederick-example .silhouette {
  position:absolute; top:20%; left:32%; width:36%; height:52%;
  background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 40% 40% 40% / 60% 50% 40% 40%;
  transform:scale(0.95) rotate(2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dfe4-silhouette 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-frederick-example .medal {
  position:absolute; top:45%; left:45%; width:16px; height:16px;
  background:radial-gradient(circle, #d0a070 0%, #a08050 100%);
  border-radius:50%; border:2px solid #6a4a2a;
  animation: dfe4-medal 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-frederick-example .candle {
  position:absolute; bottom:25%; left:20%; width:10px; height:28px;
  background:linear-gradient(180deg, #e0a070 0%, #b08040 100%);
  border-radius:30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #ffc070, 0 0 40px 12px rgba(255,192,112,0.4);
  animation: dfe4-candle 3.8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-frederick-example .c4 { left:22%; }
.scn-defence-of-theatre-frederick-example .book {
  position:absolute; bottom:22%; left:55%; width:35px; height:18px;
  background:linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius:3px; transform:rotate(5deg);
  box-shadow: 0 2px 4px #2a1a0a;
  animation: dfe4-book 12s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-frederick-example .desk {
  position:absolute; bottom:14%; left:12%; right:12%; height:25%;
  background:linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius:6% 6% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-defence-of-theatre-frederick-example .hand {
  position:absolute; bottom:20%; left:50%; width:10px; height:18px;
  background:linear-gradient(180deg, #b09880 0%, #6a5a4a 100%);
  border-radius:40% 40% 20% 20% / 50% 50% 30% 30%;
  transform:rotate(-10deg); transform-origin:bottom left;
  animation: dfe4-hand 7s ease-in-out infinite alternate;
}
@keyframes dfe4-frame { 0% { box-shadow:0 6px 12px rgba(0,0,0,0.4); transform:scale(1) } 50% { box-shadow:0 8px 16px rgba(0,0,0,0.45); transform:scale(1.01) } 100% { box-shadow:0 4px 10px rgba(0,0,0,0.35); transform:scale(0.99) } }
@keyframes dfe4-silhouette { 0% { transform:scale(0.95) rotate(2deg) } 50% { transform:scale(0.97) rotate(1deg) } 100% { transform:scale(0.94) rotate(3deg) } }
@keyframes dfe4-medal { 0% { opacity:0.85; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.9; transform:scale(0.95) } }
@keyframes dfe4-candle { 0% { box-shadow:0 0 15px 4px #ffc070, 0 0 30px 8px rgba(255,192,112,0.3); } 50% { box-shadow:0 0 25px 8px #ffc070, 0 0 50px 16px rgba(255,192,112,0.5); } 100% { box-shadow:0 0 18px 5px #ffc070, 0 0 36px 10px rgba(255,192,112,0.35); } }
@keyframes dfe4-book { 0% { transform:rotate(5deg) } 50% { transform:rotate(7deg) translateY(-1px) } 100% { transform:rotate(3deg) } }
@keyframes dfe4-hand { 0% { transform:rotate(-10deg) } 50% { transform:rotate(-7deg) scaleY(1.02) } 100% { transform:rotate(-12deg) } }

.scn-alexander-peculiar-wars {
  background: linear-gradient(180deg, #7eb6d6 0%, #b8d4e6 25%, #f3e79c 60%, #e8c56a 100%), radial-gradient(ellipse at 70% 20%, #fef9d7 0%, transparent 50%);
}
.scn-alexander-peculiar-wars .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a80b0 0%, transparent 100%);
  animation: apw-sky 8s ease-in-out infinite alternate;
}
.scn-alexander-peculiar-wars .sun {
  position: absolute; top: 12%; left: 72%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #f0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f0c060;
  animation: apw-sun 12s ease-in-out infinite;
}
.scn-alexander-peculiar-wars .horizon {
  position: absolute; bottom: 42%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #9e7a4a, #6b4e2a);
  border-radius: 20% 80% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-alexander-peculiar-wars .army-silhouette {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 20%;
  background:
    radial-gradient(ellipse 40% 100% at 15% 100%, #1a1a1a 0%, transparent 60%),
    radial-gradient(ellipse 30% 100% at 35% 100%, #1a1a1a 0%, transparent 50%),
    radial-gradient(ellipse 25% 100% at 55% 100%, #1a1a1a 0%, transparent 40%),
    radial-gradient(ellipse 20% 100% at 75% 100%, #1a1a1a 0%, transparent 40%);
  filter: blur(1px);
  animation: apw-march 6s ease-in-out infinite;
}
.scn-alexander-peculiar-wars .standard {
  position: absolute; bottom: 44%; left: 48%;
  width: 4px; height: 80px;
  background: #4a2a1a;
  transform-origin: bottom center;
}
.scn-alexander-peculiar-wars .standard::before {
  content: ''; position: absolute; top: 0; left: -14px; width: 32px; height: 24px;
  background: #b84a2a;
  border-radius: 0 0 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: apw-flag 2s ease-in-out infinite alternate;
}
.scn-alexander-peculiar-wars .dust {
  position: absolute; bottom: 45%; left: 15%; right: 15%; height: 10%;
  background: radial-gradient(ellipse 100% 50% at 50% 100%, rgba(180,140,80,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: apw-dust 4s ease-in-out infinite;
}
.scn-alexander-peculiar-wars .spear-line {
  position: absolute; bottom: 48%; left: 10%; right: 10%; height: 2px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 2px, transparent 2px, transparent 12px);
  animation: apw-spear 3s ease-in-out infinite;
}
@keyframes apw-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes apw-sun { 0% { transform: scale(1) translate(0,0) rotate(0deg); box-shadow: 0 0 60px 20px #f0c060 } 50% { transform: scale(1.05) translate(6px,-2px) rotate(5deg); box-shadow: 0 0 100px 40px #f8d070 } 100% { transform: scale(0.95) translate(-3px,3px) rotate(-3deg); box-shadow: 0 0 70px 25px #e8b050 } }
@keyframes apw-march { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(1.02) } 100% { transform: translateX(-5px) scaleY(0.98) } }
@keyframes apw-flag { 0% { transform: rotate(-8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-5deg) } }
@keyframes apw-dust { 0% { opacity: 0.3; transform: translateY(0) scaleX(1) } 50% { opacity: 0.6; transform: translateY(-3px) scaleX(1.1) } 100% { opacity: 0.2; transform: translateY(2px) scaleX(0.9) } }
@keyframes apw-spear { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.3 } }

.scn-feudal-army-restrictions {
  background: linear-gradient(135deg, #2a2018 0%, #3d2e22 40%, #4a3828 100%), radial-gradient(ellipse at 50% 30%, #5a4030 0%, transparent 70%);
}
.scn-feudal-army-restrictions .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2018 0%, #3d2e22 100%);
  box-shadow: inset 0 0 60px 20px rgba(0,0,0,0.5);
  animation: far-wall 12s ease-in-out infinite alternate;
}
.scn-feudal-army-restrictions .window {
  position: absolute; top: 15%; left: 55%; width: 50px; height: 70px;
  background: radial-gradient(ellipse 100% 100% at 50% 50%, #4a5a6a 0%, #2a3a4a 70%, transparent 100%);
  border: 3px solid #5a4a3a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px 10px rgba(100,120,150,0.3), 0 0 40px 15px rgba(70,90,110,0.2);
  animation: far-window 10s ease-in-out infinite alternate;
}
.scn-feudal-army-restrictions .table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-feudal-army-restrictions .armor {
  position: absolute; bottom: 28%; left: 15%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a4030 50%, #2a2018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: far-armor 20s ease-in-out infinite;
}
.scn-feudal-army-restrictions .map {
  position: absolute; bottom: 26%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #c8b090 0%, #a08060 100%);
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: far-map 30s ease-in-out infinite;
}
.scn-feudal-army-restrictions .candle {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c89850 50%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #e8b060;
  animation: far-candle 3s ease-in-out infinite alternate;
}
.scn-feudal-army-restrictions .dust-mote {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,160,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: far-dust 15s linear infinite;
  animation-delay: -3s;
}
@keyframes far-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes far-window { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.02) } 100% { opacity: 0.6; transform: scaleY(0.98) } }
@keyframes far-armor { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes far-map { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-6deg) } }
@keyframes far-candle { 0% { height: 38px; opacity: 0.8; box-shadow: 0 0 20px 8px #e8b060 } 50% { height: 42px; opacity: 1; box-shadow: 0 0 40px 15px #f0c070 } 100% { height: 36px; opacity: 0.9; box-shadow: 0 0 25px 10px #d0a050 } }
@keyframes far-dust { 0% { transform: translate(0,0) scale(0.5); opacity: 0 } 20% { opacity: 0.6 } 80% { opacity: 0.4 } 100% { transform: translate(40px,-30px) scale(1.5); opacity: 0 } }

.scn-condottieri-commercial-towns {
  background: linear-gradient(180deg, #1a2028 0%, #2a3038 50%, #3a3a30 100%), radial-gradient(ellipse at 50% 100%, #4a4a3a 0%, transparent 70%);
}
.scn-condottieri-commercial-towns .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e1418 0%, #1a2228 100%);
  animation: cct-sky 20s ease-in-out infinite alternate;
}
.scn-condottieri-commercial-towns .town-silhouette {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background:
    radial-gradient(ellipse 30% 100% at 10% 100%, #1a1a1a 0%, transparent 60%),
    radial-gradient(ellipse 20% 80% at 25% 100%, #1a1a1a 0%, transparent 50%),
    radial-gradient(ellipse 40% 100% at 45% 100%, #1a1a1a 0%, transparent 60%),
    radial-gradient(ellipse 25% 90% at 65% 100%, #1a1a1a 0%, transparent 50%),
    radial-gradient(ellipse 35% 100% at 85% 100%, #1a1a1a 0%, transparent 60%);
  filter: blur(2px);
  animation: cct-sil 30s ease-in-out infinite;
}
.scn-condottieri-commercial-towns .merchant-figure {
  position: absolute; bottom: 26%; left: 40%;
  width: 16px; height: 44px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cct-walk 8s ease-in-out infinite;
}
.scn-condottieri-commercial-towns .cart {
  position: absolute; bottom: 24%; left: 50%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cct-cart 12s ease-in-out infinite;
}
.scn-condottieri-commercial-towns .tree {
  position: absolute; bottom: 28%; left: 70%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cct-tree 25s ease-in-out infinite;
}
.scn-condottieri-commercial-towns .lantern {
  position: absolute; bottom: 30%; left: 35%;
  width: 8px; height: 12px;
  background: #e8b860;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 12px #e8b860, 0 0 60px 24px rgba(232,184,96,0.4);
  animation: cct-lantern 4s ease-in-out infinite alternate;
}
.scn-condottieri-commercial-towns .coin-pile {
  position: absolute; bottom: 22%; left: 45%;
  width: 20px; height: 10px;
  background: radial-gradient(ellipse 100% 50% at 50% 100%, #c8a040 0%, transparent 100%);
  filter: blur(2px);
  animation: cct-coin 3s ease-in-out infinite;
}
@keyframes cct-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cct-sil { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-2px) scaleX(1.01) } 100% { transform: translateX(2px) scaleX(0.99) } }
@keyframes cct-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cct-cart { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(-2px) rotate(1deg) } }
@keyframes cct-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) scaleX(0.98) } 100% { transform: scaleY(0.98) scaleX(1.02) } }
@keyframes cct-lantern { 0% { box-shadow: 0 0 20px 8px #e8b860, 0 0 40px 16px rgba(232,184,96,0.3); opacity: 0.7 } 50% { box-shadow: 0 0 40px 16px #f0c870, 0 0 80px 32px rgba(240,200,112,0.5); opacity: 1 } 100% { box-shadow: 0 0 25px 10px #d0a050, 0 0 50px 20px rgba(208,160,80,0.35); opacity: 0.8 } }
@keyframes cct-coin { 0% { opacity: 0.3; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-1px) } 100% { opacity: 0.2; transform: translateY(1px) } }

.scn-feudal-condottieri-mercenaries {
  background: linear-gradient(180deg, #1e1814 0%, #2a2018 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 70%);
}
.scn-feudal-condottieri-mercenaries .tent {
  position: absolute; top: 20%; left: 10%; right: 10%; bottom: 30%;
  background:
    linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
    linear-gradient(45deg, #5a4a3a 0%, transparent 50%);
  clip-path: polygon(50% 0%, 100% 80%, 100% 100%, 0% 100%, 0% 80%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: fcm-tent 20s ease-in-out infinite alternate;
}
.scn-feudal-condottieri-mercenaries .table {
  position: absolute; bottom: 28%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.scn-feudal-condottieri-mercenaries .map {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #b8a080 0%, #988060 100%);
  border-radius: 6px;
  transform: rotate(8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fcm-map 35s ease-in-out infinite;
}
.scn-feudal-condottieri-mercenaries .coin-pile {
  position: absolute; bottom: 26%; left: 45%; width: 24px; height: 10px;
  background: radial-gradient(ellipse 100% 50% at 50% 100%, #c8a040 0%, transparent 100%);
  filter: blur(1px);
  animation: fcm-coin 5s ease-in-out infinite;
}
.scn-feudal-condottieri-mercenaries .mercenary-figure {
  position: absolute; bottom: 24%; left: 55%;
  width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fcm-stand 8s ease-in-out infinite;
}
.scn-feudal-condottieri-mercenaries .candle {
  position: absolute; bottom: 32%; left: 20%;
  width: 5px; height: 30px;
  background: linear-gradient(180deg, #f0c070 0%, #c09040 50%, #5a3a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 24px 8px #e8b060;
  animation: fcm-candle 3s ease-in-out infinite alternate;
}
.scn-feudal-condottieri-mercenaries .dagger {
  position: absolute; bottom: 25%; left: 60%; width: 14px; height: 2px;
  background: #8a7a6a;
  transform: rotate(30deg);
  animation: fcm-dagger 15s ease-in-out infinite;
}
@keyframes fcm-tent { 0% { clip-path: polygon(50% 0%, 100% 80%, 100% 100%, 0% 100%, 0% 80%); transform: scaleY(1) } 50% { clip-path: polygon(50% 0%, 100% 78%, 100% 100%, 0% 100%, 0% 78%); transform: scaleY(1.01) } 100% { clip-path: polygon(50% 0%, 100% 82%, 100% 100%, 0% 100%, 0% 82%); transform: scaleY(0.99) } }
@keyframes fcm-map { 0% { transform: rotate(8deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(6deg) } }
@keyframes fcm-coin { 0% { opacity: 0.4; transform: translateY(0) scale(1) } 50% { opacity: 0.8; transform: translateY(-1px) scale(1.05) } 100% { opacity: 0.3; transform: translateY(1px) scale(0.95) } }
@keyframes fcm-stand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fcm-candle { 0% { height: 28px; opacity: 0.8; box-shadow: 0 0 18px 6px #e8b060 } 50% { height: 32px; opacity: 1; box-shadow: 0 0 30px 12px #f0c070 } 100% { height: 26px; opacity: 0.9; box-shadow: 0 0 22px 8px #d0a050 } }
@keyframes fcm-dagger { 0% { transform: rotate(30deg) translateX(0) } 50% { transform: rotate(32deg) translateX(1px) } 100% { transform: rotate(28deg) translateX(-1px) } }

.scn-minor-object-levels-plan {
  background:
    linear-gradient(180deg, #0f0d1a 0%, #1a1728 40%, #231f35 100%),
    radial-gradient(ellipse at 30% 60%, #2a2540 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-minor-object-levels-plan .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0b0914 0%, #1c1830 100%);
  animation: lop-pulse 12s ease-in-out infinite;
}
.scn-minor-object-levels-plan .bg-mid {
  position: absolute; inset: 10% 15% 15% 10%;
  background: linear-gradient(180deg, #2f2848 0%, #1f1a30 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-minor-object-levels-plan .desk {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #3d2e1c 0%, #2a1f12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-minor-object-levels-plan .candle {
  position: absolute; bottom: 38%; left: 35%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8d4a0 0%, #b89a60 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  animation: lop-candle 5s ease-in-out infinite;
}
.scn-minor-object-levels-plan .flame {
  position: absolute; bottom: 54%; left: 35%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffdd80 0%, #ffb040 50%, rgba(255,160,60,0) 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,180,60,.6), 0 0 40px 16px rgba(255,140,40,.3);
  animation: lop-flicker 0.8s ease-in-out infinite alternate;
}
.scn-minor-object-levels-plan .paper-1 {
  position: absolute; bottom: 14%; left: 18%; width: 28px; height: 20px;
  background: linear-gradient(135deg, #d4c4a0 0%, #bface0 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: lop-paper1 10s ease-in-out infinite;
}
.scn-minor-object-levels-plan .paper-2 {
  position: absolute; bottom: 12%; right: 22%; width: 34px; height: 22px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b8a880 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: lop-paper2 14s ease-in-out infinite reverse;
}
.scn-minor-object-levels-plan .paper-3 {
  position: absolute; bottom: 16%; left: 52%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #cdbda0 0%, #b8a880 100%);
  border-radius: 2px;
  transform: rotate(-18deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: lop-paper3 18s ease-in-out infinite;
}
.scn-minor-object-levels-plan .shadow-rod {
  position: absolute; bottom: 58%; left: 32%; width: 2px; height: 40px;
  background: rgba(0,0,0,.5);
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: lop-shadow 6s ease-in-out infinite;
}

@keyframes lop-pulse { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes lop-candle { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) translateY(-1px) } }
@keyframes lop-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9 } 50% { transform: scaleY(1.3) scaleX(0.8); opacity: 1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.8 } }
@keyframes lop-paper1 { 0%,100% { transform: rotate(-8deg) translate(0,0) } 25% { transform: rotate(-5deg) translate(3px,-2px) } 75% { transform: rotate(-10deg) translate(-2px,1px) } }
@keyframes lop-paper2 { 0%,100% { transform: rotate(12deg) translate(0,0) } 33% { transform: rotate(15deg) translate(-4px,2px) } 66% { transform: rotate(9deg) translate(3px,-1px) } }
@keyframes lop-paper3 { 0%,100% { transform: rotate(-18deg) translate(0,0) } 40% { transform: rotate(-20deg) translate(5px,3px) } 80% { transform: rotate(-15deg) translate(-2px,0) } }
@keyframes lop-shadow { 0%,100% { transform: rotate(25deg) } 50% { transform: rotate(30deg) scaleY(1.1) } }

.scn-limited-object-defence {
  background:
    linear-gradient(180deg, #0e1420 0%, #1a2438 40%, #1c2a40 100%),
    radial-gradient(ellipse at 70% 50%, #1f334a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-limited-object-defence .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0f1a 0%, #161f30 100%);
  animation: lod-bgp 20s ease-in-out infinite alternate;
}
.scn-limited-object-defence .bg-mid {
  position: absolute; inset: 15% 10% 20% 10%;
  background: linear-gradient(180deg, #2a3850 0%, #1c2638 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-limited-object-defence .window-sash {
  position: absolute; top: 12%; left: 60%; width: 24%; height: 30%;
  background: linear-gradient(135deg, #3a4a60 0%, #2a3040 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.4);
}
.scn-limited-object-defence .moon-beam {
  position: absolute; top: 20%; left: 62%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(180,200,240,.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: lod-moon 15s ease-in-out infinite;
}
.scn-limited-object-defence .barrier {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: lod-barrier 8s ease-in-out infinite;
}
.scn-limited-object-defence .figure-sit {
  position: absolute; bottom: 24%; left: 28%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lod-figure 6s ease-in-out infinite alternate;
}
.scn-limited-object-defence .lamp-dim {
  position: absolute; bottom: 32%; right: 12%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 3px;
  box-shadow: 0 0 12px 4px rgba(160,120,60,.3);
  animation: lod-lamp 4s ease-in-out infinite alternate;
}

@keyframes lod-bgp { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes lod-moon { 0% { opacity: 0.25; transform: scaleX(1) } 50% { opacity: 0.4; transform: scaleX(1.2) } 100% { opacity: 0.3; transform: scaleX(0.9) } }
@keyframes lod-barrier { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lod-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lod-lamp { 0% { box-shadow: 0 0 8px 2px rgba(160,120,60,.2); opacity: 0.8 } 50% { box-shadow: 0 0 16px 6px rgba(160,120,60,.4); opacity: 1 } 100% { box-shadow: 0 0 10px 3px rgba(160,120,60,.25); opacity: 0.85 } }

.scn-exhaustion-not-sufficient {
  background:
    linear-gradient(180deg, #0f0e1a 0%, #1a1828 40%, #2a2238 100%),
    radial-gradient(ellipse at 40% 80%, #2a1e30 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-exhaustion-not-sufficient .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0812 0%, #181628 100%);
  animation: ens-bg 15s ease-in-out infinite alternate;
}
.scn-exhaustion-not-sufficient .wall {
  position: absolute; inset: 10% 12% 20% 8%;
  background: linear-gradient(180deg, #2a2440 0%, #1e1a30 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 25px rgba(0,0,0,.5);
}
.scn-exhaustion-not-sufficient .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e18 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-exhaustion-not-sufficient .figure-slump {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #1a1a26 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-15deg);
  animation: ens-figure 8s ease-in-out infinite alternate;
}
.scn-exhaustion-not-sufficient .lantern-fall {
  position: absolute; bottom: 14%; left: 50%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 3px;
  transform: rotate(30deg);
  box-shadow: 0 0 15px 6px rgba(180,140,80,.3);
  animation: ens-lantern 5s ease-in-out infinite;
}
.scn-exhaustion-not-sufficient .weapon-drop {
  position: absolute; bottom: 16%; left: 25%; width: 22px; height: 4px;
  background: linear-gradient(90deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  transform: rotate(-40deg);
  animation: ens-weapon 12s ease-in-out infinite;
}
.scn-exhaustion-not-sufficient .shadow-pool {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: ens-shadow 9s ease-in-out infinite;
}

@keyframes ens-bg { 0% { opacity: 0.75 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ens-figure { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-18deg) translateX(-2px) } }
@keyframes ens-lantern { 0% { transform: rotate(30deg) scaleY(1) } 25% { transform: rotate(28deg) scaleY(1.05) } 75% { transform: rotate(32deg) scaleY(0.95) } 100% { transform: rotate(30deg) scaleY(1) } }
@keyframes ens-weapon { 0% { transform: rotate(-40deg) } 33% { transform: rotate(-42deg) translateX(2px) } 66% { transform: rotate(-38deg) translateX(-1px) } 100% { transform: rotate(-40deg) } }
@keyframes ens-shadow { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.2) } 100% { opacity: 0.5; transform: scaleY(0.9) } }

.scn-waiting-for-improvement {
  background:
    linear-gradient(180deg, #0c111c 0%, #141a28 40%, #1a2230 100%),
    radial-gradient(ellipse at 20% 40%, #182438 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-waiting-for-improvement .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #080c14 0%, #121824 100%);
  animation: wfi-bg 18s ease-in-out infinite alternate;
}
.scn-waiting-for-improvement .window-arch {
  position: absolute; top: 12%; left: 50%; width: 20%; height: 34%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a3448 0%, #1a2230 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-waiting-for-improvement .moon-shaft {
  position: absolute; top: 20%; left: 50%; width: 4%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(180,200,240,.25) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: wfi-moon 20s ease-in-out infinite;
}
.scn-waiting-for-improvement .figure-stand {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a26 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wfi-figure 10s ease-in-out infinite alternate;
}
.scn-waiting-for-improvement .chair {
  position: absolute; bottom: 12%; left: 65%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: wfi-chair 14s ease-in-out infinite;
}
.scn-waiting-for-improvement .lamp-low {
  position: absolute; bottom: 10%; left: 30%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(160,120,60,.2);
  animation: wfi-lamp 6s ease-in-out infinite alternate;
}

@keyframes wfi-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes wfi-moon { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(1) } 50% { opacity: 0.35; transform: translateX(-50%) scaleY(1.15) } 100% { opacity: 0.25; transform: translateX(-50%) scaleY(0.9) } }
@keyframes wfi-figure { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg) } }
@keyframes wfi-chair { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes wfi-lamp { 0% { box-shadow: 0 0 6px 2px rgba(160,120,60,.15); opacity: 0.7 } 50% { box-shadow: 0 0 14px 5px rgba(160,120,60,.35); opacity: 1 } 100% { box-shadow: 0 0 8px 3px rgba(160,120,60,.2); opacity: 0.8 } }

.scn-bulow-holland-1814 {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a14 40%, #1a0e0a 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%);
}
.scn-bulow-holland-1814 .bg {
  position:absolute; inset:0; background: #1a1210; opacity:.6; animation: bh-bg 10s ease-in-out infinite alternate;
}
.scn-bulow-holland-1814 .wall {
  position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(0deg, #2a1e18 0%, #3a2a20 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-bulow-holland-1814 .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(0deg, #4a3025 0%, #3a2018 100%); border-radius: 4%;
}
.scn-bulow-holland-1814 .map {
  position:absolute; bottom:28%; left:25%; right:25%; height:12%; background: linear-gradient(135deg, #5a4030 0%, #7a5a40 50%, #5a4030 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: bh-map 8s ease-in-out infinite alternate;
}
.scn-bulow-holland-1814 .lantern {
  position:absolute; bottom:38%; left:20%; width:16px; height:24px; background: radial-gradient(circle, #ffd080 0%, #b06030 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #b06030, 0 0 60px 15px rgba(176,96,48,.4); animation: bh-lantern 4s ease-in-out infinite alternate;
}
.scn-bulow-holland-1814 .general {
  position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bh-general 6s ease-in-out infinite;
}
.scn-bulow-holland-1814 .candle {
  position:absolute; bottom:36%; left:28%; width:6px; height:14px; background: linear-gradient(0deg, #a07040 0%, #d0a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #ffd080; animation: bh-candle 2s ease-in-out infinite alternate;
}
.scn-bulow-holland-1814 .shadow {
  position:absolute; bottom:16%; left:35%; right:35%; height:4%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: bh-shadow 6s ease-in-out infinite alternate;
}

@keyframes bh-bg {
  0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.55; }
}
@keyframes bh-map {
  0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-4deg) scale(1); }
}
@keyframes bh-lantern {
  0% { box-shadow: 0 0 20px 4px #b06030, 0 0 40px 10px rgba(176,96,48,.3); opacity:.8; }
  50% { box-shadow: 0 0 40px 10px #ffd080, 0 0 80px 20px rgba(255,208,128,.5); opacity:1; }
  100% { box-shadow: 0 0 25px 6px #b06030, 0 0 50px 12px rgba(176,96,48,.4); opacity:.85; }
}
@keyframes bh-general {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(3px) rotate(-1deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes bh-candle {
  0% { transform: scaleY(1); opacity:.8; }
  50% { transform: scaleY(1.1); opacity:1; }
  100% { transform: scaleY(0.95); opacity:.7; }
}
@keyframes bh-shadow {
  0% { transform: scaleX(1); opacity:.4; }
  50% { transform: scaleX(1.05); opacity:.6; }
  100% { transform: scaleX(0.95); opacity:.4; }
}

/* Scene 2 */
.scn-grounds-division-forces {
  background: linear-gradient(180deg, #2a201c 0%, #3a2a24 50%, #1e1410 100%), radial-gradient(ellipse at 50% 20%, #4a3428 0%, transparent 70%);
}
.scn-grounds-division-forces .bg {
  position:absolute; inset:0; background: #2a201c; opacity:.5; animation: gd-bg 12s ease-in-out infinite alternate;
}
.scn-grounds-division-forces .wall {
  position:absolute; bottom:35%; left:0; right:0; height:65%; background: linear-gradient(0deg, #3a2a22 0%, #2a1e18 100%); border-radius: 0 0 20% 20% / 0 0 8% 8%;
}
.scn-grounds-division-forces .desk {
  position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(0deg, #4a3428 0%, #3a241c 100%); border-radius: 3%;
}
.scn-grounds-division-forces .book-left {
  position:absolute; bottom:30%; left:20%; width:14%; height:10%; background: linear-gradient(0deg, #5a4030 0%, #3a2820 100%); border-radius: 2px; transform: rotate(-5deg); animation: gd-book 15s ease-in-out infinite alternate;
}
.scn-grounds-division-forces .book-right {
  position:absolute; bottom:32%; right:20%; width:12%; height:8%; background: linear-gradient(0deg, #6a4a38 0%, #4a3020 100%); border-radius: 2px; transform: rotate(8deg); animation-delay: -5s; animation: gd-book 15s ease-in-out infinite alternate;
}
.scn-grounds-division-forces .lamp {
  position:absolute; bottom:40%; left:45%; width:12px; height:18px; background: radial-gradient(circle, #e0c0a0 0%, #a08060 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c0a080, 0 0 40px 12px rgba(192,160,128,.3); animation: gd-lamp 6s ease-in-out infinite alternate;
}
.scn-grounds-division-forces .chair {
  position:absolute; bottom:17%; left:60%; width:20px; height:25px; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: gd-chair 10s ease-in-out infinite;
}
.scn-grounds-division-forces .paper {
  position:absolute; bottom:22%; left:35%; width:15%; height:8%; background: linear-gradient(135deg, #7a5a40 0%, #9a7a5a 50%, #6a4a30 100%); border-radius: 1px; transform: rotate(2deg); box-shadow: 0 1px 4px rgba(0,0,0,.4); animation: gd-paper 8s ease-in-out infinite alternate;
}

@keyframes gd-bg {
  0% { opacity:.45; } 50% { opacity:.6; } 100% { opacity:.5; }
}
@keyframes gd-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes gd-lamp {
  0% { box-shadow: 0 0 15px 4px #c0a080, 0 0 30px 8px rgba(192,160,128,.2); opacity:.85; }
  50% { box-shadow: 0 0 25px 8px #e0c0a0, 0 0 50px 16px rgba(224,192,160,.4); opacity:1; }
  100% { box-shadow: 0 0 18px 5px #c0a080, 0 0 35px 10px rgba(192,160,128,.3); opacity:.9; }
}
@keyframes gd-chair {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes gd-paper {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.02); }
  100% { transform: rotate(1deg) scale(1); }
}

/* Scene 3 */
.scn-separate-lines-allied-states {
  background: linear-gradient(180deg, #1e1816 0%, #2e221e 40%, #1a1210 100%), radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%);
}
.scn-separate-lines-allied-states .bg {
  position:absolute; inset:0; background: #1e1816; opacity:.5; animation: sl-bg 14s ease-in-out infinite alternate;
}
.scn-separate-lines-allied-states .wall {
  position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(0deg, #3a2a22 0%, #2a1e1a 100%); border-radius: 0 0 25% 25% / 0 0 12% 12%;
}
.scn-separate-lines-allied-states .table {
  position:absolute; bottom:10%; left:12%; right:12%; height:22%; background: linear-gradient(0deg, #4a3428 0%, #3a241c 100%); border-radius: 4%;
}
.scn-separate-lines-allied-states .map {
  position:absolute; bottom:20%; left:20%; right:20%; height:14%; background: linear-gradient(135deg, #5a4030 0%, #7a5a40 50%, #5a4030 100%); border-radius: 2px; transform: perspective(300px) rotateX(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: sl-map 12s ease-in-out infinite alternate;
}
.scn-separate-lines-allied-states .figure-a {
  position:absolute; bottom:14%; left:30%; width:22px; height:38px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-fig-a 7s ease-in-out infinite;
}
.scn-separate-lines-allied-states .figure-b {
  position:absolute; bottom:12%; right:30%; width:22px; height:38px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-fig-b 7s ease-in-out infinite alternate;
}
.scn-separate-lines-allied-states .lamp {
  position:absolute; bottom:30%; left:45%; width:14px; height:20px; background: radial-gradient(circle, #d0b090 0%, #a08060 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 18px 5px #c0a080, 0 0 36px 10px rgba(192,160,128,.3); animation: sl-lamp 8s ease-in-out infinite alternate;
}
.scn-separate-lines-allied-states .line-1 {
  position:absolute; bottom:18%; left:35%; right:50%; height:1%; background: #b08050; border-radius: 50%; box-shadow: 0 0 4px 2px #b08050; transform: rotate(-15deg); animation: sl-line1 10s ease-in-out infinite alternate;
}
.scn-separate-lines-allied-states .line-2 {
  position:absolute; bottom:16%; left:50%; right:35%; height:1%; background: #b08050; border-radius: 50%; box-shadow: 0 0 4px 2px #b08050; transform: rotate(15deg); animation: sl-line2 10s ease-in-out infinite alternate;
}

@keyframes sl-bg {
  0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.45; }
}
@keyframes sl-map {
  0% { transform: perspective(300px) rotateX(10deg) scale(1); }
  50% { transform: perspective(300px) rotateX(13deg) scale(1.01); }
  100% { transform: perspective(300px) rotateX(8deg) scale(1); }
}
@keyframes sl-fig-a {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(0) scaleY(1.01); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes sl-fig-b {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(0) scaleY(1.01); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sl-lamp {
  0% { box-shadow: 0 0 16px 4px #c0a080, 0 0 32px 8px rgba(192,160,128,.3); opacity:.8; }
  50% { box-shadow: 0 0 24px 8px #e0c0a0, 0 0 48px 14px rgba(224,192,160,.5); opacity:1; }
  100% { box-shadow: 0 0 20px 5px #c0a080, 0 0 36px 10px rgba(192,160,128,.35); opacity:.85; }
}
@keyframes sl-line1 {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(2px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes sl-line2 {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(-2px); }
  100% { transform: rotate(20deg) translateX(0); }
}

/* Scene 4 */
.scn-convergent-attack-results {
  background: linear-gradient(180deg, #1a1210 0%, #2a1c18 50%, #120a08 100%), radial-gradient(ellipse at 50% 40%, #3a241c 0%, transparent 60%);
}
.scn-convergent-attack-results .bg {
  position:absolute; inset:0; background: #1a1210; opacity:.5; animation: ca-bg 8s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #2a1c18 0%, #1a1210 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-convergent-attack-results .table {
  position:absolute; bottom:20%; left:15%; right:15%; height:15%; background: linear-gradient(0deg, #3a2a1e 0%, #2a1a14 100%); border-radius: 4%;
}
.scn-convergent-attack-results .map {
  position:absolute; bottom:25%; left:30%; right:30%; height:10%; background: linear-gradient(135deg, #4a3428 0%, #6a4a38 50%, #4a3428 100%); border-radius: 2px; transform: perspective(200px) rotateX(15deg); box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: ca-map 6s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .point {
  position:absolute; bottom:28%; left:50%; width:10px; height:10px; margin-left:-5px; background: radial-gradient(circle, #c08050 0%, #8a5020 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #c08050; animation: ca-point 3s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .arrow-1 {
  position:absolute; bottom:20%; left:40%; right:auto; width:15%; height:2%; background: linear-gradient(90deg, #b07040 0%, #d09060 100%); border-radius: 50%; transform: rotate(-20deg); transform-origin: left center; box-shadow: 0 0 4px 1px #b07040; animation: ca-arrow1 4s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .arrow-2 {
  position:absolute; bottom:20%; left:auto; right:40%; width:15%; height:2%; background: linear-gradient(270deg, #b07040 0%, #d09060 100%); border-radius: 50%; transform: rotate(20deg); transform-origin: right center; box-shadow: 0 0 4px 1px #b07040; animation: ca-arrow2 4s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .arrow-3 {
  position:absolute; bottom:25%; left:50%; width:2%; height:10%; background: linear-gradient(0deg, #b07040 0%, #d09060 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 4px 1px #b07040; animation: ca-arrow3 4s ease-in-out infinite alternate;
}
.scn-convergent-attack-results .shadow {
  position:absolute; bottom:14%; left:40%; right:40%; height:3%; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(3px); animation: ca-shadow 4s ease-in-out infinite alternate;
}

@keyframes ca-bg {
  0% { opacity:.4; } 50% { opacity:.65; } 100% { opacity:.45; }
}
@keyframes ca-map {
  0% { transform: perspective(200px) rotateX(15deg) scale(1); }
  50% { transform: perspective(200px) rotateX(18deg) scale(1.02); }
  100% { transform: perspective(200px) rotateX(12deg) scale(1); }
}
@keyframes ca-point {
  0% { box-shadow: 0 0 8px 2px #c08050; transform: scale(1); }
  50% { box-shadow: 0 0 18px 6px #e0a070; transform: scale(1.3); }
  100% { box-shadow: 0 0 10px 3px #c08050; transform: scale(0.9); }
}
@keyframes ca-arrow1 {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.1); }
  100% { transform: rotate(-25deg) scaleX(0.95); }
}
@keyframes ca-arrow2 {
  0% { transform: rotate(20deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(25deg) scaleX(0.95); }
}
@keyframes ca-arrow3 {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.2); }
  100% { transform: translateX(-50%) scaleY(0.9); }
}
@keyframes ca-shadow {
  0% { transform: scaleX(1); opacity:.5; }
  50% { transform: scaleX(1.1); opacity:.7; }
  100% { transform: scaleX(0.9); opacity:.5; }
}

/* Scene: width-of-front-obviating (calm, dim-interior) */
.scn-width-of-front-obviating {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2c3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 100%, #2c2c3e 0%, transparent 80%);
}
.scn-width-of-front-obviating .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 80%, rgba(80,60,40,.15) 0%, transparent 70%);
  animation: wfo-ambient 10s ease-in-out infinite alternate;
}
.scn-width-of-front-obviating .window-frame {
  position: absolute; top: 15%; left: 10%; width: 45%; height: 55%;
  background: linear-gradient(135deg, #3a3a4e 0%, #2a2a3e 100%);
  border: 8px solid #4a4a5e;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-width-of-front-obviating .horizon {
  position: absolute; top: 30%; left: 14%; width: 38%; height: 30%;
  background: linear-gradient(180deg, #4a5a5a 0%, #5a6a5a 50%, #6a7a6a 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(4px);
  animation: wfo-horizon 30s ease-in-out infinite alternate;
}
.scn-width-of-front-obviating .table {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 0 0;
  transform: perspective(600px) rotateX(40deg);
  transform-origin: bottom center;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
}
.scn-width-of-front-obviating .candle {
  position: absolute; bottom: 26%; left: 45%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-width-of-front-obviating .flame {
  position: absolute; bottom: 26%; left: 45%; width: 10px; height: 18px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px rgba(192,128,64,.4);
  animation: wfo-flame 2s ease-in-out infinite alternate;
}
.scn-width-of-front-obviating .figure-seated {
  position: absolute; bottom: 14%; left: 35%; width: 24px; 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: wfo-breathe 4s ease-in-out infinite;
}
.scn-width-of-front-obviating .shelf {
  position: absolute; top: 8%; right: 8%; width: 20%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
@keyframes wfo-ambient { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .75 } }
@keyframes wfo-horizon { 0% { background-position: 0 0 } 50% { background-position: 10% 0 } 100% { background-position: -10% 0 } }
@keyframes wfo-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg) } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(.9) rotate(-2deg) } }
@keyframes wfo-breathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }

/* Scene: chance-decision-points (tense, dim-interior) */
.scn-chance-decision-points {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 80%);
}
.scn-chance-decision-points .war-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(60,40,30,.2) 0%, transparent 50%, rgba(0,0,0,.4) 100%);
  animation: cdp-shadow 8s ease-in-out infinite alternate;
}
.scn-chance-decision-points .mapping-table {
  position: absolute; bottom: 12%; left: 10%; width: 75%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  transform: perspective(800px) rotateX(30deg);
  transform-origin: bottom center;
  box-shadow: 0 -12px 25px rgba(0,0,0,.6);
}
.scn-chance-decision-points .battle-map {
  position: absolute; bottom: 18%; left: 15%; width: 65%; height: 16%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 50%, #4a3a1a 100%);
  border-radius: 2% 2% 1% 1%;
  box-shadow: inset 0 0 15px rgba(0,0,0,.5);
  animation: cdp-map 20s linear infinite alternate;
}
.scn-chance-decision-points .lamp {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 -2px 10px rgba(0,0,0,.5);
}
.scn-chance-decision-points .lamp-glow {
  position: absolute; bottom: 40%; left: 50%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,180,100,.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 50%);
  animation: cdp-glows 3s ease-in-out infinite alternate;
}
.scn-chance-decision-points .officer-left {
  position: absolute; bottom: 14%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdp-lurch 5s ease-in-out infinite;
}
.scn-chance-decision-points .officer-right {
  position: absolute; bottom: 14%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdp-lurch 5s ease-in-out infinite reverse;
}
.scn-chance-decision-points .pointer {
  position: absolute; bottom: 28%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: cdp-point 4s ease-in-out infinite alternate;
}
@keyframes cdp-shadow { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .5 } }
@keyframes cdp-map { 0% { background-position: 0 0 } 50% { background-position: 5% 2% } 100% { background-position: -5% -2% } }
@keyframes cdp-glows { 0% { opacity: .6; transform: translate(-50%, 50%) scale(1) } 50% { opacity: .9; transform: translate(-50%, 50%) scale(1.1) } 100% { opacity: .5; transform: translate(-50%, 50%) scale(.95) } }
@keyframes cdp-lurch { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes cdp-point { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-25deg) } }

/* Scene: bonaparte-russia-wittgenstein (tense, dim-interior) */
.scn-bonaparte-russia-wittgenstein {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 80%);
}
.scn-bonaparte-russia-wittgenstein .tent-interior {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 80%, rgba(120,80,40,.15) 0%, transparent 60%);
  animation: brw-shimmer 12s ease-in-out infinite alternate;
}
.scn-bonaparte-russia-wittgenstein .camp-table {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  transform: perspective(600px) rotateX(35deg);
  transform-origin: bottom center;
  box-shadow: 0 -10px 20px rgba(0,0,0,.5);
}
.scn-bonaparte-russia-wittgenstein .russian-map {
  position: absolute; bottom: 16%; left: 20%; width: 60%; height: 14%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2% 2% 1% 1%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: brw-map 25s linear infinite alternate;
}
.scn-bonaparte-russia-wittgenstein .candle-stick {
  position: absolute; bottom: 30%; left: 35%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-bonaparte-russia-wittgenstein .candle-flame {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 24px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 25px 8px rgba(192,128,64,.3);
  animation: brw-flame 1.5s ease-in-out infinite alternate;
}
.scn-bonaparte-russia-wittgenstein .general-silhouette {
  position: absolute; bottom: 10%; left: 50%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: brw-index 6s ease-in-out infinite;
}
.scn-bonaparte-russia-wittgenstein .pin-wittgenstein {
  position: absolute; bottom: 20%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #7a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,85,61,.5);
  animation: brw-pulse 2s ease-in-out infinite alternate;
}
.scn-bonaparte-russia-wittgenstein .pin-napoleon {
  position: absolute; bottom: 22%; right: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a0461a 0%, #602010 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,.5);
  animation: brw-pulse 2s ease-in-out infinite alternate-reverse;
}
@keyframes brw-shimmer { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .65 } }
@keyframes brw-map { 0% { background-position: 0% 0% } 50% { background-position: 3% 2% } 100% { background-position: -3% -2% } }
@keyframes brw-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg) } 50% { transform: translateX(-50%) scaleY(1.3) rotate(3deg) } 100% { transform: translateX(-50%) scaleY(.85) rotate(-3deg) } }
@keyframes brw-index { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes brw-pulse { 0% { transform: scale(1); opacity: .7 } 100% { transform: scale(1.4); opacity: 1 } }

/* Scene: ulm-ratisbon-deciding-italy (tense, dim-interior) */
.scn-ulm-ratisbon-deciding-italy {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 80%);
}
.scn-ulm-ratisbon-deciding-italy .dim-chamber {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 70%, rgba(100,60,30,.1) 0%, transparent 70%);
  animation: urd-amb 14s ease-in-out infinite alternate;
}
.scn-ulm-ratisbon-deciding-italy .europe-map {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 3% 3% 1% 1%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: urd-pan 30s linear infinite alternate;
}
.scn-ulm-ratisbon-deciding-italy .arrow-ulm {
  position: absolute; bottom: 24%; left: 30%; width: 60px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #a0461a 40%, transparent 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: urd-arrow 8s ease-in-out infinite alternate;
}
.scn-ulm-ratisbon-deciding-italy .arrow-ratisbon {
  position: absolute; bottom: 20%; left: 45%; width: 70px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #a0461a 40%, transparent 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: left center;
  animation: urd-arrow 8s ease-in-out infinite alternate-reverse;
}
.scn-ulm-ratisbon-deciding-italy .marker-italy {
  position: absolute; bottom: 16%; left: 65%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8553d 0%, #7a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(200,85,61,.3);
  animation: urd-marker 4s ease-in-out infinite alternate;
}
.scn-ulm-ratisbon-deciding-italy .shadow-figure {
  position: absolute; bottom: 14%; left: 10%; width: 26px; 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: urd-watch 7s ease-in-out infinite;
}
.scn-ulm-ratisbon-deciding-italy .desk-torch {
  position: absolute; bottom: 22%; right: 15%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
}
.scn-ulm-ratisbon-deciding-italy .torch-glow {
  position: absolute; bottom: 22%; right: 15%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,100,.25) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(50%, 50%);
  animation: urd-glow 2.5s ease-in-out infinite alternate;
}
@keyframes urd-amb { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .65 } }
@keyframes urd-pan { 0% { background-position: 0% 0% } 50% { background-position: 5% 3% } 100% { background-position: -5% -3% } }
@keyframes urd-arrow { 0% { transform: rotate(25deg) scaleX(1) } 50% { transform: rotate(35deg) scaleX(1.1) } 100% { transform: rotate(25deg) scaleX(1) } }
@keyframes urd-marker { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(.9); opacity: .5 } }
@keyframes urd-watch { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes urd-glow { 0% { opacity: .5; transform: translate(50%, 50%) scale(1) } 50% { opacity: .9; transform: translate(50%, 50%) scale(1.2) } 100% { opacity: .6; transform: translate(50%, 50%) scale(.95) } }

/* scene 1: policy-right-war-advantageous */
.scn-policy-right-war-advantageous {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #3a2a22 40%, #2a1f1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 70%);
}
.scn-policy-right-war-advantageous .desk {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 35%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: p1-desk 20s ease-in-out infinite alternate;
}
.scn-policy-right-war-advantageous .candle-body {
  position: absolute;
  bottom: 36%; left: 50%;
  width: 12px; height: 40px;
  margin-left: -6px;
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a878 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: p1-candle 4s ease-in-out infinite;
}
.scn-policy-right-war-advantageous .candle-flame {
  position: absolute;
  bottom: 76%; left: 50%;
  width: 8px; height: 20px;
  margin-left: -4px;
  background: radial-gradient(ellipse 70% 60%, #ffe080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: p1-flame 0.8s ease-in-out infinite alternate;
}
.scn-policy-right-war-advantageous .candle-glow {
  position: absolute;
  bottom: 70%; left: 50%;
  width: 80px; height: 80px;
  margin-left: -40px;
  background: radial-gradient(circle, rgba(255,200,80,0.3) 0%, rgba(255,160,60,0.1) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: p1-glow 3s ease-in-out infinite alternate;
}
.scn-policy-right-war-advantageous .paper-stack {
  position: absolute;
  bottom: 8%; left: 30%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: p1-paper 9s ease-in-out infinite alternate;
}
.scn-policy-right-war-advantageous .inkwell {
  position: absolute;
  bottom: 12%; left: 60%;
  width: 18px; height: 22px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: p1-ink 7s ease-in-out infinite alternate;
}
.scn-policy-right-war-advantageous .shadow-figure {
  position: absolute;
  bottom: 38%; left: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: p1-figure 8s ease-in-out infinite alternate;
}
@keyframes p1-desk { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes p1-candle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0); } }
@keyframes p1-flame { 0% { transform: scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: scale(1.1,0.9) rotate(1deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:0.85; } }
@keyframes p1-glow { 0% { transform: scale(0.95); opacity:0.7; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes p1-paper { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes p1-ink { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes p1-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }

/* scene 2: knowledge-war-essential-politics */
.scn-knowledge-war-essential-politics {
  background:
    linear-gradient(180deg, #1f1a2e 0%, #2a223a 40%, #1f1a2e 100%),
    radial-gradient(ellipse at 50% 90%, #2a223a 0%, transparent 60%);
}
.scn-knowledge-war-essential-politics .bookshelf {
  position: absolute;
  bottom: 5%; left: 2%; right: 2%;
  height: 80%;
  background: linear-gradient(90deg, #2a1f14 0%, #3a2a1a 50%, #2a1f14 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: k2-shelf 30s ease-in-out infinite alternate;
}
.scn-knowledge-war-essential-politics .books {
  position: absolute;
  bottom: 20%; left: 10%; right: 10%;
  height: 40%;
  background: repeating-linear-gradient(
    90deg,
    #5a3a28 0px, #5a3a28 12px,
    #4a2a18 12px, #4a2a18 16px,
    #3a1a0a 16px, #3a1a0a 28px,
    #6a4a32 28px, #6a4a32 34px,
    #5a3a28 34px, #5a3a28 48px
  );
  border-radius: 2px;
  opacity: 0.8;
  animation: k2-books 20s linear infinite alternate;
}
.scn-knowledge-war-essential-politics .figure-reader {
  position: absolute;
  bottom: 12%; left: 40%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: k2-figure 8s ease-in-out infinite alternate;
}
.scn-knowledge-war-essential-politics .candle {
  position: absolute;
  bottom: 18%; left: 60%;
  width: 10px; height: 35px;
  background: linear-gradient(180deg, #e8d4b8 0%, #c8a878 100%);
  border-radius: 2px;
  box-shadow: inset 0 -3px 4px rgba(0,0,0,0.3);
  animation: k2-candle 3s ease-in-out infinite;
}
.scn-knowledge-war-essential-politics .flame {
  position: absolute;
  bottom: 53%; left: 60%;
  width: 6px; height: 18px;
  margin-left: -3px;
  background: radial-gradient(ellipse 60% 50%, #ffe080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  animation: k2-flame 0.7s ease-in-out infinite alternate;
}
.scn-knowledge-war-essential-politics .dust-mote {
  position: absolute;
  top: 30%; left: 20%;
  width: 4px; height: 4px;
  background: rgba(240, 220, 180, 0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: k2-dust 15s linear infinite;
}
@keyframes k2-shelf { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes k2-books { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes k2-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes k2-candle { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes k2-flame { 0% { transform: scale(1) rotate(-3deg); opacity:0.9; } 50% { transform: scale(1.2,0.8) rotate(2deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:0.85; } }
@keyframes k2-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 30% { opacity:1; } 70% { opacity:1; } 100% { transform: translate(40px, -20px) scale(0.5); opacity:0; } }

/* scene 3: chief-commander-cabinet */
.scn-chief-commander-cabinet {
  background:
    linear-gradient(180deg, #1e1a1e 0%, #2a222a 40%, #1e1a1e 100%),
    radial-gradient(ellipse at 50% 60%, #2a222a 0%, transparent 60%);
}
.scn-chief-commander-cabinet .table {
  position: absolute;
  bottom: 5%; left: 5%; right: 5%;
  height: 40%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: c3-table 12s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .figure-1 {
  position: absolute;
  bottom: 42%; left: 20%;
  width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c3-fig1 8s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .figure-2 {
  position: absolute;
  bottom: 42%; left: 45%;
  width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c3-fig2 9s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .figure-3 {
  position: absolute;
  bottom: 42%; left: 70%;
  width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: c3-fig3 10s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .map {
  position: absolute;
  bottom: 20%; left: 25%; right: 25%;
  height: 18%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 40%, #a89870 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: c3-map 15s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .overhead-lamp {
  position: absolute;
  top: 5%; left: 50%;
  width: 20px; height: 30px;
  margin-left: -10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: c3-lamp 4s ease-in-out infinite alternate;
}
.scn-chief-commander-cabinet .lamp-glow {
  position: absolute;
  top: 15%; left: 50%;
  width: 200px; height: 200px;
  margin-left: -100px;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, rgba(255,180,80,0.05) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(20px);
  animation: c3-glow 6s ease-in-out infinite alternate;
}
@keyframes c3-table { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes c3-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes c3-fig2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes c3-fig3 { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes c3-map { 0% { transform: scale(1) rotate(-0.5deg); } 50% { transform: scale(1.02) rotate(0.5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes c3-lamp { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes c3-glow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }

/* scene 4: austria-1809-arrangement */
.scn-austria-1809-arrangement {
  background:
    linear-gradient(180deg, #1a1a22 0%, #22222e 40%, #1a1a22 100%),
    radial-gradient(ellipse at 50% 70%, #22222e 0%, transparent 60%);
}
.scn-austria-1809-arrangement .table {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: a4-table 20s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .map {
  position: absolute;
  bottom: 12%; left: 20%; right: 20%;
  height: 22%;
  background: linear-gradient(135deg, #c8b898 0%, #b0a080 50%, #a09070 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: a4-map 18s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .lantern {
  position: absolute;
  bottom: 38%; left: 25%;
  width: 16px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: a4-lantern 4s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .lantern-glow {
  position: absolute;
  bottom: 30%; left: 22%;
  width: 120px; height: 120px;
  margin-left: -40px; /* adjust to center on lantern */
  background: radial-gradient(circle, rgba(255,180,80,0.25) 0%, rgba(255,160,60,0.08) 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(18px);
  animation: a4-glow 5s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .pin-1 {
  position: absolute;
  bottom: 22%; left: 35%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,0.6);
  animation: a4-pin1 3s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .pin-2 {
  position: absolute;
  bottom: 18%; left: 50%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,0.6);
  animation: a4-pin2 4s ease-in-out infinite alternate;
}
.scn-austria-1809-arrangement .pin-3 {
  position: absolute;
  bottom: 25%; left: 65%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,0.6);
  animation: a4-pin3 5s ease-in-out infinite alternate;
}
@keyframes a4-table { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes a4-map { 0% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.02) rotate(0.5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes a4-lantern { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes a4-glow { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes a4-pin1 { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes a4-pin2 { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes a4-pin3 { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.4); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }

/* ----- scene: seek-him-out-later ----- */
.scn-seek-him-out-later {
  background:
    linear-gradient(180deg, #0f0c1a 0%, #1a1528 40%, #2b1f2e 100%),
    radial-gradient(ellipse at 60% 80%, #2b1f2e 0%, transparent 70%);
}
.scn-seek-him-out-later .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1e1828 0%, #33283a 100%); opacity:0.9; }
.scn-seek-him-out-later .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a141c 0%, #2a1f2c 100%); border-radius: 30% 0 0 0 / 10% 0 0 0; }
.scn-seek-him-out-later .table { position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a3526 0%, #2e1f14 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.6); }
.scn-seek-him-out-later .candle { position:absolute; bottom:45%; left:50%; width:8px; height:28px; transform:translateX(-50%); background: linear-gradient(180deg, #cc9966 0%, #a06840 100%); border-radius: 50% 50% 4px 4px / 20% 20% 4px 4px; }
.scn-seek-him-out-later .candle::after { content:''; position:absolute; top:-18px; left:-2px; width:12px; height:12px; background: radial-gradient(circle, #ffaa44 0%, #cc6622 80%); border-radius:50%; box-shadow: 0 0 24px 8px #cc6622, 0 0 48px 16px rgba(204,102,34,0.4); animation: shol-flame 0.4s ease-in-out infinite alternate; }
.scn-seek-him-out-later .map { position:absolute; bottom:22%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #c8b48a 0%, #a38c6a 100%); border-radius: 2px; transform: rotate(-3deg); opacity:0.85; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: shol-map 12s ease-in-out infinite; }
.scn-seek-him-out-later .hand { position:absolute; bottom:28%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 40%, #5a4038 0%, #2a1c18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: shol-hand 4s ease-in-out infinite; }
.scn-seek-him-out-later .shadow { position:absolute; bottom:12%; left:15%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(8px); animation: shol-shadow 5s ease-in-out infinite alternate; }

@keyframes shol-flame    { 0%,100% { transform: scaleY(1) scaleX(0.95); opacity:0.9; } 50% { transform: scaleY(1.15) scaleX(1.05); opacity:1; } }
@keyframes shol-map      { 0%,100% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(4px); } }
@keyframes shol-hand     { 0%,100% { transform: translate(0,0) rotate(5deg); } 25% { transform: translate(2px,-3px) rotate(10deg); } 50% { transform: translate(-1px,-5px) rotate(12deg); } 75% { transform: translate(3px,-2px) rotate(8deg); } }
@keyframes shol-shadow   { 0% { opacity:0.6; filter:blur(6px); } 100% { opacity:1; filter:blur(10px); } }

/* ----- scene: passing-enemy-deliberately ----- */
.scn-passing-enemy-deliberately {
  background:
    linear-gradient(180deg, #11101a 0%, #1c1728 50%, #2d212e 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a3e 0%, transparent 60%);
}
.scn-passing-enemy-deliberately .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1424 0%, #2a1f32 100%); }
.scn-passing-enemy-deliberately .window-frame { position:absolute; top:12%; left:40%; right:40%; height:40%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 4px 8px rgba(0,0,0,.5); }
.scn-passing-enemy-deliberately .figure { position:absolute; bottom:20%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #1e1a2a 0%, #0a0810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ped-fig 8s ease-in-out infinite; }
.scn-passing-enemy-deliberately .lantern { position:absolute; top:30%; left:58%; width:10px; height:14px; background: radial-gradient(circle, #dda860 0%, #a07230 100%); border-radius:20%; box-shadow: 0 0 40px 10px #a07230, 0 0 80px 20px rgba(160,114,48,0.3); animation: ped-lantern 3s ease-in-out infinite alternate; }
.scn-passing-enemy-deliberately .enemy-column { position:absolute; bottom:24%; left:68%; width:20px; height:30px; background: linear-gradient(180deg, #221a18 0%, #0e0a08 100%); border-radius: 10% 10% 0 0; opacity:0.7; filter:blur(3px); animation: ped-march 15s linear infinite; }
.scn-passing-enemy-deliberately .curtain { position:absolute; top:12%; left:38%; right:38%; height:40%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 0 0 60% 60% / 0 0 20% 20%; transform: translateX(-8px); opacity:0.5; animation: ped-curtain 12s ease-in-out infinite alternate; }
.scn-passing-enemy-deliberately .glass-glare { position:absolute; top:14%; left:44%; right:44%; height:36%; background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 50%); border-radius: 4px; animation: ped-glare 6s ease-in-out infinite; }

@keyframes ped-fig     { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes ped-lantern { 0% { transform: rotate(-5deg); box-shadow: 0 0 30px 8px #a07230; } 50% { transform: rotate(3deg); box-shadow: 0 0 50px 14px #dda860; } 100% { transform: rotate(-4deg); box-shadow: 0 0 35px 10px #a07230; } }
@keyframes ped-march  { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(8px) scaleY(1.02); } 50% { transform: translateX(16px) scaleY(1); } 75% { transform: translateX(24px) scaleY(0.98); } 100% { transform: translateX(32px) scaleY(1); opacity:0; } }
@keyframes ped-curtain{ 0% { transform: translateX(-8px) scaleY(1); } 100% { transform: translateX(8px) scaleY(0.95); } }
@keyframes ped-glare   { 0%,100% { opacity:0.2; } 50% { opacity:0.6; } }

/* ----- scene: enveloping-attack-necessary ----- */
.scn-enveloping-attack-necessary {
  background:
    linear-gradient(180deg, #0c0814 0%, #181224 50%, #2a1c2e 100%),
    radial-gradient(ellipse at 50% 100%, #3a2840 0%, transparent 70%);
}
.scn-enveloping-attack-necessary .bg-deep { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #16101c 0%, #1e1828 100%); }
.scn-enveloping-attack-necessary .table { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #4a3526 0%, #2a1c14 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-enveloping-attack-necessary .figure-left { position:absolute; bottom:22%; left:20%; width:28px; height:50px; background: linear-gradient(180deg, #2a2028 0%, #0e0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); transform-origin: bottom center; animation: ean-left 6s ease-in-out infinite; }
.scn-enveloping-attack-necessary .figure-right { position:absolute; bottom:22%; right:20%; width:28px; height:50px; background: linear-gradient(180deg, #2a2028 0%, #0e0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); transform-origin: bottom center; animation: ean-right 6s ease-in-out infinite; }
.scn-enveloping-attack-necessary .map { position:absolute; bottom:18%; left:30%; right:30%; height:14%; background: linear-gradient(180deg, #c8b48a 0%, #a38c6a 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ean-map 20s linear infinite alternate; }
.scn-enveloping-attack-necessary .candle { position:absolute; bottom:40%; left:50%; width:8px; height:28px; transform:translateX(-50%); background: linear-gradient(180deg, #cc9966 0%, #a06840 100%); border-radius: 50% 50% 4px 4px / 20% 20% 4px 4px; }
.scn-enveloping-attack-necessary .candle::after { content:''; position:absolute; top:-18px; left:-2px; width:12px; height:12px; background: radial-gradient(circle, #ffaa44 0%, #cc6622 80%); border-radius:50%; box-shadow: 0 0 24px 8px #cc6622, 0 0 48px 16px rgba(204,102,34,0.4); animation: ean-flame 0.3s ease-in-out infinite alternate; }
.scn-enveloping-attack-necessary .shadow-shape { position:absolute; bottom:10%; left:20%; right:20%; height:18%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7) 0%, transparent 70%); filter: blur(8px); animation: ean-shadow 8s ease-in-out infinite alternate; }

@keyframes ean-left  { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-6px); } }
@keyframes ean-right { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(6px); } }
@keyframes ean-map   { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(4deg) scale(1); } }
@keyframes ean-flame { 0%,100% { transform: scaleY(1) scaleX(0.95); opacity:0.9; } 50% { transform: scaleY(1.2) scaleX(1.05); opacity:1; } }
@keyframes ean-shadow{ 0% { opacity:0.5; filter:blur(6px); } 100% { opacity:0.9; filter:blur(12px); } }

/* ----- scene: parallel-front-victories-rare ----- */
.scn-parallel-front-victories-rare {
  background:
    linear-gradient(180deg, #120e1a 0%, #1a1524 50%, #2a1e2e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2842 0%, transparent 60%);
}
.scn-parallel-front-victories-rare .bg-tent { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1e1828 0%, #2a1f30 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-parallel-front-victories-rare .table { position:absolute; bottom:12%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #4a3526 0%, #2e1f14 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-parallel-front-victories-rare .left-line { position:absolute; bottom:20%; left:18%; width:16px; height:40px; background: linear-gradient(180deg, #2a1e28 0%, #0e0a10 100%); border-radius: 4px; transform: rotate(-3deg); animation: pfvr-left 8s ease-in-out infinite alternate; }
.scn-parallel-front-victories-rare .left-line::before, .left-line::after { content:''; position:absolute; bottom:0; width:14px; height:38px; background:inherit; border-radius:inherit; } /* we only have one div for entire line; represent as single shape with pseudo-elements for density */
/* To keep simple, just use one shape */
.scn-parallel-front-victories-rare .right-line { position:absolute; bottom:20%; right:18%; width:16px; height:40px; background: linear-gradient(180deg, #2a1e28 0%, #0e0a10 100%); border-radius: 4px; transform: rotate(3deg); animation: pfvr-right 8s ease-in-out infinite alternate; }
.scn-parallel-front-victories-rare .commander { position:absolute; bottom:30%; left:45%; right:45%; height:35px; background: linear-gradient(180deg, #1e1824 0%, #0a0810 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(2deg); transform-origin: bottom center; animation: pfvr-cmd 6s ease-in-out infinite; }
.scn-parallel-front-victories-rare .lantern { position:absolute; top:25%; left:50%; width:10px; height:14px; margin-left:-5px; background: radial-gradient(circle, #dda860 0%, #a07230 100%); border-radius:20%; box-shadow: 0 0 40px 10px #a07230, 0 0 80px 20px rgba(160,114,48,0.3); animation: pfvr-lantern 4s ease-in-out infinite alternate; }
.scn-parallel-front-victories-rare .map-diagram { position:absolute; bottom:14%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #c8b48a 0%, #a38c6a 100%); border-radius: 2px; transform: rotate(-1deg); box-shadow: inset 0 1px 3px rgba(0,0,0,.2); animation: pfvr-map 20s linear infinite alternate; }

@keyframes pfvr-left    { 0%,100% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(-4px); } }
@keyframes pfvr-right   { 0%,100% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(1deg) translateX(4px); } }
@keyframes pfvr-cmd     { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } }
@keyframes pfvr-lantern { 0% { transform: rotate(-6deg); box-shadow: 0 0 30px 8px #a07230; } 50% { transform: rotate(4deg); box-shadow: 0 0 50px 14px #dda860; } 100% { transform: rotate(-5deg); box-shadow: 0 0 35px 10px #a07230; } }
@keyframes pfvr-map     { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-2deg) scale(1); } }

/* beresina-interception-argument */
.scn-beresina-interception-argument { background: linear-gradient(180deg, #2c2420 0%, #1e1815 70%, #14100d 100%), radial-gradient(circle at 50% 90%, #4a3a2e 0%, transparent 70%); }
.scn-beresina-interception-argument .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(60,45,35,.3) 0%, transparent 70%); }
.scn-beresina-interception-argument .table { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); transform: perspective(400px) rotateX(10deg); }
.scn-beresina-interception-argument .map { position:absolute; bottom:12%; left:20%; right:20%; height:15%; background: linear-gradient(135deg, #c8b090 0%, #8a6b4e 100%); border: 2px dashed #6a4a30; border-radius: 4px; opacity:.85; animation: bia-map 10s ease-in-out infinite; }
.scn-beresina-interception-argument .candle { position:absolute; bottom:28%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #a06030 40%, #402010 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 8px #d09040, 0 0 60px 20px rgba(200,120,40,.3); animation: bia-candle 2s ease-in-out infinite alternate; }
.scn-beresina-interception-argument .figure-a { position:absolute; bottom:14%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a1512 0%, #0c0908 100%); border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bia-figure-a 5s ease-in-out infinite; }
.scn-beresina-interception-argument .figure-b { position:absolute; bottom:14%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #1a1512 0%, #0c0908 100%); border-radius: 40% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bia-figure-b 6s ease-in-out infinite; }
@keyframes bia-map { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes bia-candle { 0% { box-shadow: 0 0 20px 4px #d09040, 0 0 40px 10px rgba(200,120,40,.2); opacity:.9; } 50% { box-shadow: 0 0 35px 10px #e0a050, 0 0 70px 20px rgba(200,120,40,.4); opacity:1; } 100% { box-shadow: 0 0 25px 6px #d09040, 0 0 50px 12px rgba(200,120,40,.3); opacity:.85; } }
@keyframes bia-figure-a { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(2deg); } 60% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bia-figure-b { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-8px) rotate(-2deg); } 70% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* guard-against-eventuality */
.scn-guard-against-eventuality { background: linear-gradient(180deg, #101520 0%, #1a1e2a 50%, #0c0e14 100%), radial-gradient(ellipse at 70% 40%, #2c3a50 0%, transparent 80%); }
.scn-guard-against-eventuality .wall { position:absolute; inset:0 0 25% 0; background: repeating-linear-gradient(0deg, #2a2e36 0px, #2a2e36 2px, #1a1e26 2px, #1a1e26 4px); }
.scn-guard-against-eventuality .window { position:absolute; top:10%; right:15%; width:60px; height:90px; background: linear-gradient(180deg, #6a8aaa 0%, #3a5a7a 100%); border: 4px solid #1a1e26; box-shadow: inset 0 0 20px #2a4a6a, 0 0 30px 6px rgba(60,90,130,.3); animation: gae-window 6s ease-in-out infinite alternate; }
.scn-guard-against-eventuality .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1e22 0%, #2a2e32 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-guard-against-eventuality .guard { position:absolute; bottom:18%; left:20%; width:24px; height:70px; background: linear-gradient(180deg, #161a1e 0%, #0c0e10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gae-guard 4s ease-in-out infinite; }
.scn-guard-against-eventuality .weapon { position:absolute; bottom:22%; left:18%; width:4px; height:50px; background: #3a3e46; transform: rotate(15deg); transform-origin: bottom; animation: gae-weapon 3s ease-in-out infinite alternate; }
.scn-guard-against-eventuality .moonlight { position:absolute; top:0; right:0; width:40%; height:60%; background: radial-gradient(ellipse at 80% 20%, rgba(100,140,200,.15) 0%, transparent 70%); animation: gae-moon 12s linear infinite; }
@keyframes gae-window { 0% { background: linear-gradient(180deg, #6a8aaa, #3a5a7a); box-shadow: 0 0 20px 2px rgba(60,90,130,.2); } 50% { background: linear-gradient(180deg, #7a9abc, #4a6a8a); box-shadow: 0 0 40px 8px rgba(60,90,130,.4); } 100% { background: linear-gradient(180deg, #5a7a9a, #2a4a6a); box-shadow: 0 0 25px 4px rgba(60,90,130,.25); } }
@keyframes gae-guard { 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 gae-weapon { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(14deg) translateY(0); } }
@keyframes gae-moon { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }

/* superiority-russian-forces-november */
.scn-superiority-russian-forces-november { background: linear-gradient(180deg, #1e1a18 0%, #2a2420 50%, #14100e 100%), radial-gradient(circle at 60% 80%, #3a2e26 0%, transparent 70%); }
.scn-superiority-russian-forces-november .table { position:absolute; bottom:5%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #5e4435 0%, #3e2a1e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5), 0 -4px 8px rgba(0,0,0,.3); }
.scn-superiority-russian-forces-november .map { position:absolute; bottom:10%; left:10%; right:10%; height:18%; background: linear-gradient(135deg, #c4a884 0%, #8a6e50 100%); border: 1px solid #4a3a28; border-radius: 4px; opacity:.9; }
.scn-superiority-russian-forces-november .counter-a { position:absolute; bottom:15%; left:20%; width:10px; height:14px; background: linear-gradient(180deg, #6a5040 0%, #3a2a20 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: srf-counter 8s ease-in-out infinite; }
.scn-superiority-russian-forces-november .counter-b { position:absolute; bottom:12%; left:35%; width:10px; height:14px; background: linear-gradient(180deg, #6a5040 0%, #3a2a20 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: srf-counter 9s ease-in-out infinite; animation-delay: -2s; }
.scn-superiority-russian-forces-november .counter-c { position:absolute; bottom:14%; left:50%; width:10px; height:14px; background: linear-gradient(180deg, #6a5040 0%, #3a2a20 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: srf-counter 7s ease-in-out infinite; animation-delay: -4s; }
.scn-superiority-russian-forces-november .candle { position:absolute; bottom:35%; left:70%; width:6px; height:36px; background: linear-gradient(180deg, #e8bc80 0%, #a06030 40%, #402010 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px #c88a40, 0 0 50px 15px rgba(200,130,60,.3); animation: srf-candle 2s ease-in-out infinite alternate; }
.scn-superiority-russian-forces-november .hand { position:absolute; bottom:18%; left:15%; width:16px; height:22px; background: radial-gradient(circle at 40% 20%, #3a2a22 0%, #1a100c 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-20deg); animation: srf-hand 7s ease-in-out infinite; }
@keyframes srf-counter { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes srf-candle { 0% { box-shadow: 0 0 15px 4px #c88a40, 0 0 40px 10px rgba(200,130,60,.2); opacity:.9; } 50% { box-shadow: 0 0 25px 8px #dc9a50, 0 0 60px 18px rgba(200,130,60,.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #c88a40, 0 0 45px 12px rgba(200,130,60,.25); opacity:.85; } }
@keyframes srf-hand { 0% { transform: rotate(-20deg) translate(0,0); } 33% { transform: rotate(-15deg) translate(8px,-2px); } 66% { transform: rotate(-25deg) translate(2px,0); } 100% { transform: rotate(-20deg) translate(0,0); } }

/* hypothetical-outcome-1812 */
.scn-hypothetical-outcome-1812 { background: linear-gradient(180deg, #221e1c 0%, #1a1614 40%, #100e0c 100%), radial-gradient(circle at 30% 70%, #3a2e28 0%, transparent 60%); }
.scn-hypothetical-outcome-1812 .desk { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(160deg, #5a4038 0%, #3a2a24 100%); transform: perspective(300px) rotateX(15deg); border-radius: 8% 8% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-hypothetical-outcome-1812 .document { position:absolute; bottom:12%; left:25%; right:25%; height:16%; background: linear-gradient(135deg, #d8c4b0 0%, #b09880 100%); border: 1px solid #8a7058; border-radius: 2px; transform: skewX(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hoo-doc 6s ease-in-out infinite alternate; }
.scn-hypothetical-outcome-1812 .inkwell { position:absolute; bottom:8%; left:15%; width:14px; height:16px; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: hoo-ink 10s linear infinite; }
.scn-hypothetical-outcome-1812 .quill { position:absolute; bottom:18%; left:10%; width:4px; height:40px; background: linear-gradient(180deg, #c8b090 0%, #6a5240 100%); transform: rotate(30deg); transform-origin: bottom; border-radius: 20% 20% 10% 10%; animation: hoo-quill 4s ease-in-out infinite alternate; }
.scn-hypothetical-outcome-1812 .arm { position:absolute; bottom:8%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: hoo-arm 8s ease-in-out infinite; }
.scn-hypothetical-outcome-1812 .candle { position:absolute; bottom:35%; left:60%; width:6px; height:34px; background: linear-gradient(180deg, #e8b070 0%, #a05830 40%, #401810 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 18px 4px #c08040, 0 0 40px 12px rgba(192,128,64,.25); animation: hoo-candle 2s ease-in-out infinite alternate; }
@keyframes hoo-doc { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes hoo-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hoo-quill { 0% { transform: rotate(28deg) scaleY(1); } 50% { transform: rotate(32deg) scaleY(1.02); } 100% { transform: rotate(28deg) scaleY(1); } }
@keyframes hoo-arm { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(6px); } 60% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes hoo-candle { 0% { box-shadow: 0 0 14px 3px #c08040, 0 0 30px 8px rgba(192,128,64,.2); opacity:.9; } 50% { box-shadow: 0 0 22px 6px #d09050, 0 0 50px 15px rgba(192,128,64,.35); opacity:1; } 100% { box-shadow: 0 0 16px 4px #c08040, 0 0 35px 10px rgba(192,128,64,.25); opacity:.85; } }

.scn-perfect-war-idea-indispensible {
  background: radial-gradient(ellipse at 50% 30%, #2e1a0e 0%, #1a0c05 100%), linear-gradient(180deg, #1a0c05 0%, #2a1a0e 50%, #1a0c05 100%);
}
.scn-perfect-war-idea-indispensible .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #3a2218 0%, #1a0c05 100%); opacity: .8;
}
.scn-perfect-war-idea-indispensible .desk {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.6);
}
.scn-perfect-war-idea-indispensible .candle {
  position: absolute; bottom: 42%; left: 42%; width: 12px; height: 35px; background: #d4b08c; border-radius: 3px; box-shadow: inset 0 0 6px rgba(255,200,150,.4);
}
.scn-perfect-war-idea-indispensible .flame {
  position: absolute; bottom: 75%; left: 42.5%; width: 10px; height: 24px; background: radial-gradient(ellipse, #ffdd88 0%, #ffaa44 40%, #cc6622 100%); border-radius: 50% 50% 20% 20%; animation: pwi-flame 1.8s ease-in-out infinite alternate;
}
.scn-perfect-war-idea-indispensible .paper {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 22%; background: #f5e6d3; border-radius: 3px; transform: rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pwi-paper 7s ease-in-out infinite alternate;
}
.scn-perfect-war-idea-indispensible .quill {
  position: absolute; bottom: 28%; left: 30%; width: 4px; height: 45px; background: linear-gradient(180deg, #333 0%, #666 100%); border-radius: 0% 0% 50% 50%; transform: rotate(12deg); animation: pwi-quill 10s ease-in-out infinite alternate;
}
.scn-perfect-war-idea-indispensible .shadow-figure {
  position: absolute; bottom: 15%; left: 65%; width: 55px; height: 90px; background: rgba(0,0,0,.35); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform: skewX(-8deg); filter: blur(3px); animation: pwi-shadow 6s ease-in-out infinite alternate;
}
.scn-perfect-war-idea-indispensible .book {
  position: absolute; bottom: 16%; left: 60%; width: 35px; height: 18px; background: #4a2a1a; border-radius: 2px; box-shadow: 0 3px 5px rgba(0,0,0,.5);
}
@keyframes pwi-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; }
  50% { transform: scaleY(1.15) scaleX(.85); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: .85; }
}
@keyframes pwi-paper {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes pwi-quill {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(16deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes pwi-shadow {
  0% { opacity: .25; transform: translateX(0); }
  50% { opacity: .4; transform: translateX(3px); }
  100% { opacity: .3; transform: translateX(0); }
}

.scn-policy-avoids-rigorous-conclusions {
  background: linear-gradient(180deg, #1a120c 0%, #2a1a0e 60%, #1a0c05 100%), radial-gradient(ellipse at 70% 50%, #2a1a0e 0%, transparent 70%);
}
.scn-policy-avoids-rigorous-conclusions .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a120c 0%, #2a1a0e 100%); opacity: .9;
}
.scn-policy-avoids-rigorous-conclusions .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 80%); border-radius: 6px; box-shadow: 0 -10px 25px rgba(0,0,0,.7);
}
.scn-policy-avoids-rigorous-conclusions .map {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #e8d5b0 0%, #c8b290 100%); border-radius: 4px; transform: rotate(1deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: pac-map 9s ease-in-out infinite alternate;
}
.scn-policy-avoids-rigorous-conclusions .lamp-base {
  position: absolute; bottom: 40%; left: 35%; width: 16px; height: 40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 2px 2px 0 0;
}
.scn-policy-avoids-rigorous-conclusions .lamp-glow {
  position: absolute; bottom: 70%; left: 30%; width: 60px; height: 40px; background: radial-gradient(ellipse, #ffdd88 0%, rgba(255,200,100,.3) 60%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: pac-lamp 2.5s ease-in-out infinite alternate;
}
.scn-policy-avoids-rigorous-conclusions .magnifying-glass {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 30px; border: 4px solid #8a7a6a; border-radius: 50%; background: rgba(255,255,255,.1); transform: rotate(-10deg); animation: pac-mag 12s ease-in-out infinite alternate;
}
.scn-policy-avoids-rigorous-conclusions .chair-silhouette {
  position: absolute; bottom: 0; left: 70%; width: 40px; height: 60px; background: rgba(0,0,0,.6); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform: scaleX(1.2); filter: blur(2px);
}
.scn-policy-avoids-rigorous-conclusions .inkwell {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 16px; background: #3a2a1a; border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
@keyframes pac-map {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes pac-lamp {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes pac-mag {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-12deg) translateX(3px); }
  100% { transform: rotate(-8deg) translateX(0); }
}

.scn-policy-makes-instrument-war {
  background: linear-gradient(180deg, #1a120c 0%, #2a1a0e 50%, #1a0c05 100%), radial-gradient(ellipse at 30% 40%, #2e1a0e 0%, transparent 80%);
}
.scn-policy-makes-instrument-war .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #2a1a0e 0%, #1a0c05 100%); opacity: .85;
}
.scn-policy-makes-instrument-war .shelf {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8px; background: #4a3a2a; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-policy-makes-instrument-war .hand {
  position: absolute; bottom: 20%; left: 40%; width: 35px; height: 50px; background: rgba(80,60,40,.7); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: pmi-hand 4s ease-in-out infinite alternate;
}
.scn-policy-makes-instrument-war .dagger {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 70px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px 2px 30% 30%; transform: rotate(10deg); box-shadow: 0 0 6px rgba(0,0,0,.3); animation: pmi-dagger 4s ease-in-out infinite alternate;
}
.scn-policy-makes-instrument-war .scroll {
  position: absolute; bottom: 12%; left: 15%; width: 35%; height: 20%; background: #f0e0c0; border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: pmi-scroll 8s ease-in-out infinite alternate;
}
.scn-policy-makes-instrument-war .candle-stick {
  position: absolute; bottom: 28%; left: 20%; width: 8px; height: 25px; background: #b09070; border-radius: 2px;
}
.scn-policy-makes-instrument-war .flame-tall {
  position: absolute; bottom: 55%; left: 20.5%; width: 7px; height: 18px; background: radial-gradient(ellipse, #ffcc66 0%, #ff9933 50%, #cc6600 100%); border-radius: 50% 50% 20% 20%; animation: pmi-flame 1.6s ease-in-out infinite alternate;
}
.scn-policy-makes-instrument-war .shadow-arm {
  position: absolute; bottom: 5%; left: 35%; width: 80px; height: 70px; background: rgba(0,0,0,.3); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(4px); animation: pmi-arm 5s ease-in-out infinite alternate;
}
@keyframes pmi-hand {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-4px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes pmi-dagger {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-5px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes pmi-scroll {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes pmi-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; }
  50% { transform: scaleY(1.2) scaleX(.85); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: .85; }
}
@keyframes pmi-arm {
  0% { opacity: .25; transform: translateX(0); }
  50% { opacity: .35; transform: translateX(3px); }
  100% { opacity: .25; transform: translateX(0); }
}

.scn-policy-character-war {
  background: linear-gradient(180deg, #1a120c 0%, #2a1a0e 40%, #1a0c05 100%), radial-gradient(ellipse at 50% 20%, #3a2218 0%, transparent 70%);
}
.scn-policy-character-war .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #2a1a0e 0%, #1a0c05 100%); opacity: .9;
}
.scn-policy-character-war .pedestal {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,.5);
}
.scn-policy-character-war .bust {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,.4);
}
.scn-policy-character-war .flag {
  position: absolute; bottom: 50%; left: 45%; width: 5px; height: 40px; background: #5a3a2a; transform: rotate(-5deg);
}
.scn-policy-character-war .flag::after {
  content: ''; display: block; width: 20px; height: 12px; background: linear-gradient(90deg, #702243 0%, #5e1a1d 100%); margin-left: 5px; margin-top: 0px; border-radius: 0 4px 4px 0; animation: pch-flag 8s ease-in-out infinite alternate;
}
.scn-policy-character-war .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%; background: linear-gradient(180deg, rgba(255,200,100,.08) 0%, rgba(255,200,100,.02) 70%, transparent 100%); filter: blur(8px); animation: pch-beam 6s ease-in-out infinite alternate;
}
.scn-policy-character-war .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
}
.scn-policy-character-war .medallion {
  position: absolute; bottom: 20%; left: 30%; width: 14px; height: 14px; background: radial-gradient(circle, #b09070 0%, #8a6a4a 100%); border-radius: 50%; border: 2px solid #4a3a2a; box-shadow: 0 0 8px rgba(200,160,100,.3);
}
@keyframes pch-flag {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.1) translateY(-2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes pch-beam {
  0% { opacity: .3; transform: scaleY(1); }
  50% { opacity: .6; transform: scaleY(1.05); }
  100% { opacity: .4; transform: scaleY(1); }
}

/* Scene: frederick-bohemia-1757-concentric */
.scn-frederick-bohemia-1757-concentric { background: linear-gradient(180deg, #1a120e 0%, #2a1e16 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 80%); }
.scn-frederick-bohemia-1757-concentric .fb-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,12,8,0.9) 0%, transparent 60%); animation: fb-bg 12s ease-in-out infinite alternate; }
.scn-frederick-bohemia-1757-concentric .fb-table { position:absolute; bottom:8%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); }
.scn-frederick-bohemia-1757-concentric .fb-map { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(135deg, #c8b088 0%, #a08060 50%, #806040 100%); border-radius: 2%; box-shadow: inset 0 0 12px rgba(0,0,0,0.4); }
.scn-frederick-bohemia-1757-concentric .fb-concentric { position:absolute; bottom:28%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, transparent 20%, #806040 20.5%, transparent 21%, #806040 41%, transparent 41.5%, #806040 61%, transparent 61.5%, #806040 81%, transparent 81.5%); border-radius:50%; opacity:0.6; animation: fb-conc 6s ease-in-out infinite alternate; }
.scn-frederick-bohemia-1757-concentric .fb-candle { position:absolute; bottom:42%; left:50%; width:8px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4); animation: fb-candle 3s ease-in-out infinite alternate; }
.scn-frederick-bohemia-1757-concentric .fb-figure { position:absolute; bottom:20%; left:25%; width:20px; height:45px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-fig1 5s ease-in-out infinite; }
.scn-frederick-bohemia-1757-concentric .fb-figure2 { position:absolute; bottom:20%; right:25%; width:22px; 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: fb-fig2 6s ease-in-out infinite; }
.scn-frederick-bohemia-1757-concentric .fb-shadow { position:absolute; bottom:18%; left:20%; right:20%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(3px); animation: fb-shadow 5s ease-in-out infinite alternate; }
@keyframes fb-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fb-conc { 0% { transform:translateX(-50%) scale(0.95); opacity:0.5; } 50% { transform:translateX(-50%) scale(1.05); opacity:0.7; } 100% { transform:translateX(-50%) scale(0.98); opacity:0.6; } }
@keyframes fb-candle { 0% { transform:translateX(-50%) scaleY(1); opacity:0.8; } 50% { transform:translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform:translateX(-50%) scaleY(0.95); opacity:0.85; } }
@keyframes fb-fig1 { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes fb-fig2 { 0% { transform:translateX(0) rotate(1deg); } 33% { transform:translateX(-3px) rotate(-1deg); } 66% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes fb-shadow { 0% { opacity:0.4; filter:blur(2px); } 50% { opacity:0.7; filter:blur(4px); } 100% { opacity:0.5; filter:blur(3px); } }

/* Scene: catastrophic-victory-prague */
.scn-catastrophic-victory-prague { background: linear-gradient(180deg, #1a1412 0%, #2a201c 40%, #3a2e26 100%), radial-gradient(ellipse at 50% 50%, #3a2e26 0%, transparent 70%); }
.scn-catastrophic-victory-prague .cv-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,8,6,0.7) 0%, transparent 60%); animation: cv-bg 10s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-city { position:absolute; bottom:35%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); clip-path: polygon(0% 100%, 5% 70%, 10% 80%, 15% 60%, 20% 70%, 25% 50%, 30% 65%, 35% 55%, 40% 70%, 45% 60%, 50% 75%, 55% 65%, 60% 80%, 65% 60%, 70% 70%, 75% 55%, 80% 65%, 85% 50%, 90% 70%, 95% 60%, 100% 100%); animation: cv-city 15s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-castle { position:absolute; bottom:45%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%); clip-path: polygon(20% 100%, 20% 30%, 30% 10%, 40% 30%, 40% 10%, 50% 0%, 60% 10%, 60% 30%, 70% 10%, 80% 30%, 80% 100%); box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: cv-castle 8s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-river { position:absolute; bottom:25%; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a3a30 0%, #1a2a20 100%); transform: skewY(-3deg); animation: cv-river 12s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-battle-lines { position:absolute; bottom:40%; left:5%; right:5%; height:2px; background: linear-gradient(90deg, transparent, #8a6040 20%, #8a6040 40%, transparent 45%, #8a6040 55%, #8a6040 75%, transparent); filter: blur(1px); animation: cv-lines 20s linear infinite; }
.scn-catastrophic-victory-prague .cv-smoke { position:absolute; bottom:55%; left:20%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(80,60,40,0.5) 0%, transparent 100%); filter: blur(10px); animation: cv-smoke 14s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-candle { position:absolute; bottom:20%; left:50%; width:8px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #ffc060 0%, #b07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 16px 4px #b07030, 0 0 32px 8px rgba(176,112,48,0.3); animation: cv-candle 3s ease-in-out infinite alternate; }
.scn-catastrophic-victory-prague .cv-shadow { position:absolute; bottom:18%; left:30%; right:30%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(2px); animation: cv-shadow 6s ease-in-out infinite alternate; }
@keyframes cv-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes cv-city { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes cv-castle { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cv-river { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes cv-lines { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }
@keyframes cv-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 50% { transform: translate(5px,-4px) scale(1.2); opacity:0.6; } 100% { transform: translate(-3px,-2px) scale(0.9); opacity:0.3; } }
@keyframes cv-candle { 0% { transform:translateX(-50%) scaleY(0.95); opacity:0.7; } 50% { transform:translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform:translateX(-50%) scaleY(1); opacity:0.8; } }
@keyframes cv-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* Scene: moral-superiority-frederick */
.scn-moral-superiority-frederick { background: linear-gradient(180deg, #1e1612 0%, #2e221c 50%, #3e2e24 100%), radial-gradient(ellipse at 50% 30%, #2e221c 0%, transparent 70%); }
.scn-moral-superiority-frederick .ms-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(16,10,6,0.8) 0%, transparent 60%); animation: ms-bg 14s ease-in-out infinite alternate; }
.scn-moral-superiority-frederick .ms-tent { position:absolute; top:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); opacity:0.6; animation: ms-tent 20s ease-in-out infinite alternate; }
.scn-moral-superiority-frederick .ms-table { position:absolute; bottom:8%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-moral-superiority-frederick .ms-map { position:absolute; bottom:20%; left:18%; right:18%; height:20%; background: linear-gradient(135deg, #c0a880 0%, #a08060 60%, #806040 100%); border-radius: 1%; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); }
.scn-moral-superiority-frederick .ms-frederick { position:absolute; bottom:15%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform-origin: bottom center; animation: ms-fred 4s ease-in-out infinite; }
.scn-moral-superiority-frederick .ms-officer1 { position:absolute; bottom:12%; left:35%; width:22px; height:54px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-off1 5s ease-in-out infinite; }
.scn-moral-superiority-frederick .ms-officer2 { position:absolute; bottom:12%; right:35%; width:24px; height:58px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-off2 6s ease-in-out infinite; }
.scn-moral-superiority-frederick .ms-candle { position:absolute; bottom:40%; left:50%; width:6px; height:22px; transform:translateX(-50%); background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 18px 6px #b07030, 0 0 36px 12px rgba(176,112,48,0.4); animation: ms-candle 2.5s ease-in-out infinite alternate; }
@keyframes ms-bg { 0% { opacity:0.75; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes ms-tent { 0% { transform: scaleY(1); opacity:0.5; } 50% { transform: scaleY(1.05); opacity:0.7; } 100% { transform: scaleY(0.95); opacity:0.55; } }
@keyframes ms-fred { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 25% { transform:translateX(-50%) rotate(2deg) scale(1.02); } 50% { transform:translateX(-50%) rotate(-1deg) scale(0.98); } 75% { transform:translateX(-50%) rotate(1deg) scale(1.01); } 100% { transform:translateX(-50%) rotate(0) scale(1); } }
@keyframes ms-off1 { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ms-off2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ms-candle { 0% { transform:translateX(-50%) scaleY(0.9); opacity:0.8; } 50% { transform:translateX(-50%) scaleY(1.15); opacity:1; } 100% { transform:translateX(-50%) scaleY(0.95); opacity:0.85; } }

/* Scene: interior-lines-counteract */
.scn-interior-lines-counteract { background: linear-gradient(180deg, #1a1512 0%, #2a221c 50%, #3a2e26 100%), radial-gradient(ellipse at 50% 40%, #3a2e26 0%, transparent 60%); }
.scn-interior-lines-counteract .il-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(12,8,6,0.7) 0%, transparent 50%); animation: il-bg 16s ease-in-out infinite alternate; }
.scn-interior-lines-counteract .il-table { position:absolute; bottom:6%; left:12%; right:12%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 14px rgba(0,0,0,0.5); }
.scn-interior-lines-counteract .il-map { position:absolute; bottom:18%; left:16%; right:16%; height:22%; background: linear-gradient(135deg, #c0a880 0%, #a08060 60%, #806040 100%); border-radius: 2%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); }
.scn-interior-lines-counteract .il-line-a { position:absolute; bottom:32%; left:20%; width:35%; height:2px; background: linear-gradient(90deg, transparent, #b07030 30%, #b07030 70%, transparent); transform: rotate(15deg); transform-origin: left center; animation: il-line-a 8s ease-in-out infinite alternate; }
.scn-interior-lines-counteract .il-line-b { position:absolute; bottom:32%; right:20%; width:35%; height:2px; background: linear-gradient(270deg, transparent, #b07030 30%, #b07030 70%, transparent); transform: rotate(-15deg); transform-origin: right center; animation: il-line-b 8s ease-in-out infinite alternate; }
.scn-interior-lines-counteract .il-arrow { position:absolute; bottom:35%; left:50%; width:60px; height:4px; transform:translateX(-50%); background: linear-gradient(90deg, transparent, #cc8040 30%, #cc8040 70%, transparent); clip-path: polygon(0% 0%, 100% 0%, 100% 40%, 90% 50%, 100% 60%, 100% 100%, 0% 100%); animation: il-arrow 4s ease-in-out infinite alternate; }
.scn-interior-lines-counteract .il-figure1 { position:absolute; bottom:12%; left:25%; width:20px; height:44px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: il-fig1 5s ease-in-out infinite; }
.scn-interior-lines-counteract .il-figure2 { position:absolute; bottom:12%; right:25%; width:22px; height:46px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: il-fig2 6s ease-in-out infinite; }
.scn-interior-lines-counteract .il-candle { position:absolute; bottom:40%; left:50%; width:6px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #ffc060 0%, #b07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 16px 4px #b07030, 0 0 32px 8px rgba(176,112,48,0.3); animation: il-candle 3s ease-in-out infinite alternate; }
@keyframes il-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes il-line-a { 0% { opacity:0.3; transform: rotate(12deg) scaleX(1); } 50% { opacity:0.7; transform: rotate(18deg) scaleX(1.05); } 100% { opacity:0.4; transform: rotate(15deg) scaleX(0.95); } }
@keyframes il-line-b { 0% { opacity:0.3; transform: rotate(-12deg) scaleX(1); } 50% { opacity:0.7; transform: rotate(-18deg) scaleX(1.05); } 100% { opacity:0.4; transform: rotate(-15deg) scaleX(0.95); } }
@keyframes il-arrow { 0% { transform:translateX(-50%) scaleX(0.8); opacity:0.6; } 50% { transform:translateX(-50%) scaleX(1.2); opacity:1; } 100% { transform:translateX(-50%) scaleX(0.9); opacity:0.7; } }
@keyframes il-fig1 { 0% { transform: translateX(0) rotate(-2deg); } 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 il-fig2 { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-4px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes il-candle { 0% { transform:translateX(-50%) scaleY(0.9); opacity:0.75; } 50% { transform:translateX(-50%) scaleY(1.15); opacity:1; } 100% { transform:translateX(-50%) scaleY(0.95); opacity:0.85; } }

/* scene: defence-mountains-relative-vs-absolute — calm / bright-interior — interior cutaway */
.scn-defence-mountains-relative-vs-absolute { background: radial-gradient(ellipse at 50% 100%, #3a2f2b 0%, #1e1714 100%); position: relative; overflow: hidden; }
.scn-defence-mountains-relative-vs-absolute .bg-panel { position:absolute; inset:0; background: linear-gradient(180deg, #4a3b32 0%, #2a1f1a 100%); box-shadow: inset 0 0 80px #1a1010; }
.scn-defence-mountains-relative-vs-absolute .arch-window { position:absolute; top:8%; left:6%; width:38%; height:72%; background: linear-gradient(180deg, #d4e1ec 0%, #8ba9c4 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 60px rgba(255,255,240,0.5), 0 0 40px rgba(160,178,192,0.3); animation: dm1-sky 14s ease-in-out infinite alternate; }
.scn-defence-mountains-relative-vs-absolute .mtn-prospect { position:absolute; bottom:10%; left:6%; width:38%; height:35%; background: linear-gradient(180deg, #6a7f8a 0%, #3a4f5a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,0.3); }
.scn-defence-mountains-relative-vs-absolute .study-desk { position:absolute; bottom:0; right:-10%; width:70%; height:22%; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius: 30% 0 0 0; box-shadow: -12px 0 40px rgba(0,0,0,0.8); }
.scn-defence-mountains-relative-vs-absolute .map-scroll { position:absolute; bottom:10%; right:8%; width:32%; height:14%; background: linear-gradient(180deg, #f4e8c1 0%, #d4c49a 100%); border-radius: 10% 80% 20% 10%; transform: rotate(-6deg); box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: dm1-map 10s ease-in-out infinite; }
.scn-defence-mountains-relative-vs-absolute .inkwell-quill { position:absolute; bottom:14%; right:30%; width:10px; height:14px; background: #1a1512; border-radius: 30% 30% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-defence-mountains-relative-vs-absolute .inkwell-quill::after { content:''; position:absolute; top:-12px; left:1px; width:8px; height:14px; background: linear-gradient(180deg, #f4f0e8 0%, #c4b8a0 100%); border-radius: 0 0 50% 50%; clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); }
.scn-defence-mountains-relative-vs-absolute .candle-light { position:absolute; bottom:16%; right:16%; width:8px; height:22px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 20px #ffb060; animation: dm1-candle 3s ease-in-out infinite alternate; }
.scn-defence-mountains-relative-vs-absolute .figure-thinker { position:absolute; bottom:20%; right:20%; width:22px; height:42px; background: linear-gradient(180deg, #2a2020 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(4deg); animation: dm1-thinker 8s ease-in-out infinite; }
@keyframes dm1-sky { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes dm1-map { 0%,100% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } }
@keyframes dm1-candle { 0%,100% { transform: scale(1) translateY(0); opacity:0.85; } 50% { transform: scale(1.15) translateY(-2px); opacity:1; } }
@keyframes dm1-thinker { 0%,100% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } }

/* scene: defence-mountains-slowdown — calm / bright-interior — close-up / macro */
.scn-defence-mountains-slowdown { background: linear-gradient(180deg, #1a1c23 0%, #2c303a 50%, #1a1c23 100%); position: relative; overflow: hidden; }
.scn-defence-mountains-slowdown .bg-passage { position:absolute; inset:0; background: linear-gradient(90deg, #2a2c33 0%, #3a3c44 20%, #2a2c33 80%, #1a1c23 100%); }
.scn-defence-mountains-slowdown .sky-crevice { position:absolute; top:4%; left:42%; width:16%; height:18%; background: linear-gradient(180deg, #d4e1ec 0%, #8ba9c4 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 0 40px rgba(160,178,192,0.4); animation: dm2-sky 20s ease-in-out infinite alternate; }
.scn-defence-mountains-slowdown .hourglass-frame { position:absolute; top:18%; left:50%; transform: translateX(-50%); width:64px; height:110px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1f1a 100%); border-radius: 20% 20% 20% 20%; box-shadow: 0 12px 40px rgba(0,0,0,0.8); }
.scn-defence-mountains-slowdown .sand-upper { position:absolute; top:22%; left:50%; transform: translateX(-50%); width:40px; height:34px; background: radial-gradient(circle at 50% 100%, #e6c28f 0%, #c4a070 100%); border-radius: 40% 40% 0 0; clip-path: polygon(0 100%, 0 0, 100% 0, 100% 100%, 50% 80%); animation: dm2-sand-up 14s linear infinite; }
.scn-defence-mountains-slowdown .sand-falling { position:absolute; top:52%; left:50%; transform: translateX(-50%); width:2px; height:24px; background: linear-gradient(180deg, #e6c28f 0%, transparent 100%); animation: dm2-sand-fall 2s linear infinite; }
.scn-defence-mountains-slowdown .sand-pile { position:absolute; top:68%; left:50%; transform: translateX(-50%); width:30px; height:10px; background: linear-gradient(180deg, #e6c28f 0%, #c4a070 100%); border-radius: 50%; animation: dm2-sand-pile 14s ease-in-out infinite alternate; }
.scn-defence-mountains-slowdown .column-soldiers { position:absolute; bottom:10%; left:25%; width:8px; height:28px; background: linear-gradient(180deg, #3a3c44 0%, #1a1c23 100%); border-radius: 20% 20% 10% 10%; box-shadow: 12px 0 0 #2a2c33, 24px 0 0 #3a3c44, 36px 0 0 #2a2c33, 48px 0 0 #3a3c44; animation: dm2-column 30s linear infinite; }
.scn-defence-mountains-slowdown .pack-animal { position:absolute; bottom:8%; left:8%; width:18px; height:14px; background: #4a4c54; border-radius: 40% 40% 30% 30%; box-shadow: 0 0 0 2px #2a2c33; animation: dm2-pack 30s linear infinite; }
@keyframes dm2-sky { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes dm2-sand-up { 0% { height:34px; } 100% { height:4px; } }
@keyframes dm2-sand-fall { 0% { opacity:0.9; transform: translateX(-50%) translateY(0); } 100% { opacity:0; transform: translateX(-50%) translateY(20px); } }
@keyframes dm2-sand-pile { 0% { height:8px; width:28px; } 100% { height:28px; width:48px; } }
@keyframes dm2-column { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }
@keyframes dm2-pack { 0% { transform: translateX(0); } 100% { transform: translateX(-60px); } }

/* scene: defence-mountains-small-post-extraordinary — calm / bright-interior — vertical shaft / tower */
.scn-defence-mountains-small-post-extraordinary { background: linear-gradient(180deg, #1a1512 0%, #2a1f1a 50%, #1a1512 100%); position: relative; overflow: hidden; }
.scn-defence-mountains-small-post-extraordinary .tower-stone { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #3a2f2b 0px, #3a2f2b 4px, #2a1f1a 4px, #2a1f1a 6px), repeating-linear-gradient(90deg, #3a2f2b 0px, #3a2f2b 4px, #2a1f1a 4px, #2a1f1a 6px); background-blend-mode: overlay; opacity:0.5; }
.scn-defence-mountains-small-post-extraordinary .arrow-slit { position:absolute; top:12%; left:50%; transform: translateX(-50%); width:8px; height:55%; background: linear-gradient(180deg, #a0b2c0 0%, #d4e1ec 40%, #a0b2c0 100%); border-radius: 30% 30% 30% 30%; box-shadow: 0 0 60px 30px rgba(160,178,192,0.3); animation: dm3-slit 18s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-extraordinary .peak-glimpse { position:absolute; top:18%; left:50%; transform: translateX(-50%); width:40px; height:45%; background: linear-gradient(180deg, #6a7f8a 0%, #3a4f5a 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: dm3-peak 15s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-extraordinary .banner-hanging { position:absolute; top:0; right:12%; width:18px; height:35%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: top center; animation: dm3-banner 7s ease-in-out infinite; }
.scn-defence-mountains-small-post-extraordinary .rope-ladder { position:absolute; bottom:4%; left:22%; width:4px; height:65%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); box-shadow: 12px 0 0 #7a6a5a, 24px 0 0 #8a7a6a; border-radius: 2px; animation: dm3-ladder 12s ease-in-out infinite; }
.scn-defence-mountains-small-post-extraordinary .sentry-guard { position:absolute; bottom:8%; left:50%; transform: translateX(-50%); width:18px; height:34px; background: #1a1512; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: dm3-sentry 5s ease-in-out infinite alternate; }
.scn-defence-mountains-small-post-extraordinary .torch-bracket { position:absolute; bottom:18%; right:18%; width:12px; height:18px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 70px 35px #ffa040; animation: dm3-torch 2s ease-in-out infinite alternate; }
@keyframes dm3-slit { 0%,100% { opacity:0.8; box-shadow: 0 0 40px 20px rgba(160,178,192,0.2); } 50% { opacity:1; box-shadow: 0 0 80px 40px rgba(160,178,192,0.5); } }
@keyframes dm3-peak { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes dm3-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(6deg) scaleX(1.08); } 100% { transform: rotate(-6deg) scaleX(0.92); } }
@keyframes dm3-sentry { 0% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(3deg); } }
@keyframes dm3-torch { 0% { transform: scale(0.9) translateY(1px); opacity:0.8; } 50% { transform: scale(1.15) translateY(-2px); opacity:1; } 100% { transform: scale(0.95) translateY(0); opacity:0.85; } }

/* scene: defence-mountains-absolutely-small — calm / bright-interior — wide horizon / silhouette */
.scn-defence-mountains-absolutely-small { background: linear-gradient(180deg, #e6d4b8 0%, #c4b49a 30%, #a0b2c0 60%, #6a7f8a 100%); position: relative; overflow: hidden; }
.scn-defence-mountains-absolutely-small .sky-dome { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, #f4e8c1 0%, #c4b49a 50%, transparent 100%); }
.scn-defence-mountains-absolutely-small .mtn-range-bg { position:absolute; bottom:20%; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a7f8a 0%, #4a5f6a 40%, #3a4f5a 100%); border-radius: 70% 30% 0 0 / 80% 40% 0 0; box-shadow: inset 0 15px 50px rgba(0,0,0,0.2); }
.scn-defence-mountains-absolutely-small .valley-mist { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(196, 180, 154, 0.7) 40%, rgba(160, 178, 192, 0.5) 100%); filter: blur(12px); animation: dm4-mist 18s ease-in-out infinite alternate; }
.scn-defence-mountains-absolutely-small .fort-tiny { position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:44px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 15% 15% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-defence-mountains-absolutely-small .fort-tiny::after { content:''; position:absolute; top:-12px; left:12px; width:20px; height:12px; background: #4a3a2a; border-radius: 30% 30% 0 0; }
.scn-defence-mountains-absolutely-small .banner-small { position:absolute; bottom:26%; left:50%; transform: translateX(-50%); width:3px; height:14px; background: #4a3b32; }
.scn-defence-mountains-absolutely-small .banner-small::after { content:''; position:absolute; top:0; left:1px; width:12px; height:7px; background: #c8553d; border-radius: 0 50% 50% 0; animation: dm4-flagwave 4s ease-in-out infinite; }
.scn-defence-mountains-absolutely-small .rider-solo { position:absolute; bottom:14%; left:5%; width:14px; height:20px; background: #1a1512; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: dm4-rider 30s linear infinite; }
.scn-defence-mountains-absolutely-small .eagle-soar { position:absolute; top:12%; left:5%; width:28px; height:10px; background: #2a2c33; border-radius: 50% 50% 50% 50% / 100% 100% 100% 100%; transform: rotate(-12deg); animation: dm4-eagle 22s linear infinite; }
@keyframes dm4-mist { 0%,100% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-6px); } }
@keyframes dm4-flagwave { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(12deg); } }
@keyframes dm4-rider { 0% { transform: translateX(0); } 100% { transform: translateX(90vw); } }
@keyframes dm4-eagle { 0% { transform: translateX(0) rotate(-12deg) scale(1); } 25% { transform: translateX(15vw) rotate(-6deg) scale(0.85); } 50% { transform: translateX(30vw) rotate(0deg) scale(1.1); } 75% { transform: translateX(45vw) rotate(6deg) scale(0.9); } 100% { transform: translateX(60vw) rotate(-12deg) scale(1); } }

/* defence-of-theatre-war-of-posts */
.scn-defence-of-theatre-war-of-posts {
  background: linear-gradient(180deg, #f5e6d3 0%, #e3c9a6 40%, #c4a57a 100%),
              radial-gradient(ellipse at 50% 100%, #d4b48c 0%, transparent 70%);
}
.scn-defence-of-theatre-war-of-posts .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d9c5a8 0%, #e8d7b8 50%, #d9c5a8 100%);
  border-bottom: 4px solid #b6946e;
}
.scn-defence-of-theatre-war-of-posts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6e563e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-defence-of-theatre-war-of-posts .desk {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #a8855e 0%, #7a623f 100%);
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.4);
  animation: dwp-desk 20s ease-in-out infinite;
}
.scn-defence-of-theatre-war-of-posts .map {
  position: absolute; bottom: 33%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(135deg, #ecd8b9 0%, #f2e4ce 50%, #e7d2ad 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 0 2px #c4a57a, 0 2px 8px rgba(0,0,0,0.3);
  animation: dwp-map 30s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-war-of-posts .fort {
  position: absolute; bottom: 35%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #6e5c44 0%, #4c3e2e 100%);
  border-radius: 2px 2px 4px 4px;
  transform: scaleY(0.6);
}
.scn-defence-of-theatre-war-of-posts .minifort-1 { left: 28%; animation: dwp-fort1 8s ease-in-out infinite; }
.scn-defence-of-theatre-war-of-posts .minifort-2 { right: 32%; animation: dwp-fort2 8s ease-in-out infinite 4s; }
.scn-defence-of-theatre-war-of-posts .candle {
  position: absolute; bottom: 28%; left: 35%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #faf1da 0%, #e6d5b5 100%);
  border-radius: 3px;
  transform: rotate(-5deg);
  animation: dwp-candle 5s ease-in-out infinite;
}
.scn-defence-of-theatre-war-of-posts .flame {
  position: absolute; bottom: 44%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffdf80 0%, #f5b342 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateX(1px) rotate(-10deg);
  animation: dwp-flame 2s ease-in-out infinite alternate;
  box-shadow: 0 0 16px 8px rgba(245,179,66,0.4);
}
.scn-defence-of-theatre-war-of-posts .pin {
  position: absolute; bottom: 40%; width: 6px; height: 6px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.5);
  animation: dwp-pin 12s ease-in-out infinite;
}
.scn-defence-of-theatre-war-of-posts .pin-a { left: 40%; animation-delay: 0s; }
@keyframes dwp-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes dwp-map {
  0% { transform: perspective(600px) rotateX(10deg) translateY(0); }
  25% { transform: perspective(600px) rotateX(12deg) translateY(-2px); }
  50% { transform: perspective(600px) rotateX(10deg) translateY(0); }
  75% { transform: perspective(600px) rotateX(8deg) translateY(2px); }
  100% { transform: perspective(600px) rotateX(10deg) translateY(0); }
}
@keyframes dwp-fort1 {
  0%, 100% { transform: scaleY(0.6) scaleX(1); }
  30% { transform: scaleY(0.7) scaleX(1.1); }
  60% { transform: scaleY(0.5) scaleX(0.9); }
}
@keyframes dwp-fort2 {
  0%, 100% { transform: scaleY(0.6) scaleX(1); }
  30% { transform: scaleY(0.7) scaleX(1.1); }
  60% { transform: scaleY(0.5) scaleX(0.9); }
}
@keyframes dwp-candle {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(-4deg) scaleY(1.02); }
}
@keyframes dwp-flame {
  0% { transform: translateX(1px) rotate(-10deg) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(0px) rotate(5deg) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-1px) rotate(-5deg) scaleY(0.9); opacity: 0.85; }
}
@keyframes dwp-pin {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

/* defence-of-theatre-late-campaign-2 */
.scn-defence-of-theatre-late-campaign-2 {
  background: linear-gradient(180deg, #d9c8a8 0%, #c4b090 30%, #b09878 60%, #a08868 100%),
              radial-gradient(ellipse at 50% 100%, #b8a080 0%, transparent 80%);
}
.scn-defence-of-theatre-late-campaign-2 .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #a78e6b 0%, #bca583 50%, #a78e6b 100%);
  border-bottom: 3px solid #8a704f;
}
.scn-defence-of-theatre-late-campaign-2 .fg-cabinet {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #7a6242 0%, #5c4830 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: dlc-cabinet 15s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-late-campaign-2 .scroll {
  position: absolute; bottom: 45%; left: 35%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #f5eddb 0%, #e6d8be 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: perspective(400px) rotateX(30deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: dlc-scroll 12s ease-in-out infinite;
}
.scn-defence-of-theatre-late-campaign-2 .seal {
  position: absolute; bottom: 40%; right: 32%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a0461a 0%, #702a0e 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dlc-seal 8s ease-in-out infinite;
}
.scn-defence-of-theatre-late-campaign-2 .quill {
  position: absolute; bottom: 50%; left: 32%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 100% 100% 0 0 / 80% 80% 0 0;
  transform: rotate(20deg) translateX(-10px);
  animation: dlc-quill 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-late-campaign-2 .inkwell {
  position: absolute; bottom: 38%; left: 20%; width: 14px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dlc-inkwell 10s ease-in-out infinite;
}
.scn-defence-of-theatre-late-campaign-2 .leaf {
  position: absolute; bottom: 65%; width: 12px; height: 6px;
  background: linear-gradient(135deg, #b87858 0%, #7a4a2e 100%);
  border-radius: 50% 0 50% 0;
  transform-origin: bottom center;
}
.scn-defence-of-theatre-late-campaign-2 .leaf-1 { left: 15%; animation: dlc-leaf1 25s linear infinite; }
.scn-defence-of-theatre-late-campaign-2 .leaf-2 { right: 20%; animation: dlc-leaf2 30s linear infinite 5s; }
.scn-defence-of-theatre-late-campaign-2 .leaf-3 { left: 70%; animation: dlc-leaf3 28s linear infinite 10s; }
@keyframes dlc-cabinet {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dlc-scroll {
  0% { transform: perspective(400px) rotateX(30deg) translateY(0); }
  30% { transform: perspective(400px) rotateX(32deg) translateY(-3px); }
  60% { transform: perspective(400px) rotateX(28deg) translateY(2px); }
  100% { transform: perspective(400px) rotateX(30deg) translateY(0); }
}
@keyframes dlc-seal {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes dlc-quill {
  0% { transform: rotate(20deg) translateX(-10px); }
  50% { transform: rotate(18deg) translateX(-12px) scaleY(1.02); }
  100% { transform: rotate(22deg) translateX(-8px); }
}
@keyframes dlc-inkwell {
  0%, 100% { transform: rotate(0); }
  50% { transform: rotate(-2deg); }
}
@keyframes dlc-leaf1 {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(180deg) translateX(30px); opacity: 0.6; }
  100% { transform: rotate(360deg) translateX(0); opacity: 0.3; }
}
@keyframes dlc-leaf2 {
  0% { transform: rotate(0deg) translateX(0) scaleY(1); }
  50% { transform: rotate(200deg) translateX(-25px) scaleY(0.8); }
  100% { transform: rotate(360deg) translateX(0) scaleY(1); }
}
@keyframes dlc-leaf3 {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(160deg) translateY(20px); }
  100% { transform: rotate(360deg) translateY(0); }
}

/* defence-of-theatre-modern-mobility */
.scn-defence-of-theatre-modern-mobility {
  background: linear-gradient(180deg, #e8e0d0 0%, #d4c8b4 40%, #bfaa92 100%),
              radial-gradient(ellipse at 30% 50%, #f5efe5 0%, transparent 70%);
}
.scn-defence-of-theatre-modern-mobility .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #d8c8b0 50%, #c8b8a0 100%);
  border-bottom: 3px solid #a8927a;
}
.scn-defence-of-theatre-modern-mobility .window-out {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #b8d8e8 0%, #8ab8d0 100%);
  border: 8px solid #7a6242;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: dmm-window 18s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-modern-mobility .tracks {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #4a4030 0%, #6a5a46 50%, #4a4030 100%);
  border-radius: 2px;
  animation: dmm-tracks 10s linear infinite;
}
.scn-defence-of-theatre-modern-mobility .train {
  position: absolute; bottom: 16%; left: -20%; width: 60px; height: 16px;
  background: linear-gradient(180deg, #7a623f 0%, #4c3a28 100%);
  border-radius: 4px 8px 8px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dmm-train 30s linear infinite;
}
.scn-defence-of-theatre-modern-mobility .train::before {
  content: ''; position: absolute; top: 2px; left: 40px; width: 18px; height: 10px;
  background: #a8855e;
  border-radius: 2px 4px 4px 2px;
}
.scn-defence-of-theatre-modern-mobility .smoke {
  position: absolute; bottom: 22%; width: 10px; height: 10px;
  background: rgba(200,200,200,0.4);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-defence-of-theatre-modern-mobility .smoke-1 { left: -10%; animation: dmm-smoke1 4s ease-out infinite; }
.scn-defence-of-theatre-modern-mobility .smoke-2 { left: -5%; animation: dmm-smoke2 4s ease-out infinite 2s; }
.scn-defence-of-theatre-modern-mobility .signal {
  position: absolute; bottom: 28%; right: 15%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a5a46 0%, #3a3022 100%);
  border-radius: 2px;
}
.scn-defence-of-theatre-modern-mobility .signal::after {
  content: ''; position: absolute; top: -6px; left: -2px; width: 8px; height: 8px;
  background: radial-gradient(circle, #d96c3e 0%, #a0461a 100%);
  border-radius: 50%;
  animation: dmm-signal 2s ease-in-out infinite;
}
.scn-defence-of-theatre-modern-mobility .lamp {
  position: absolute; bottom: 32%; left: 12%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%);
  border-radius: 2px;
}
.scn-defence-of-theatre-modern-mobility .lamp::after {
  content: ''; position: absolute; top: -4px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #d9b050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(255,224,128,0.5);
  animation: dmm-lamp 4s ease-in-out infinite alternate;
}
@keyframes dmm-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.92; transform: scale(0.99); }
}
@keyframes dmm-tracks {
  0% { background-position: 0 0; }
  100% { background-position: -40px 0; }
}
@keyframes dmm-train {
  0% { transform: translateX(0); }
  100% { transform: translateX(130vw); }
}
@keyframes dmm-smoke1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  100% { transform: translate(-30px, -40px) scale(2); opacity: 0; }
}
@keyframes dmm-smoke2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.5; }
  100% { transform: translate(-25px, -35px) scale(2.5); opacity: 0; }
}
@keyframes dmm-signal {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; box-shadow: 0 0 12px 4px #d96c3e; }
}
@keyframes dmm-lamp {
  0% { transform: scale(0.8); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}

/* defence-of-theatre-honour-of-arms */
.scn-defence-of-theatre-honour-of-arms {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c6b0 40%, #bfaa92 100%),
              radial-gradient(ellipse at 50% 0%, #f5efe0 0%, transparent 70%);
}
.scn-defence-of-theatre-honour-of-arms .bg-niche {
  position: absolute; inset: 0 15% 15% 15%;
  background: linear-gradient(135deg, #b8a88e 0%, #c8b8a0 50%, #b8a88e 100%);
  border-radius: 12px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: dha-niche 20s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-honour-of-arms .pedestal {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #7a6242 0%, #5c4830 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-defence-of-theatre-honour-of-arms .sword {
  position: absolute; bottom: 24%; left: 50%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #c0a080 0%, #e8d8b8 20%, #c0a080 80%, #8a7050 100%);
  transform: translateX(-50%) rotate(-5deg);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: dha-sword 8s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-honour-of-arms .sword::after {
  content: ''; position: absolute; top: -8px; left: -6px; width: 18px; height: 8px;
  background: linear-gradient(135deg, #d9b050 0%, #f5e080 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(5deg);
}
.scn-defence-of-theatre-honour-of-arms .wreath {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #6a8a52 0%, #4a6a3a 100%);
  border-radius: 50% 50% 50% 50% / 100% 100% 0 0;
  transform: translateX(-50%) rotate(10deg);
  animation: dha-wreath 12s ease-in-out infinite;
}
.scn-defence-of-theatre-honour-of-arms .ribbon {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 6px;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-30deg);
  animation: dha-ribbon 6s ease-in-out infinite alternate;
}
.scn-defence-of-theatre-honour-of-arms .medal {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #e8d8b8 0%, #c0a080 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,160,128,0.5);
}
.scn-defence-of-theatre-honour-of-arms .medal-1 { bottom: 30%; left: 35%; animation: dha-medal1 9s ease-in-out infinite; }
.scn-defence-of-theatre-honour-of-arms .medal-2 { bottom: 30%; right: 35%; animation: dha-medal2 9s ease-in-out infinite 4.5s; }
.scn-defence-of-theatre-honour-of-arms .shine {
  position: absolute; top: 10%; left: 30%; width: 20px; height: 10px;
  background: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: dha-shine 5s ease-in-out infinite alternate;
}
@keyframes dha-niche {
  0% { transform: scale(1); }
  50% { transform: scale(1.005); }
  100% { transform: scale(0.995); }
}
@keyframes dha-sword {
  0% { transform: translateX(-50%) rotate(-5deg); }
  30% { transform: translateX(-50%) rotate(-3deg) scaleY(1.01); }
  60% { transform: translateX(-50%) rotate(-7deg); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes dha-wreath {
  0%, 100% { transform: translateX(-50%) rotate(10deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(12deg) scaleY(0.95); }
}
@keyframes dha-ribbon {
  0% { transform: translateX(-50%) rotate(-30deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-28deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-32deg) translateY(1px); }
}
@keyframes dha-medal1 {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes dha-medal2 {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes dha-shine {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0.3; }
  50% { transform: translate(5px, -5px) scale(1.2); opacity: 0.7; }
  100% { transform: translate(-3px, 3px) scale(0.9); opacity: 0.4; }
}

/* Scene: passage-of-rivers-hindrance – calm, bright-interior */
.scn-passage-of-rivers-hindrance {
  background: linear-gradient(180deg, #b8d4e8 0%, #d4e8f4 40%, #f0f8ff 70%),
              radial-gradient(ellipse at 50% 100%, #f0f8ff 0%, transparent 60%);
}
.scn-passage-of-rivers-hindrance .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e0 0%, #c0dff0 70%, transparent); animation: prh-sky 12s ease-in-out infinite alternate; }
.scn-passage-of-rivers-hindrance .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fffbe6 0%, #ffe680 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px #ffe680; animation: prh-sun 16s ease-in-out infinite; }
.scn-passage-of-rivers-hindrance .hills-bg { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e6b 0%, #4a6a4a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: prh-hills 20s ease-in-out infinite; }
.scn-passage-of-rivers-hindrance .river { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a8ab5 0%, #a0cce8 50%, #c0dff0 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; animation: prh-river 8s ease-in-out infinite alternate; }
.scn-passage-of-rivers-hindrance .bridge { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, #5a3a2a 0%, #8a5a3a 25%, #5a3a2a 50%, #8a5a3a 75%, #5a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: prh-bridge 6s ease-in-out infinite; }
.scn-passage-of-rivers-hindrance .soldier-a { position:absolute; bottom:15%; left:35%; width:14px; height:30px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prh-soldier-a 5s ease-in-out infinite; }
.scn-passage-of-rivers-hindrance .soldier-b { position:absolute; bottom:15%; left:48%; width:14px; height:30px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prh-soldier-b 5s ease-in-out infinite 0.6s; }
.scn-passage-of-rivers-hindrance .cloud-a { position:absolute; top:18%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,220,240,.2) 100%); border-radius:50%; filter: blur(8px); animation: prh-cloud-a 40s linear infinite; }
.scn-passage-of-rivers-hindrance .cloud-b { position:absolute; top:8%; right:15%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(200,220,240,.1) 100%); border-radius:50%; filter: blur(6px); animation: prh-cloud-b 55s linear infinite reverse; }
@keyframes prh-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes prh-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.1) translate(2px,-2px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes prh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes prh-river { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes prh-bridge { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes prh-soldier-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes prh-soldier-b { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes prh-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes prh-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* Scene: passage-of-rivers-results – calm, bright-interior */
.scn-passage-of-rivers-results {
  background: linear-gradient(180deg, #c8d8e8 0%, #e8f0f8 40%, #f8fcff 70%),
              radial-gradient(ellipse at 50% 100%, #f8fcff 0%, transparent 60%);
}
.scn-passage-of-rivers-results .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a8c8e0 0%, #d0e8f8 60%, transparent); }
.scn-passage-of-rivers-results .sun { position:absolute; top:15%; left:20%; width:35px; height:35px; background: radial-gradient(circle, #fffef0 0%, #ffe066 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px #ffe066; animation: prr-sun 18s ease-in-out infinite; }
.scn-passage-of-rivers-results .river { position:absolute; bottom:12%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a8ab5 0%, #90bcd4 60%, #b0d0e0 100%); border-radius: 0 0 15% 15% / 0 0 8% 8%; animation: prr-river 10s ease-in-out infinite alternate; }
.scn-passage-of-rivers-results .fort { position:absolute; bottom:20%; left:55%; width:60px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: prr-fort 8s ease-in-out infinite; }
.scn-passage-of-rivers-results .flag { position:absolute; bottom:38%; left:66%; width:2px; height:12px; background: #3a2a1a; }
.scn-passage-of-rivers-results .flag::after { content:''; position:absolute; bottom:8px; left:1px; width:14px; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #8a5a4a 100%); border-radius: 0 4px 4px 0; animation: prr-flag 3s ease-in-out infinite; }
.scn-passage-of-rivers-results .defender-a { position:absolute; bottom:16%; left:48%; width:12px; height:28px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prr-def-a 6s ease-in-out infinite; }
.scn-passage-of-rivers-results .defender-b { position:absolute; bottom:16%; left:40%; width:12px; height:28px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prr-def-b 6s ease-in-out infinite 1.2s; }
.scn-passage-of-rivers-results .cloud { position:absolute; top:20%; right:30%; width:90px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(200,220,240,.15) 100%); border-radius:50%; filter: blur(7px); animation: prr-cloud 45s linear infinite; }
@keyframes prr-sun { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.08) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes prr-river { 0% { opacity:.75; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes prr-fort { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes prr-flag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes prr-def-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-3px) rotate(1deg); } 50% { transform: translateX(-6px) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes prr-def-b { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(4px) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes prr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: passage-of-rivers-mistakes – tense, overcast */
.scn-passage-of-rivers-mistakes {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, #4a4a5a 60%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-passage-of-rivers-mistakes .storm-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%); animation: prm-storm 4s ease-in-out infinite alternate; }
.scn-passage-of-rivers-mistakes .lightning-flash { position:absolute; top:10%; left:30%; width:2px; height:80px; background: rgba(255,255,255,.9); box-shadow: 0 0 20px 4px rgba(255,255,255,.6), 0 0 40px 8px rgba(255,255,255,.3); animation: prm-lightning 0.8s step-end infinite; }
.scn-passage-of-rivers-mistakes .river-rough { position:absolute; bottom:8%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a4a5a 0%, #3a5a6a 30%, #4a6a7a 60%, #5a7a8a 100%); border-radius: 0 0 25% 25% / 0 0 20% 20%; animation: prm-river 0.6s ease-in-out infinite alternate; }
.scn-passage-of-rivers-mistakes .bridge-broken { position:absolute; bottom:20%; left:20%; width:60%; height:3px; background: #3a2a1a; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: prm-bridge 2s ease-in-out infinite; }
.scn-passage-of-rivers-mistakes .bridge-broken::before { content:''; position:absolute; bottom:0; left:0; width:30%; height:8px; background: #4a3a2a; transform: rotate(-15deg); transform-origin: bottom left; }
.scn-passage-of-rivers-mistakes .bridge-broken::after { content:''; position:absolute; bottom:0; right:0; width:30%; height:8px; background: #4a3a2a; transform: rotate(15deg); transform-origin: bottom right; }
.scn-passage-of-rivers-mistakes .soldier-falling { position:absolute; bottom:30%; left:45%; width:10px; height:22px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center center; animation: prm-fall 1.5s ease infinite; }
.scn-passage-of-rivers-mistakes .debris { position:absolute; bottom:15%; left:30%; width:8px; height:6px; background: #4a3a2a; border-radius: 2px; animation: prm-debris 3s ease-in-out infinite; }
.scn-passage-of-rivers-mistakes .cloud-dark { position:absolute; width:120px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:50%; filter: blur(10px); }
.scn-passage-of-rivers-mistakes .cloud-c { top:12%; left:5%; animation: prm-cloud 20s linear infinite; }
.scn-passage-of-rivers-mistakes .cloud-d { top:22%; right:10%; width:90px; height:22px; animation: prm-cloud 35s linear infinite reverse; }
@keyframes prm-storm { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes prm-lightning { 0% { opacity:1; } 10% { opacity:0; } 20% { opacity:1; } 30% { opacity:0; } 40% { opacity:0; } 50% { opacity:0; } 60% { opacity:1; } 70% { opacity:0; } 80% { opacity:0; } 90% { opacity:0; } 100% { opacity:0; } }
@keyframes prm-river { 0% { transform: translateY(-1px) scaleY(1.02); } 50% { transform: translateY(1px) scaleY(0.98); } 100% { transform: translateY(-1px) scaleY(1.02); } }
@keyframes prm-bridge { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes prm-fall { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(8px,20px) rotate(30deg); } 40% { transform: translate(16px,40px) rotate(60deg); } 60% { transform: translate(24px,60px) rotate(90deg); } 80% { transform: translate(32px,80px) rotate(120deg); } 100% { transform: translate(40px,100px) rotate(150deg); opacity:0; } }
@keyframes prm-debris { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(20px,-30px) rotate(180deg); } 100% { transform: translate(40px,-60px) rotate(360deg); opacity:0; } }
@keyframes prm-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(100vw); } }

/* Scene: passage-of-rivers-tactical-not – calm, bright-interior */
.scn-passage-of-rivers-tactical-not {
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e8f0 50%, #e8f4f8 80%),
              radial-gradient(ellipse at 70% 100%, #f0f8ff 0%, transparent 60%);
}
.scn-passage-of-rivers-tactical-not .sky-clear { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8d8 0%, #c0dff0 70%, transparent); }
.scn-passage-of-rivers-tactical-not .sun { position:absolute; top:10%; right:25%; width:38px; height:38px; background: radial-gradient(circle, #fffbe6 0%, #ffe680 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 35px 10px #ffe680; animation: prt-sun 20s ease-in-out infinite; }
.scn-passage-of-rivers-tactical-not .river-quiet { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a8ab5 0%, #80b0c8 50%, #a0c8d8 100%); border-radius: 0 0 15% 15% / 0 0 8% 8%; animation: prt-river 12s ease-in-out infinite alternate; }
.scn-passage-of-rivers-tactical-not .tree { position:absolute; bottom:25%; left:10%; width:8px; height:40px; background: #3a2a1a; border-radius: 2px; }
.scn-passage-of-rivers-tactical-not .tree::before { content:''; position:absolute; top:-15px; left:-12px; width:30px; height:30px; background: radial-gradient(circle at 50% 100%, #4a8a4a 0%, #2a6a2a 50%, transparent 80%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 15px rgba(42,106,42,.3); animation: prt-tree 9s ease-in-out infinite; }
.scn-passage-of-rivers-tactical-not .boat { position:absolute; bottom:22%; left:45%; width:40px; height:10px; background: linear-gradient(90deg, #5a3a2a 0%, #8a5a3a 50%, #5a3a2a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: prt-boat 8s ease-in-out infinite; }
.scn-passage-of-rivers-tactical-not .rower { position:absolute; bottom:24%; left:52%; width:10px; height:18px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prt-rower 4s ease-in-out infinite; }
.scn-passage-of-rivers-tactical-not .bird-a { position:absolute; top:25%; left:30%; width:12px; height:8px; background: transparent; border-top: 2px solid #2a3a4a; border-radius: 50%; animation: prt-bird 4s ease-in-out infinite; }
.scn-passage-of-rivers-tactical-not .bird-a::before { content:''; position:absolute; top:-2px; left:6px; width:12px; height:8px; border-top: 2px solid #2a3a4a; border-radius: 50%; }
.scn-passage-of-rivers-tactical-not .bird-b { position:absolute; top:20%; left:38%; width:10px; height:6px; background: transparent; border-top: 2px solid #2a3a4a; border-radius: 50%; animation: prt-bird 5s ease-in-out infinite 0.8s; }
.scn-passage-of-rivers-tactical-not .bird-b::before { content:''; position:absolute; top:-2px; left:5px; width:10px; height:6px; border-top: 2px solid #2a3a4a; border-radius: 50%; }
@keyframes prt-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(2px,-2px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes prt-river { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes prt-tree { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes prt-boat { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes prt-rower { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes prt-bird { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-4px); } 100% { transform: translateX(20px) translateY(0); } }

.scn-subsistence-separate-advance {
  background:
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a0e 0%, #2a1f12 50%, #3a2a20 100%);
}
.scn-subsistence-separate-advance .wall-ssa {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1f12 0%, #3a2a20 50%, #2a1f12 100%);
  animation: ssa-wall 20s ease-in-out infinite alternate;
}
.scn-subsistence-separate-advance .floor-ssa {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f12 0%, #1a1208 100%);
}
.scn-subsistence-separate-advance .desk-ssa {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-subsistence-separate-advance .map-ssa {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 5%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 1px; box-shadow: inset 0 1px 3px rgba(0,0,0,0.3);
  transform: rotate(-2deg); animation: ssa-map 12s ease-in-out infinite;
}
.scn-subsistence-separate-advance .candle-ssa {
  position: absolute; bottom: 26%; left: 50%; width: 3px; height: 15px;
  background: linear-gradient(0deg, #d0a060 0%, #f0d090 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #d08040, 0 0 40px 16px rgba(208,128,64,0.3);
  transform-origin: bottom center; animation: ssa-candle 4s ease-in-out infinite alternate;
}
.scn-subsistence-separate-advance .figure-ssa {
  position: absolute; bottom: 18%; left: 45%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: ssa-figure 8s ease-in-out infinite;
}
.scn-subsistence-separate-advance .shadow-ssa {
  position: absolute; bottom: 18%; left: 44%; width: 20px; height: 4px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: ssa-shadow 8s ease-in-out infinite;
}
.scn-subsistence-separate-advance .shelf-ssa {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 3px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%);
  box-shadow: 0 8px 0 #3a2a1a, 0 16px 0 #2a1a0a;
  animation: ssa-shelf 30s linear infinite;
}

@keyframes ssa-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ssa-map {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
}
@keyframes ssa-candle {
  0% { box-shadow: 0 0 15px 6px #c08040, 0 0 30px 12px rgba(192,128,64,0.2); }
  50% { box-shadow: 0 0 25px 10px #d09050, 0 0 50px 20px rgba(208,144,80,0.4); }
  100% { box-shadow: 0 0 18px 7px #c08040, 0 0 35px 14px rgba(192,128,64,0.3); }
}
@keyframes ssa-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 ssa-shadow {
  0%, 100% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(0.8); }
}
@keyframes ssa-shelf {
  0% { transform: translateX(0); }
  100% { transform: translateX(-20px); }
}

/* --- */

.scn-separation-principle-grounds {
  background:
    radial-gradient(ellipse at 30% 70%, #2a1f12 0%, transparent 60%),
    linear-gradient(180deg, #1a1a0e 0%, #2a1f12 50%, #3a2a20 100%);
}
.scn-separation-principle-grounds .bg-spg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1f12 0%, #3a2a20 50%, #2a1f12 100%);
  animation: spg-bg 15s ease-in-out infinite alternate;
}
.scn-separation-principle-grounds .table-spg {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-separation-principle-grounds .line-spg {
  position: absolute; bottom: 18%; left: 50%; width: 2px; height: 8%;
  background: rgba(180,100,60,0.6);
  box-shadow: 0 0 8px 2px rgba(180,100,60,0.3);
  animation: spg-line 6s ease-in-out infinite alternate;
}
.scn-separation-principle-grounds .figureA-spg {
  position: absolute; bottom: 14%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); transform-origin: bottom center;
  animation: spg-figureA 10s ease-in-out infinite;
}
.scn-separation-principle-grounds .figureB-spg {
  position: absolute; bottom: 14%; right: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); transform-origin: bottom center;
  animation: spg-figureB 10s ease-in-out infinite;
}
.scn-separation-principle-grounds .candle-spg {
  position: absolute; bottom: 20%; left: 48%; width: 3px; height: 14px;
  background: linear-gradient(0deg, #d0a060 0%, #f0d090 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 18px 6px #c08040, 0 0 36px 14px rgba(192,128,64,0.3);
  animation: spg-candle 4.5s ease-in-out infinite alternate;
}
.scn-separation-principle-grounds .map-spg {
  position: absolute; bottom: 18%; left: 25%; width: 20%; height: 4%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 1px; transform: rotate(3deg); box-shadow: inset 0 1px 3px rgba(0,0,0,0.3);
  animation: spg-map 14s ease-in-out infinite;
}
.scn-separation-principle-grounds .lamp-spg {
  position: absolute; top: 20%; right: 15%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #d0a060 0%, #6a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(208,160,96,0.2);
  animation: spg-lamp 8s ease-in-out infinite alternate;
}

@keyframes spg-bg {
  0% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes spg-line {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.2); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes spg-figureA {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-4deg) translateY(-2px); }
  50% { transform: rotate(-6deg) translateY(0); }
  75% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes spg-figureB {
  0% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(6deg) translateY(-2px); }
  50% { transform: rotate(4deg) translateY(0); }
  75% { transform: rotate(7deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes spg-candle {
  0% { box-shadow: 0 0 12px 4px #b08040, 0 0 24px 10px rgba(176,128,64,0.25); }
  100% { box-shadow: 0 0 22px 8px #d09050, 0 0 44px 18px rgba(208,144,80,0.4); }
}
@keyframes spg-map {
  0%, 100% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
}
@keyframes spg-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(208,160,96,0.15); }
  100% { opacity: 1; box-shadow: 0 0 50px 25px rgba(208,160,96,0.3); }
}

/* --- */

.scn-folly-inexperienced-staff {
  background:
    radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 50%, #3a2020 100%);
}
.scn-folly-inexperienced-staff .wall-fis {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a1a 0%, #3a2020 50%, #2a1a1a 100%);
  animation: fis-wall 8s ease-in-out infinite alternate;
}
.scn-folly-inexperienced-staff .floor-fis {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-folly-inexperienced-staff .table-fis {
  position: absolute; bottom: 18%; left: 5%; width: 90%; height: 6%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1010 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: fis-table 3s ease-in-out infinite alternate;
}
.scn-folly-inexperienced-staff .papers-fis {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 3%;
  background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 1px; transform: rotate(-8deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: fis-papers 2.5s ease-in-out infinite alternate;
}
.scn-folly-inexperienced-staff .candle-fis {
  position: absolute; bottom: 22%; left: 55%; width: 3px; height: 14px;
  background: linear-gradient(0deg, #d08040 0%, #f0a060 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #c06030, 0 0 40px 16px rgba(192,96,48,0.4);
  animation: fis-candle 2s ease-in-out infinite alternate;
}
.scn-folly-inexperienced-staff .staff1-fis {
  position: absolute; bottom: 15%; left: 25%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: fis-staff1 4s ease-in-out infinite;
}
.scn-folly-inexperienced-staff .staff2-fis {
  position: absolute; bottom: 15%; left: 35%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-8deg); transform-origin: bottom center;
  animation: fis-staff2 4.5s ease-in-out infinite;
}
.scn-folly-inexperienced-staff .general-fis {
  position: absolute; bottom: 15%; left: 60%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg); transform-origin: bottom center;
  animation: fis-general 6s ease-in-out infinite;
}
.scn-folly-inexperienced-staff .shadow-fis {
  position: absolute; bottom: 14%; left: 20%; width: 50%; height: 4px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: fis-shadow 3s ease-in-out infinite alternate;
}

@keyframes fis-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fis-table {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes fis-papers {
  0% { transform: rotate(-8deg) translateX(0); }
  100% { transform: rotate(-6deg) translateX(5px); }
}
@keyframes fis-candle {
  0% { box-shadow: 0 0 15px 6px #b05030, 0 0 30px 12px rgba(176,80,48,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 28px 12px #d07040, 0 0 55px 22px rgba(208,112,64,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 8px #b05030, 0 0 35px 15px rgba(176,80,48,0.35); opacity: 0.95; }
}
@keyframes fis-staff1 {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(12deg) translateY(-3px); }
  50% { transform: rotate(8deg) translateY(0); }
  75% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes fis-staff2 {
  0% { transform: rotate(-8deg) translateY(0); }
  25% { transform: rotate(-10deg) translateY(-2px); }
  50% { transform: rotate(-6deg) translateY(0); }
  75% { transform: rotate(-12deg) translateY(-1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes fis-general {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes fis-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  100% { opacity: 0.7; transform: scaleX(1.2); }
}

/* --- */

.scn-single-aim-subordination {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%),
    linear-gradient(180deg, #1a1208 0%, #2a1a0a 50%, #3a2a1a 100%);
}
.scn-single-aim-subordination .bg-sas {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1208 0%, #2a1a0a 50%, #1a1208 100%);
  animation: sas-bg 25s ease-in-out infinite alternate;
}
.scn-single-aim-subordination .target-sas {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0a060 0%, #6a4a2a 30%, #3a2a1a 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(208,160,96,0.2);
  animation: sas-target 10s ease-in-out infinite;
}
.scn-single-aim-subordination .arrow-sas {
  position: absolute; bottom: 32%; left: 40%; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #8a6a4a 40%, #b09070 80%, transparent 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation: sas-arrow 6s ease-in-out infinite alternate;
}
.scn-single-aim-subordination .figure-sas {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sas-figure 12s ease-in-out infinite;
}
.scn-single-aim-subordination .candle-sas {
  position: absolute; bottom: 26%; left: 50%; width: 3px; height: 16px;
  background: linear-gradient(0deg, #d0a060 0%, #f0d090 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #d08040, 0 0 40px 16px rgba(208,128,64,0.3);
  animation: sas-candle 5s ease-in-out infinite alternate;
}
.scn-single-aim-subordination .glow-sas {
  position: absolute; bottom: 28%; left: 48%; width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(208,160,96,0.2) 0%, transparent 100%);
  border-radius: 50%; animation: sas-glow 5s ease-in-out infinite alternate;
}

@keyframes sas-bg {
  0% { opacity: 0.85; }
  100% { opacity: 0.95; }
}
@keyframes sas-target {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
}
@keyframes sas-arrow {
  0% { transform: rotate(-15deg); opacity: 0.6; }
  100% { transform: rotate(-12deg); opacity: 1; }
}
@keyframes sas-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 sas-candle {
  0% { box-shadow: 0 0 14px 5px #c08040, 0 0 28px 11px rgba(192,128,64,0.25); }
  50% { box-shadow: 0 0 24px 9px #d09050, 0 0 48px 19px rgba(208,144,80,0.4); }
  100% { box-shadow: 0 0 16px 6px #c08040, 0 0 32px 13px rgba(192,128,64,0.3); }
}
@keyframes sas-glow {
  0% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-spain-unity-monarchy {
  background:
    linear-gradient(180deg, #2c1a1a 0%, #4a2a2a 40%, #3a2020 100%),
    radial-gradient(ellipse at 50% 80%, #6a3a2a 0%, transparent 60%);
}
.scn-spain-unity-monarchy .wall {position:absolute; inset:0 0 25% 0; background: linear-gradient(0deg, transparent 0%, #1a0a0a 100%);}
.scn-spain-unity-monarchy .floor {position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0;}
.scn-spain-unity-monarchy .throne {position:absolute; bottom:20%; left:50%; width:120px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); animation: sp-throne 12s ease-in-out infinite alternate;}
.scn-spain-unity-monarchy .figure {position:absolute; bottom:16%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%; animation: sp-figure 8s ease-in-out infinite;}
.scn-spain-unity-monarchy .crown {position:absolute; bottom:78%; left:50%; width:30px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 12px 4px #c8a040; animation: sp-crown 4s ease-in-out infinite alternate;}
.scn-spain-unity-monarchy .globe {position:absolute; bottom:28%; right:20%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #4a6a8a 0%, #2a3a5a 60%, #0a0a1a 100%); box-shadow: 0 0 20px rgba(0,0,0,.5); animation: sp-globe 30s linear infinite;}
.scn-spain-unity-monarchy .scepter {position:absolute; bottom:18%; left:36%; width:4px; height:80px; background: linear-gradient(180deg, #c8a040 0%, #8a6a20 100%); transform: rotate(-15deg); transform-origin: bottom center; animation: sp-scepter 6s ease-in-out infinite;}
.scn-spain-unity-monarchy .candle {position:absolute; bottom:30%; left:26%; width:10px; height:20px; background: linear-gradient(180deg, #fff 0%, #e0a040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #e0a040; animation: sp-candle 2s ease-in-out infinite alternate;}
@keyframes sp-throne   { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes sp-figure   { 0% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes sp-crown    { 0% { opacity:.8; transform:translateX(-50%) translateY(0); } 50% { opacity:1; transform:translateX(-50%) translateY(-2px); } 100% { opacity:.85; transform:translateX(-50%) translateY(0); } }
@keyframes sp-globe    { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.05); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes sp-scepter  { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(2px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes sp-candle   { 0% { box-shadow: 0 0 15px 4px #e0a040; opacity:.9; } 50% { box-shadow: 0 0 25px 8px #ffd070; opacity:1; } 100% { box-shadow: 0 0 18px 5px #e0a040; opacity:.95; } }

.scn-standing-power-zenith-louis {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a223a 40%, #1e1a2e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a4a 0%, transparent 70%);
}
.scn-standing-power-zenith-louis .wall {position:absolute; inset:0 0 20% 0; background: linear-gradient(0deg, transparent 0%, #0e0a1a 100%);}
.scn-standing-power-zenith-louis .floor {position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a2a 0%, #0e0a1a 100%); border-radius: 5% 5% 0 0;}
.scn-standing-power-zenith-louis .pillar {position:absolute; bottom:0; left:15%; width:16px; height:100%; background: linear-gradient(90deg, #4a3a5a 0%, #6a4a6a 30%, #4a3a5a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: sta-pillar 20s ease-in-out infinite alternate;}
.scn-standing-power-zenith-louis .banner {position:absolute; bottom:30%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #8a2a3a 0%, #5a1a2a 100%); border-radius: 2px; transform-origin: top center; animation: sta-banner 6s ease-in-out infinite;}
.scn-standing-power-zenith-louis .figure {position:absolute; bottom:18%; left:50%; width:36px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 20% 20% 30% 30% / 50% 50% 40% 40%; animation: sta-figure 10s ease-in-out infinite;}
.scn-standing-power-zenith-louis .musket {position:absolute; bottom:20%; right:38%; width:4px; height:60px; background: #2a1a1a; transform: rotate(25deg); transform-origin: bottom center; animation: sta-musket 4s ease-in-out infinite;}
.scn-standing-power-zenith-louis .chandelier {position:absolute; top:8%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #c8a030 0%, #8a6a20 50%, transparent 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px #c8a030; animation: sta-chandelier 5s ease-in-out infinite alternate;}
@keyframes sta-pillar    { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sta-banner    { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes sta-figure    { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 50% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sta-musket    { 0% { transform: rotate(25deg) scaleX(1); } 50% { transform: rotate(28deg) scaleX(1.02); } 100% { transform: rotate(25deg) scaleX(1); } }
@keyframes sta-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); box-shadow: 0 0 25px 8px #c8a030; } 50% { transform:translateX(-50%) rotate(2deg); box-shadow: 0 0 35px 12px #e0b050; } 100% { transform:translateX(-50%) rotate(-2deg); box-shadow: 0 0 30px 10px #c8a030; } }

.scn-state-relations-altered-europe {
  background:
    linear-gradient(180deg, #1a202a 0%, #2a3040 40%, #1a202a 100%),
    radial-gradient(ellipse at 60% 50%, #3a4a5a 0%, transparent 60%);
}
.scn-state-relations-altered-europe .wall {position:absolute; inset:0 0 15% 0; background: linear-gradient(0deg, transparent 0%, #0a0e1a 100%);}
.scn-state-relations-altered-europe .globe {position:absolute; bottom:30%; left:40%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #4a7a9a 0%, #2a4a6a 40%, #0a1a2a 100%); box-shadow: 0 0 30px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.4); animation: stt-globe 25s linear infinite;}
.scn-state-relations-altered-europe .crack {position:absolute; bottom:30%; left:40%; width:80px; height:80px; border-radius:50%; background: repeating-linear-gradient(45deg, transparent 0px, transparent 4px, #6a4a4a 4px, #6a4a4a 6px); filter: blur(2px); opacity:.5; animation: stt-crack 8s ease-in-out infinite alternate;}
.scn-state-relations-altered-europe .figure {position:absolute; bottom:17%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: stt-figure 12s ease-in-out infinite;}
.scn-state-relations-altered-europe .hand {position:absolute; bottom:24%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: stt-hand 7s ease-in-out infinite;}
.scn-state-relations-altered-europe .quill {position:absolute; bottom:30%; left:42%; width:2px; height:40px; background: linear-gradient(180deg, #8a7a4a 0%, #0a0a0a 100%); transform: rotate(-20deg); transform-origin: bottom center; animation: stt-quill 5s ease-in-out infinite;}
.scn-state-relations-altered-europe .ink {position:absolute; bottom:15%; left:35%; width:12px; height:12px; border-radius:50%; background: radial-gradient(circle, #0a0a0a 0%, #2a1a1a 100%); box-shadow: 0 0 8px rgba(0,0,0,.8);}
@keyframes stt-globe   { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes stt-crack   { 0% { opacity:.3; transform: rotate(0deg); } 50% { opacity:.6; transform: rotate(10deg); } 100% { opacity:.3; transform: rotate(0deg); } }
@keyframes stt-figure  { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes stt-hand    { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes stt-quill   { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-theoretical-conception-epoch {
  background:
    linear-gradient(180deg, #1e1a2a 0%, #2a2a3a 40%, #1e1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%);
}
.scn-theoretical-conception-epoch .tent {position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2a3a 0%, #1e1a2a 50%, #2a2a3a 100%); border-radius: 0 0 20% 20%;}
.scn-theoretical-conception-epoch .ground {position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0;}
.scn-theoretical-conception-epoch .figure1 {position:absolute; bottom:24%; left:18%; width:30px; height:75px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: the-fig1 9s ease-in-out infinite;}
.scn-theoretical-conception-epoch .figure2 {position:absolute; bottom:24%; left:45%; width:32px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: the-fig2 11s ease-in-out infinite;}
.scn-theoretical-conception-epoch .figure3 {position:absolute; bottom:24%; left:68%; width:28px; height:72px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); animation: the-fig3 10s ease-in-out infinite;}
.scn-theoretical-conception-epoch .sword {position:absolute; bottom:24%; left:50%; width:3px; height:50px; background: linear-gradient(180deg, #6a6a7a 0%, #2a2a3a 100%); transform: rotate(20deg); transform-origin: bottom center; animation: the-sword 4s ease-in-out infinite;}
.scn-theoretical-conception-epoch .banner {position:absolute; bottom:40%; right:12%; width:40px; height:70px; background: linear-gradient(180deg, #6a3a4a 0%, #3a1a2a 100%); border-radius: 2px; transform-origin: top center; animation: the-banner 6s ease-in-out infinite;}
.scn-theoretical-conception-epoch .torch {position:absolute; bottom:38%; left:10%; width:8px; height:25px; background: linear-gradient(180deg, #8a4a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #c86a3a; animation: the-torch 2s ease-in-out infinite alternate;}
@keyframes the-fig1   { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes the-fig2   { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes the-fig3   { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes the-sword  { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(22deg) scaleX(1.03); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes the-banner { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-4deg); } }
@keyframes the-torch  { 0% { box-shadow: 0 0 15px 4px #c86a3a; opacity:.9; } 50% { box-shadow: 0 0 25px 8px #e08040; opacity:1; } 100% { box-shadow: 0 0 18px 5px #c86a3a; opacity:.95; } }

/* russia-1812-defensive-start — tense, dim interior, war room */
.scn-russia-1812-defensive-start {
  background:
    radial-gradient(ellipse 80% 60% at 30% 50%, #3a2a1a 0%, transparent 70%),
    radial-gradient(ellipse 70% 50% at 70% 40%, #2a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1f1810 0%, #2a1f14 40%, #1a1210 100%);
}
.scn-russia-1812-defensive-start .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(135deg, #2d2018 0%, #1f1610 100%);
  transform: skewY(-2deg); transform-origin: top left;
  animation: r12-wall-l 8s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(225deg, #2a1e16 0%, #1c1410 100%);
  transform: skewY(2deg); transform-origin: top right;
  animation: r12-wall-r 8s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .floor {
  position: absolute; inset: 65% 0 0 0;
  background: repeating-linear-gradient(90deg, #2a1e14 0px, #2a1e14 4px, #1f1610 4px, #1f1610 8px);
  transform: perspective(400px) rotateX(8deg);
  animation: r12-floor 12s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 18%;
  background: linear-gradient(160deg, #4a3520 0%, #302015 100%);
  border-radius: 2% 2% 6% 6% / 4% 4% 8% 8%;
  box-shadow: 0 8px 24px rgba(0,0,0,.7);
  animation: r12-table 6s ease-in-out infinite;
}
.scn-russia-1812-defensive-start .map {
  position: absolute; bottom: 23%; left: 30%; width: 36%; height: 12%;
  background: linear-gradient(140deg, #c8b88a 0%, #a89870 40%, #b8a878 100%);
  border-radius: 1%;
  box-shadow: inset 0 0 12px rgba(60,40,10,.5);
  transform: rotate(-1deg);
  animation: r12-map 10s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .candle {
  position: absolute; bottom: 34%; left: 46%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 60%, #8a6a3a 100%);
  border-radius: 2px;
  animation: r12-candle 4s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .officer {
  position: absolute; bottom: 18%; left: 22%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 60%, #1f1612 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: r12-officer 5s ease-in-out infinite;
}
.scn-russia-1812-defensive-start .shadow-figure {
  position: absolute; bottom: 16%; right: 20%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #0f0c0a 0%, #000 80%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  opacity: .6;
  filter: blur(2px);
  animation: r12-shadow 7s ease-in-out infinite alternate;
}
.scn-russia-1812-defensive-start .dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 45% 35%, rgba(200,180,140,.08) 0%, transparent 50%);
  filter: blur(8px);
  animation: r12-dust 20s ease-in-out infinite alternate;
}
@keyframes r12-wall-l { 0% { transform: skewY(-2deg); } 50% { transform: skewY(-1.5deg); } 100% { transform: skewY(-2.4deg); } }
@keyframes r12-wall-r { 0% { transform: skewY(2deg); } 50% { transform: skewY(1.6deg); } 100% { transform: skewY(2.2deg); } }
@keyframes r12-floor { 0% { transform: perspective(400px) rotateX(8deg) translateY(0); } 50% { transform: perspective(400px) rotateX(7.5deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(8.5deg) translateY(1px); } }
@keyframes r12-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes r12-map { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(-0.5deg) scale(1.01); } 100% { transform: rotate(-1.5deg) scale(0.99); } }
@keyframes r12-candle { 0% { transform: rotate(-2deg); opacity: .9; } 50% { transform: rotate(0deg); opacity: 1; } 100% { transform: rotate(2deg); opacity: .85; } }
@keyframes r12-officer { 0% { transform: rotate(-1deg) translateX(0); } 25% { transform: rotate(0deg) translateX(2px); } 50% { transform: rotate(1deg) translateX(0); } 75% { transform: rotate(0deg) translateX(-2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes r12-shadow { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .7; transform: scale(1.03); } 100% { opacity: .6; transform: scale(0.97); } }
@keyframes r12-dust { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }

/* limited-object-defined — calm, dim study */
.scn-limited-object-defined {
  background:
    radial-gradient(ellipse 60% 50% at 50% 40%, #3a3028 0%, transparent 70%),
    radial-gradient(ellipse 80% 30% at 50% 100%, #2a221c 0%, transparent 50%),
    linear-gradient(180deg, #1f1a16 0%, #2a2420 30%, #181412 100%);
}
.scn-limited-object-defined .bookshelf-bg {
  position: absolute; top: 6%; left: 5%; width: 28%; height: 70%;
  background: repeating-linear-gradient(180deg, #4a3a2a 0px, #4a3a2a 6px, #3a2e1e 6px, #3a2e1e 7px), linear-gradient(90deg, #3a2e20 0%, #2a2218 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: lo-bookshelf 24s ease-in-out infinite alternate;
}
.scn-limited-object-defined .desk {
  position: absolute; bottom: 18%; left: 28%; width: 44%; height: 16%;
  background: linear-gradient(160deg, #5a4a3a 0%, #3a2e20 60%, #2a2218 100%);
  border-radius: 2% 2% 4% 4% / 3% 3% 6% 6%;
  box-shadow: 0 6px 20px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(2deg);
  animation: lo-desk 14s ease-in-out infinite alternate;
}
.scn-limited-object-defined .book-open {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(140deg, #d4c4a0 0%, #c4b490 50%, #b8a880 100%);
  border-radius: 1% 1% 4% 4% / 2% 2% 6% 6%;
  box-shadow: inset 0 0 10px rgba(80,60,20,.4);
  transform: rotate(-2deg);
  animation: lo-book 20s ease-in-out infinite;
}
.scn-limited-object-defined .inkwell {
  position: absolute; bottom: 27%; left: 52%; width: 10px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #2a2220 0%, #0a0808 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: lo-ink 30s ease-in-out infinite alternate;
}
.scn-limited-object-defined .quill {
  position: absolute; bottom: 28%; left: 54%; width: 2px; height: 26px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a09070 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: lo-quill 6s ease-in-out infinite alternate;
}
.scn-limited-object-defined .scholar {
  position: absolute; bottom: 16%; left: 32%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2620 0%, #1a1612 60%, #26201c 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  filter: blur(1px);
  animation: lo-scholar 10s ease-in-out infinite alternate;
}
.scn-limited-object-defined .lamp-glow {
  position: absolute; bottom: 30%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d890 0%, rgba(240,216,144,.3) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lo-lamp 4s ease-in-out infinite alternate;
}
.scn-limited-object-defined .curtain-left {
  position: absolute; top: 0; left: 0; width: 6%; height: 100%;
  background: linear-gradient(90deg, #2a221c 0%, #1f1814 50%, transparent 100%);
  animation: lo-curtain-l 28s ease-in-out infinite alternate;
}
.scn-limited-object-defined .curtain-right {
  position: absolute; top: 0; right: 0; width: 6%; height: 100%;
  background: linear-gradient(270deg, #2a221c 0%, #1f1814 50%, transparent 100%);
  animation: lo-curtain-r 28s ease-in-out infinite alternate-reverse;
}
@keyframes lo-bookshelf { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes lo-desk { 0% { transform: perspective(600px) rotateX(2deg) translateY(0); } 50% { transform: perspective(600px) rotateX(1.8deg) translateY(-1px); } 100% { transform: perspective(600px) rotateX(2.2deg) translateY(1px); } }
@keyframes lo-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1.5deg) scale(1.01); } 100% { transform: rotate(-2.5deg) scale(0.99); } }
@keyframes lo-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes lo-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-2px); } 100% { transform: rotate(18deg) translateY(1px); } }
@keyframes lo-scholar { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes lo-lamp { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(0.95); } }
@keyframes lo-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes lo-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(1px); } }

/* waiting-better-times — calm, dim interior, window scene */
.scn-waiting-better-times {
  background:
    radial-gradient(ellipse 50% 40% at 50% 30%, #2a2830 0%, transparent 80%),
    radial-gradient(ellipse 70% 50% at 50% 100%, #1a1820 0%, transparent 60%),
    linear-gradient(180deg, #1c1a22 0%, #26242e 35%, #14121a 100%);
}
.scn-waiting-better-times .window-frame {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 56%;
  background: linear-gradient(160deg, #4a4238 0%, #2a2620 60%, #1a1814 100%);
  border-radius: 2% 2% 4% 4% / 3% 3% 6% 6%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.5);
  animation: wt-frame 20s ease-in-out infinite alternate;
}
.scn-waiting-better-times .window-pane {
  position: absolute; top: 12%; left: 28%; width: 44%; height: 48%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #1a2228 100%);
  border-radius: 1%;
  box-shadow: inset 0 0 40px rgba(20,30,60,.6);
  animation: wt-pane 15s ease-in-out infinite alternate;
}
.scn-waiting-better-times .night-sky {
  position: absolute; top: 12%; left: 28%; width: 44%; height: 48%;
  background: radial-gradient(circle at 60% 20%, rgba(200,200,220,.15) 0%, transparent 50%);
  border-radius: 1%;
  animation: wt-sky 30s ease-in-out infinite alternate;
}
.scn-waiting-better-times .sill {
  position: absolute; bottom: 32%; left: 24%; width: 52%; height: 4%;
  background: linear-gradient(180deg, #5a4e3e 0%, #3a3226 100%);
  border-radius: 2% 2% 8% 8% / 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: wt-sill 18s ease-in-out infinite alternate;
}
.scn-waiting-better-times .figure-waiting {
  position: absolute; bottom: 18%; left: 44%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1c22 0%, #0e1016 50%, #161820 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: wt-figure 6s ease-in-out infinite;
}
.scn-waiting-better-times .chair {
  position: absolute; bottom: 16%; left: 42%; width: 28px; height: 30px;
  background: linear-gradient(160deg, #3a3226 0%, #1f1a14 100%);
  border-radius: 4% 4% 10% 10% / 6% 6% 12% 12%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: wt-chair 10s ease-in-out infinite alternate;
}
.scn-waiting-better-times .floor-planks {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 18%;
  background: repeating-linear-gradient(90deg, #2a2620 0px, #2a2620 6px, #22201a 6px, #22201a 7px);
  transform: perspective(300px) rotateX(4deg);
  animation: wt-floor 22s ease-in-out infinite alternate;
}
.scn-waiting-better-times .candle-sconce {
  position: absolute; bottom: 28%; left: 18%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #6a5a42 0%, #3a2e22 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 2px rgba(200,180,140,.15);
  animation: wt-sconce 8s ease-in-out infinite alternate;
}
.scn-waiting-better-times .moth {
  position: absolute; top: 20%; left: 65%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(220,210,180,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: wt-moth 7s ease-in-out infinite;
}
@keyframes wt-frame { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.997); } }
@keyframes wt-pane { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes wt-sky { 0% { opacity: .3; transform: translateY(0); } 50% { opacity: .5; transform: translateY(-2px); } 100% { opacity: .35; transform: translateY(1px); } }
@keyframes wt-sill { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes wt-figure { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(0.5deg) translateX(1px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-0.5deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes wt-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes wt-floor { 0% { transform: perspective(300px) rotateX(4deg) translateY(0); } 50% { transform: perspective(300px) rotateX(3.8deg) translateY(-1px); } 100% { transform: perspective(300px) rotateX(4.2deg) translateY(1px); } }
@keyframes wt-sconce { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .7; } }
@keyframes wt-moth { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(8px, -12px) rotate(45deg); } 50% { transform: translate(16px, 0) rotate(0deg); } 75% { transform: translate(8px, 8px) rotate(-45deg); } 100% { transform: translate(0, 0) rotate(0deg); } }

/* third-case-offensive — calm, dim command tent interior */
.scn-third-case-offensive {
  background:
    radial-gradient(ellipse 70% 50% at 50% 30%, #3a322a 0%, transparent 70%),
    radial-gradient(ellipse 50% 60% at 30% 70%, #2a2420 0%, transparent 50%),
    linear-gradient(180deg, #1f1c18 0%, #2a2620 30%, #181612 100%);
}
.scn-third-case-offensive .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2a2618 0%, #1f1c12 60%, #141210 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: tc-wall 18s ease-in-out infinite alternate;
}
.scn-third-case-offensive .tent-roof {
  position: absolute; top: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #3a3420 0%, #2a2618 60%, transparent 100%);
  clip-path: polygon(10% 100%, 90% 100%, 100% 0%, 0% 0%);
  animation: tc-roof 14s ease-in-out infinite alternate;
}
.scn-third-case-offensive .camp-table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 16%;
  background: linear-gradient(160deg, #4a3e2a 0%, #3a2e1e 60%, #2a2216 100%);
  border-radius: 2% 2% 5% 5% / 3% 3% 6% 6%;
  box-shadow: 0 6px 24px rgba(0,0,0,.7);
  transform: perspective(500px) rotateX(3deg);
  animation: tc-table 8s ease-in-out infinite alternate;
}
.scn-third-case-offensive .battle-map {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(140deg, #c8b88a 0%, #b0a078 40%, #c0b080 100%);
  border-radius: 1%;
  box-shadow: inset 0 0 14px rgba(60,40,10,.4);
  transform: rotate(-1deg);
  animation: tc-map 12s ease-in-out infinite alternate;
}
.scn-third-case-offensive .commander {
  position: absolute; bottom: 14%; left: 34%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a16 0%, #0e0e0c 50%, #161612 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: tc-commander 5s ease-in-out infinite;
}
.scn-third-case-offensive .officer-aide {
  position: absolute; bottom: 15%; right: 28%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2620 0%, #1a1814 60%, #24201c 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: tc-aide 7s ease-in-out infinite alternate;
}
.scn-third-case-offensive .lantern-hook {
  position: absolute; top: 22%; left: 50%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: tc-hook 16s ease-in-out infinite alternate;
}
.scn-third-case-offensive .lantern-light {
  position: absolute; top: 28%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, #f0d080 0%, rgba(240,208,128,.3) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tc-lantern 4s ease-in-out infinite alternate;
}
.scn-third-case-offensive .draft-document {
  position: absolute; bottom: 24%; left: 58%; width: 12%; height: 6%;
  background: linear-gradient(140deg, #d4c4a0 0%, #c4b490 50%, #b8a880 100%);
  border-radius: 1%;
  box-shadow: inset 0 0 6px rgba(60,40,10,.3);
  transform: rotate(4deg);
  animation: tc-document 20s ease-in-out infinite;
}
@keyframes tc-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes tc-roof { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes tc-table { 0% { transform: perspective(500px) rotateX(3deg) translateY(0); } 50% { transform: perspective(500px) rotateX(2.8deg) translateY(-2px); } 100% { transform: perspective(500px) rotateX(3.2deg) translateY(1px); } }
@keyframes tc-map { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(-0.6deg) scale(1.01); } 100% { transform: rotate(-1.4deg) scale(0.99); } }
@keyframes tc-commander { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(0.5deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-0.5deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes tc-aide { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(0.3deg) translateY(-2px); } 100% { transform: rotate(-0.3deg) translateY(1px); } }
@keyframes tc-hook { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(0.97); } }
@keyframes tc-lantern { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: .8; transform: scale(0.95); } }
@keyframes tc-document { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(3.5deg) translateY(-1px); } 100% { transform: rotate(4.5deg) translateY(1px); } }

.scn-attack-on-fortresses {
  background: 
    linear-gradient(135deg, #f5e6c8 0%, #dbb88c 50%, #c9a96e 100%),
    radial-gradient(ellipse at 30% 60%, #e8d4a0 0%, transparent 70%);
}
.scn-attack-on-fortresses .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 60%, #b8a080 100%);
  animation: afo-room 20s ease-in-out infinite alternate;
}
.scn-attack-on-fortresses .window-frame {
  position: absolute; top: 5%; left: 65%; width: 25%; height: 40%;
  background: #6a5a4a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: afo-frame 12s ease-in-out infinite alternate;
}
.scn-attack-on-fortresses .window-light {
  position: absolute; top: 7%; left: 67%; width: 21%; height: 36%;
  background: radial-gradient(circle at 50% 30%, #fff9d6 0%, #ffe68c 40%, #e0b060 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 40px 10px rgba(255,230,140,0.7);
  animation: afo-window-glow 4s ease-in-out infinite alternate;
}
.scn-attack-on-fortresses .desk {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 5%;
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #6a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 8px 15px rgba(0,0,0,0.4);
  animation: afo-desk 18s ease-in-out infinite;
}
.scn-attack-on-fortresses .candle {
  position: absolute; bottom: 18%; left: 35%; width: 2%; height: 5%;
  background: linear-gradient(0deg, #e8d4b0 0%, #f5e6c8 100%);
  border-radius: 10% 10% 5% 5%;
  animation: afo-candle-bob 3s ease-in-out infinite;
}
.scn-attack-on-fortresses .flame {
  position: absolute; bottom: 23%; left: 35.5%; width: 1.8%; height: 4%;
  background: radial-gradient(circle at 50% 30%, #fffae0 0%, #ffd080 40%, #ff8c00 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 15px rgba(255, 160, 64, 0.4);
  animation: afo-flame 0.8s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-attack-on-fortresses .map {
  position: absolute; bottom: 15%; left: 20%; width: 35%; height: 10%;
  background: linear-gradient(135deg, #d8c8a8 0%, #c0b090 40%, #a89878 100%);
  border-radius: 2% 2% 5% 5% / 10% 10% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: afo-map 6s ease-in-out infinite alternate;
}
.scn-attack-on-fortresses .quill {
  position: absolute; bottom: 16%; left: 55%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #c0a080 0%, #806050 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(15deg);
  animation: afo-quill 4s ease-in-out infinite alternate;
}
.scn-attack-on-fortresses .figure {
  position: absolute; bottom: 12%; left: 42%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: afo-figure 5s ease-in-out infinite;
}
@keyframes afo-room { 0% { opacity: 0.92; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes afo-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes afo-window-glow { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,230,140,0.6); } 50% { opacity: 1; box-shadow: 0 0 60px 15px rgba(255,230,140,0.9); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(255,230,140,0.7); } }
@keyframes afo-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes afo-candle-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes afo-flame { 0% { transform: scaleY(1) scaleX(0.9) translateY(0); } 50% { transform: scaleY(1.1) scaleX(1) translateY(-2px); } 100% { transform: scaleY(1) scaleX(0.85) translateY(0); } }
@keyframes afo-map { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes afo-quill { 0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes afo-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

.scn-attack-fortresses-crisis {
  background: 
    linear-gradient(180deg, #2c3e4e 0%, #1a2a3a 40%, #0f1a2a 100%),
    radial-gradient(ellipse at 80% 20%, #4a5a6a 0%, transparent 60%);
}
.scn-attack-fortresses-crisis .sky-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2c3e4e 60%, #1a2a3a 100%);
  animation: afc-sky 8s ease-in-out infinite alternate;
}
.scn-attack-fortresses-crisis .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, rgba(100,120,140,0.6) 0%, rgba(80,100,120,0.3) 50%, rgba(60,80,100,0.6) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: afc-clouds 14s ease-in-out infinite;
}
.scn-attack-fortresses-crisis .fortress {
  position: absolute; bottom: 15%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 60%, #1a2a3a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: afc-fortress 10s ease-in-out infinite alternate;
}
.scn-attack-fortresses-crisis .battlement {
  position: absolute; bottom: 45%; left: 20%; width: 30%; height: 5%;
  background: linear-gradient(90deg, #2a3a4a 0%, #3a4a5a 50%, #1a2a3a 100%);
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
  animation: afc-battlement 5s ease-in-out infinite;
}
.scn-attack-fortresses-crisis .cannon {
  position: absolute; bottom: 28%; left: 35%; width: 6%; height: 8%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(15deg);
  animation: afc-cannon 4s ease-in-out infinite alternate;
}
.scn-attack-fortresses-crisis .flag {
  position: absolute; bottom: 52%; left: 35%; width: 1.5%; height: 6%;
  background: #a04030; /* desaturated red, avoid pure crimson */
  border-radius: 10% 10% 0 0;
  animation: afc-flag 1.2s ease-in-out infinite;
  transform-origin: bottom left;
}
.scn-attack-fortresses-crisis .commander {
  position: absolute; bottom: 20%; left: 26%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: afc-commander 3s ease-in-out infinite;
}
.scn-attack-fortresses-crisis .lightning {
  position: absolute; top: 2%; left: 60%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #fff 0%, #e8f0ff 40%, transparent 100%);
  filter: blur(2px);
  clip-path: polygon(50% 0%, 60% 40%, 40% 40%, 50% 100%, 55% 60%, 45% 60%);
  animation: afc-lightning 3s ease-in-out infinite;
}
@keyframes afc-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes afc-clouds { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(1.05); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes afc-fortress { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes afc-battlement { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes afc-cannon { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }
@keyframes afc-flag { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes afc-commander { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes afc-lightning { 0% { opacity: 0; } 40% { opacity: 0.9; } 45% { opacity: 0; } 100% { opacity: 0; } }

.scn-attack-fortresses-choice {
  background: 
    linear-gradient(135deg, #e8d8c0 0%, #d0b898 50%, #b8a080 100%),
    radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 70%);
}
.scn-attack-fortresses-choice .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 60%, #988870 100%);
  animation: afch-room 15s ease-in-out infinite alternate;
}
.scn-attack-fortresses-choice .table {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 40%, #7a6a5a 100%);
  border-radius: 4px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: afch-table 20s ease-in-out infinite;
}
.scn-attack-fortresses-choice .fortress-a {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: afch-fortress-a 6s ease-in-out infinite alternate;
}
.scn-attack-fortresses-choice .fortress-b {
  position: absolute; bottom: 22%; left: 55%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: afch-fortress-b 8s ease-in-out infinite alternate;
}
.scn-attack-fortresses-choice .map {
  position: absolute; bottom: 12%; left: 38%; width: 25%; height: 8%;
  background: linear-gradient(135deg, #c8b898 0%, #b8a888 50%, #a89878 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: afch-map 4s ease-in-out infinite alternate;
}
.scn-attack-fortresses-choice .hand {
  position: absolute; bottom: 15%; left: 32%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: afch-hand 5s ease-in-out infinite;
}
.scn-attack-fortresses-choice .lamp {
  position: absolute; top: 5%; left: 45%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #d0b888 0%, #b09868 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 60px 20px rgba(200,180,120,0.6);
  animation: afch-lamp 7s ease-in-out infinite alternate;
}
@keyframes afch-room { 0% { opacity: 0.92; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes afch-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes afch-fortress-a { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes afch-fortress-b { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(1); } }
@keyframes afch-map { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes afch-hand { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(5px); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes afch-lamp { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }

.scn-attack-fortresses-facility {
  background: 
    linear-gradient(135deg, #d8c8b0 0%, #c0b098 50%, #a89078 100%),
    radial-gradient(ellipse at 70% 20%, #e8d8c0 0%, transparent 60%);
}
.scn-attack-fortresses-facility .floor {
  position: absolute; inset: auto 0 0 0; height: 20%;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
  animation: aff-floor 18s ease-in-out infinite alternate;
}
.scn-attack-fortresses-facility .wall-rack {
  position: absolute; top: 5%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: aff-rack 12s ease-in-out infinite;
}
.scn-attack-fortresses-facility .cannon-barrel {
  position: absolute; bottom: 25%; left: 30%; width: 10%; height: 8%;
  background: linear-gradient(0deg, #3a3a4a 0%, #5a5a6a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: aff-barrel 6s ease-in-out infinite alternate;
}
.scn-attack-fortresses-facility .wheel {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 12%;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  border: 4px solid #4a3a2a;
  box-shadow: 0 0 0 2px #2a1a0a;
  animation: aff-wheel 4s linear infinite;
}
.scn-attack-fortresses-facility .crate {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #9a8a6a 0%, #7a6a4a 100%);
  border: 2px solid #5a4a2a;
  border-radius: 2px;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.3);
  animation: aff-crate 10s ease-in-out infinite alternate;
}
.scn-attack-fortresses-facility .plans {
  position: absolute; bottom: 15%; left: 70%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #c8b898 0%, #b8a888 100%);
  border-radius: 1px 1px 4px 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: aff-plans 5s ease-in-out infinite alternate;
}
.scn-attack-fortresses-facility .tool-shade {
  position: absolute; bottom: 18%; left: 45%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(10deg);
  animation: aff-tool 3s ease-in-out infinite;
}
.scn-attack-fortresses-facility .candle {
  position: absolute; bottom: 28%; left: 50%; width: 2%; height: 5%;
  background: linear-gradient(0deg, #e8d4b0 0%, #f5e6c8 100%);
  border-radius: 10% 10% 5% 5%;
  animation: aff-candle-bob 3s ease-in-out infinite;
}
.scn-attack-fortresses-facility .flame {
  position: absolute; bottom: 33%; left: 50.5%; width: 1.8%; height: 4%;
  background: radial-gradient(circle at 50% 30%, #fffae0 0%, #ffd080 40%, #ff8c00 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 15px rgba(255, 160, 64, 0.4);
  animation: aff-flame 0.8s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
@keyframes aff-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes aff-rack { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aff-barrel { 0% { transform: rotate(-7deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-7deg); } }
@keyframes aff-wheel { 0% { transform: rotate(0deg); } 50% { transform: rotate(90deg); } 100% { transform: rotate(180deg); } }
@keyframes aff-crate { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes aff-plans { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aff-tool { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes aff-candle-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aff-flame { 0% { transform: scaleY(1) scaleX(0.9) translateY(0); } 50% { transform: scaleY(1.1) scaleX(1) translateY(-2px); } 100% { transform: scaleY(1) scaleX(0.85) translateY(0); } }

/* scene 1: attack-fortresses-circumvallation (tense, overcast) */
.scn-attack-fortresses-circumvallation {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 80%);
}
.scn-attack-fortresses-circumvallation .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(90,90,110,0.6) 0%, rgba(60,60,80,0.2) 100%);
  animation: afc-sky 20s ease-in-out infinite alternate;
}
.scn-attack-fortresses-circumvallation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-attack-fortresses-circumvallation .circumvallation-wall {
  position: absolute; bottom: 30%; left: 5%; width: 90%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: afc-wall 8s ease-in-out infinite alternate;
}
.scn-attack-fortresses-circumvallation .tower-left {
  position: absolute; bottom: 55%; left: 18%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: afc-tower 12s ease-in-out infinite;
}
.scn-attack-fortresses-circumvallation .tower-right {
  position: absolute; bottom: 55%; right: 18%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: afc-tower 12s ease-in-out infinite;
  animation-delay: -6s;
}
.scn-attack-fortresses-circumvallation .soldier-line {
  position: absolute; bottom: 54%; left: 20%; right: 20%; height: 6px;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 4px, transparent 4px, transparent 8px);
  background-size: 8px 100%;
  animation: afc-soldiers 3s ease-in-out infinite alternate;
}
.scn-attack-fortresses-circumvallation .soldier-scout {
  position: absolute; bottom: 53%; left: 35%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: afc-scout 4s ease-in-out infinite;
}
.scn-attack-fortresses-circumvallation .flag {
  position: absolute; bottom: 60%; left: 50%; width: 14px; height: 24px;
  background: #c8553d; /* desaturated red */
  border-radius: 2px 8px 8px 2px;
  box-shadow: 2px 0 6px rgba(200,85,61,0.4);
  animation: afc-flag 2s ease-in-out infinite alternate;
}
.scn-attack-fortresses-circumvallation .siege-ladder {
  position: absolute; bottom: 30%; right: 25%; width: 4px; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: afc-ladder 6s ease-in-out infinite;
}
@keyframes afc-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes afc-wall { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes afc-tower { 0%, 100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-1px) rotate(0.5deg); } 66% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes afc-soldiers { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-0.5px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.9; } }
@keyframes afc-scout { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes afc-flag { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes afc-ladder { 0%, 100% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } }

/* scene 2: attack-fortresses-30-years (calm, bright-interior) */
.scn-attack-fortresses-30-years {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 40%, #b89a6a 100%),
              radial-gradient(ellipse at 50% 0%, #fef0d0 0%, transparent 70%);
}
.scn-attack-fortresses-30-years .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4b88a 0%, #c0a070 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: af30-wall 15s ease-in-out infinite alternate;
}
.scn-attack-fortresses-30-years .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-attack-fortresses-30-years .table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: af30-table 10s ease-in-out infinite;
}
.scn-attack-fortresses-30-years .map {
  position: absolute; bottom: 14%; left: 32%; width: 36%; height: 10%;
  background: repeating-linear-gradient(90deg, #d4c0a0 0px, #d4c0a0 4px, transparent 4px, transparent 8px),
              linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: af30-map 12s ease-in-out infinite alternate;
}
.scn-attack-fortresses-30-years .candle-glow {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #f0c040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,192,64,0.4);
  animation: af30-candle 3s ease-in-out infinite alternate;
}
.scn-attack-fortresses-30-years .candle-body {
  position: absolute; bottom: 25%; left: 49%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b080 100%);
  border-radius: 4px;
}
.scn-attack-fortresses-30-years .figure-seated {
  position: absolute; bottom: 14%; left: 55%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af30-figure 6s ease-in-out infinite;
}
.scn-attack-fortresses-30-years .tapestry {
  position: absolute; top: 5%; right: 5%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #5e1a1d 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: af30-tapestry 8s ease-in-out infinite alternate;
}
@keyframes af30-wall { 0%, 100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes af30-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes af30-map { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: 0 0; } }
@keyframes af30-candle { 0% { box-shadow: 0 0 30px 10px rgba(240,192,64,0.3); transform: scale(0.95); } 50% { box-shadow: 0 0 50px 20px rgba(255,224,128,0.6); transform: scale(1.05); } 100% { box-shadow: 0 0 35px 12px rgba(240,192,64,0.4); transform: scale(1); } }
@keyframes af30-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes af30-tapestry { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

/* scene 3: attack-fortresses-army-of-observation (calm, bright-interior) */
.scn-attack-fortresses-army-of-observation {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 40%, #b89a6a 100%),
              radial-gradient(ellipse at 50% 100%, #fee8c0 0%, transparent 80%);
}
.scn-attack-fortresses-army-of-observation .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4b88a 0%, #c0a070 100%);
  border-radius: 0 0 20% 20%;
}
.scn-attack-fortresses-army-of-observation .window-glow {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #fff8e0 0%, #f0e0b0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 30px rgba(255,248,224,0.5);
  animation: afao-window 8s ease-in-out infinite alternate;
}
.scn-attack-fortresses-army-of-observation .window-frame {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 60px;
  border: 4px solid #6a4a2a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  pointer-events: none;
}
.scn-attack-fortresses-army-of-observation .telescope {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #c8b080 0%, #8a6a3a 100%);
  border-radius: 4px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: afao-telescope 10s ease-in-out infinite;
}
.scn-attack-fortresses-army-of-observation .observer-figure {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: afao-figure 6s ease-in-out infinite;
}
.scn-attack-fortresses-army-of-observation .desk {
  position: absolute; bottom: 8%; left: 30%; width: 45%; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-attack-fortresses-army-of-observation .paper-stack {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 5px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: afao-papers 15s ease-in-out infinite alternate;
}
.scn-attack-fortresses-army-of-observation .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.2) 0%, transparent 50%);
  animation: afao-dust 20s linear infinite;
}
@keyframes afao-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes afao-telescope { 0%, 100% { transform: rotate(-30deg); } 50% { transform: rotate(-28deg); } }
@keyframes afao-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(1deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes afao-papers { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes afao-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-30px); } }

/* scene 4: attack-on-convoys (calm, bright-interior) */
.scn-attack-on-convoys {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 40%, #b89a6a 100%),
              radial-gradient(ellipse at 50% 0%, #fef0d0 0%, transparent 70%);
}
.scn-attack-on-convoys .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b080 0%, #a88a5a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-attack-on-convoys .walls {
  position: absolute; top: 20%; left: 0; right: 0; bottom: 15%;
  background: linear-gradient(180deg, #d4b88a 0%, #c0a070 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-attack-on-convoys .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-attack-on-convoys .command-table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: aoc-table 10s ease-in-out infinite;
}
.scn-attack-on-convoys .convoy-map {
  position: absolute; bottom: 20%; left: 28%; width: 44%; height: 7%;
  background: repeating-linear-gradient(90deg, #d4c0a0 0px, #d4c0a0 5px, transparent 5px, transparent 10px),
              radial-gradient(circle at 30% 50%, #c8b890 0%, transparent 60%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: aoc-map 12s ease-in-out infinite alternate;
}
.scn-attack-on-convoys .map-markers {
  position: absolute; bottom: 21%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, transparent 60%);
  border-radius: 50%;
  animation: aoc-markers 4s ease-in-out infinite alternate;
}
.scn-attack-on-convoys .standing-figure-left {
  position: absolute; bottom: 12%; left: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aoc-figure 6s ease-in-out infinite;
}
.scn-attack-on-convoys .standing-figure-right {
  position: absolute; bottom: 12%; right: 22%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aoc-figure 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-attack-on-convoys .lantern-swing {
  position: absolute; top: 10%; left: 50%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #f0c040 0%, #c08020 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 30px 10px rgba(240,192,64,0.6);
  transform-origin: top center;
  animation: aoc-lantern 4s ease-in-out infinite alternate;
}
@keyframes aoc-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes aoc-map { 0% { background-position: 0 0; } 50% { background-position: 8px 0; } 100% { background-position: 0 0; } }
@keyframes aoc-markers { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes aoc-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(1deg); } 70% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aoc-lantern { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-4deg); } }

.scn-invasion-france-1814-critique {
  background: linear-gradient(180deg, #1a0e0a 0%, #2b1a12 50%, #1a0e0a 100%), radial-gradient(ellipse at 70% 40%, #3d2b1f 0%, transparent 60%);
}
.scn-invasion-france-1814-critique .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2b1a12 0%, #1a0e0a 100%); animation: if1-haze 25s ease-in-out infinite;
}
.scn-invasion-france-1814-critique .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #4a3428 0%, #2b1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6), 0 6px 12px rgba(0,0,0,.4);
}
.scn-invasion-france-1814-critique .map {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 15%; background: linear-gradient(135deg, #d4b88a 0%, #b89a6a 50%, #d4b88a 100%); border-radius: 2%; animation: if1-map 12s ease-in-out infinite alternate; transform-origin: center bottom;
}
.scn-invasion-france-1814-critique .figure-left {
  position: absolute; bottom: 10%; left: 22%; width: 12%; height: 45%; background: linear-gradient(180deg, #2a1e18 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: if1-figure-l 6s ease-in-out infinite;
}
.scn-invasion-france-1814-critique .figure-right {
  position: absolute; bottom: 10%; right: 22%; width: 12%; height: 45%; background: linear-gradient(180deg, #2a1e18 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: if1-figure-r 7s ease-in-out infinite;
}
.scn-invasion-france-1814-critique .lantern {
  position: absolute; bottom: 38%; left: 48%; width: 4%; height: 8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #c08040; animation: if1-lantern 3s ease-in-out infinite alternate;
}
.scn-invasion-france-1814-critique .candle-glow {
  position: absolute; bottom: 38%; left: 47%; width: 6%; height: 6%; background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%); border-radius: 50%; animation: if1-glow 2s ease-in-out infinite alternate;
}
@keyframes if1-haze { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes if1-map { 0% { transform: rotate(-1deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-0.5deg) scale(1) } }
@keyframes if1-figure-l { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4%) rotate(2deg) } 50% { transform: translateX(8%) rotate(-1deg) } 75% { transform: translateX(12%) rotate(1deg) } 100% { transform: translateX(16%) rotate(0) } }
@keyframes if1-figure-r { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3%) rotate(-2deg) } 50% { transform: translateX(-6%) rotate(1deg) } 75% { transform: translateX(-9%) rotate(-1deg) } 100% { transform: translateX(-12%) rotate(0) } }
@keyframes if1-lantern { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2%) rotate(0) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1%) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes if1-glow { 0% { box-shadow: 0 0 8px 2px #ffd060, 0 0 16px 4px rgba(255,208,96,.5); opacity: .8 } 50% { box-shadow: 0 0 16px 6px #ffd060, 0 0 32px 12px rgba(255,208,96,.7); opacity: 1 } 100% { box-shadow: 0 0 10px 3px #ffd060, 0 0 20px 6px rgba(255,208,96,.6); opacity: .85 } }

.scn-bonaparte-defensive-mastery {
  background: linear-gradient(180deg, #1a1210 0%, #2c1e18 50%, #1a1210 100%), radial-gradient(ellipse at 60% 30%, #3a2820 0%, transparent 60%);
}
.scn-bonaparte-defensive-mastery .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1e18 0%, #1a1210 100%); animation: bdm-wall 30s ease-in-out infinite;
}
.scn-bonaparte-defensive-mastery .window {
  position: absolute; top: 10%; right: 8%; width: 18%; height: 40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 2% 2% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: bdm-window 20s ease-in-out infinite alternate;
}
.scn-bonaparte-defensive-mastery .figure-bonaparte {
  position: absolute; bottom: 5%; left: 35%; width: 14%; height: 60%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; animation: bdm-figure 5s ease-in-out infinite;
}
.scn-bonaparte-defensive-mastery .cloak {
  position: absolute; bottom: 5%; left: 33%; width: 18%; height: 50%; background: linear-gradient(180deg, #4a2e20 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 80% 80% 30% 30%; transform-origin: bottom center; animation: bdm-cloak 6s ease-in-out infinite;
}
.scn-bonaparte-defensive-mastery .map-wall {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 35%; background: linear-gradient(135deg, #c8a870 0%, #a88850 50%, #c8a870 100%); border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: bdm-map 18s ease-in-out infinite alternate;
}
.scn-bonaparte-defensive-mastery .candle {
  position: absolute; bottom: 30%; left: 52%; width: 3%; height: 10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px #c08040; animation: bdm-candle 3s ease-in-out infinite alternate;
}
.scn-bonaparte-defensive-mastery .shadow {
  position: absolute; bottom: 5%; left: 30%; width: 20%; height: 30%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: bdm-shadow 6s ease-in-out infinite;
}
@keyframes bdm-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes bdm-window { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .65 } }
@keyframes bdm-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2%) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bdm-cloak { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes bdm-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes bdm-candle { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bdm-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .55 } }

.scn-reunion-needed {
  background: linear-gradient(180deg, #1a0e0a 0%, #2b1a12 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 60%, #3d2b1f 0%, transparent 60%);
}
.scn-reunion-needed .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2b1a12 0%, #1a0e0a 100%); animation: ren-haze 22s ease-in-out infinite;
}
.scn-reunion-needed .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 25%; background: linear-gradient(180deg, #4a3428 0%, #2b1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
.scn-reunion-needed .hand-left {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 15%; background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: ren-hand-l 7s ease-in-out infinite;
}
.scn-reunion-needed .hand-right {
  position: absolute; bottom: 22%; right: 30%; width: 8%; height: 15%; background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: ren-hand-r 7s ease-in-out infinite;
}
.scn-reunion-needed .candle {
  position: absolute; bottom: 32%; left: 46%; width: 3%; height: 8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px #c08040; animation: ren-candle 3s ease-in-out infinite alternate;
}
.scn-reunion-needed .paper {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 10%; background: linear-gradient(135deg, #d4b88a 0%, #b89a6a 50%, #d4b88a 100%); border-radius: 2%; transform: rotate(3deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ren-paper 15s ease-in-out infinite alternate;
}
@keyframes ren-haze { 0% { opacity: .75 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ren-hand-l { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10%) rotate(5deg) } 50% { transform: translateX(20%) rotate(0) } 75% { transform: translateX(10%) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ren-hand-r { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-10%) rotate(-5deg) } 50% { transform: translateX(-20%) rotate(0) } 75% { transform: translateX(-10%) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ren-candle { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ren-paper { 0% { transform: rotate(3deg) scale(1) } 50% { transform: rotate(4deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }

.scn-breadth-theatre-motive {
  background: linear-gradient(180deg, #1a1210 0%, #2c1e18 50%, #1a1210 100%), radial-gradient(ellipse at 30% 50%, #3a2820 0%, transparent 60%);
}
.scn-breadth-theatre-motive .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c1e18 0%, #1a1210 100%); animation: btm-ambient 40s ease-in-out infinite;
}
.scn-breadth-theatre-motive .window {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: btm-window 30s ease-in-out infinite alternate;
}
.scn-breadth-theatre-motive .map-wall {
  position: absolute; top: 15%; left: 45%; width: 40%; height: 40%; background: linear-gradient(135deg, #c8a870 0%, #a88850 50%, #c8a870 100%); border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: btm-map 20s ease-in-out infinite alternate;
}
.scn-breadth-theatre-motive .figure {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 40%; background: linear-gradient(180deg, #2a1e18 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btm-figure 10s ease-in-out infinite;
}
.scn-breadth-theatre-motive .lamp {
  position: absolute; bottom: 35%; left: 15%; width: 4%; height: 8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px #c08040; animation: btm-lamp 4s ease-in-out infinite alternate;
}
.scn-breadth-theatre-motive .desk {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, #4a3428 0%, #2b1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
.scn-breadth-theatre-motive .compass {
  position: absolute; bottom: 15%; right: 20%; width: 8%; height: 8%; background: radial-gradient(circle, #c8a870 0%, #8a6a40 60%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.3); animation: btm-compass 15s linear infinite;
}
@keyframes btm-ambient { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes btm-window { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }
@keyframes btm-map { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes btm-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2%) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes btm-lamp { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes btm-compass { 0% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(30deg) scale(1.05) } 50% { transform: rotate(60deg) scale(1) } 75% { transform: rotate(90deg) scale(0.95) } 100% { transform: rotate(120deg) scale(1) } }

/* change-circumstances-politics */
.scn-change-circumstances-politics {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%);
}
.scn-change-circumstances-politics .wall-bg {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-change-circumstances-politics .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
}
.scn-change-circumstances-politics .desk {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-change-circumstances-politics .papers {
  position: absolute; bottom: 31%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(90deg, #c8b080 0%, #a09070 100%);
  animation: ccp-papers 6s ease-in-out infinite alternate;
}
.scn-change-circumstances-politics .figure {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 40px;
  background: #0a0500;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: ccp-figure 8s ease-in-out infinite;
}
.scn-change-circumstances-politics .lamp {
  position: absolute; bottom: 35%; left: 25%; width: 10px; height: 15px;
  background: radial-gradient(circle, #ffb060 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040;
  animation: ccp-lamp 4s ease-in-out infinite alternate;
}
.scn-change-circumstances-politics .window {
  position: absolute; top: 15%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: ccp-window 10s ease-in-out infinite alternate;
}
@keyframes ccp-papers  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ccp-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 ccp-lamp    { 0% { opacity: .8; box-shadow: 0 0 20px 5px #c08040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #d09050; } 100% { opacity: .9; box-shadow: 0 0 25px 8px #c08040; } }
@keyframes ccp-window  { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .5; } }

/* counterstroke-defensive-object */
.scn-counterstroke-defensive-object {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%);
}
.scn-counterstroke-defensive-object .wall-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-counterstroke-defensive-object .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
}
.scn-counterstroke-defensive-object .shield {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  border: 2px solid #6a4a2a;
  box-shadow: 0 4px 15px rgba(0,0,0,.7);
  animation: cdo-shield 12s ease-in-out infinite alternate;
}
.scn-counterstroke-defensive-object .figure {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 40px;
  background: #0a0500;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cdo-figure 8s ease-in-out infinite;
}
.scn-counterstroke-defensive-object .candle {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffc060 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040;
  animation: cdo-candle 3s ease-in-out infinite alternate;
}
.scn-counterstroke-defensive-object .shadow {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 20px;
  background: rgba(0,0,0,.3);
  filter: blur(6px);
  animation: cdo-shadow 8s ease-in-out infinite;
}
@keyframes cdo-shield  { 0% { transform: scale(1); } 50% { transform: scale(1.02) rotate(-2deg); } 100% { transform: scale(1); } }
@keyframes cdo-figure  { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cdo-candle  { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: .8; transform: scaleY(1); } }
@keyframes cdo-shadow  { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* strategic-passiveness-advantages */
.scn-strategic-passiveness-advantages {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%);
}
.scn-strategic-passiveness-advantages .wall-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-strategic-passiveness-advantages .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
}
.scn-strategic-passiveness-advantages .armchair {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-strategic-passiveness-advantages .figure-reclining {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 20px;
  background: #0a0500;
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-10deg);
  animation: spa3-figure 10s ease-in-out infinite alternate;
}
.scn-strategic-passiveness-advantages .book {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: spa3-book 6s ease-in-out infinite alternate;
}
.scn-strategic-passiveness-advantages .lamp {
  position: absolute; bottom: 35%; right: 20%; width: 10px; height: 15px;
  background: radial-gradient(circle, #ffb060 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040;
  animation: spa3-lamp 5s ease-in-out infinite alternate;
}
.scn-strategic-passiveness-advantages .curtain {
  position: absolute; top: 0; left: 10%; width: 5px; height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 2px 2px 0;
  animation: spa3-curtain 15s ease-in-out infinite alternate;
}
@keyframes spa3-figure  { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes spa3-book    { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes spa3-lamp    { 0% { opacity: .8; box-shadow: 0 0 20px 5px #c08040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #d09050; } 100% { opacity: .9; box-shadow: 0 0 25px 8px #c08040; } }
@keyframes spa3-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

/* positive-object-grafted-defence */
.scn-positive-object-grafted-defence {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%);
}
.scn-positive-object-grafted-defence .wall-bg {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
}
.scn-positive-object-grafted-defence .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
}
.scn-positive-object-grafted-defence .weapon-stand {
  position: absolute; bottom: 20%; left: 40%; width: 10px; height: 50px;
  background: #2a2a3e;
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
}
.scn-positive-object-grafted-defence .weapon {
  position: absolute; bottom: 25%; left: 40%; width: 4px; height: 30px;
  background: #b0b0c0;
  border-radius: 1px;
  transform: rotate(20deg);
  animation: pog4-weapon 0.5s ease-in-out infinite alternate;
}
.scn-positive-object-grafted-defence .figure-tense {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: #050510;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pog4-figure 1s ease-in-out infinite alternate;
}
.scn-positive-object-grafted-defence .light-slit {
  position: absolute; top: 10%; left: 50%; width: 2px; height: 100px;
  background: #d0d0e0;
  box-shadow: 0 0 20px 10px #606080;
  animation: pog4-light 2s ease-in-out infinite alternate;
}
.scn-positive-object-grafted-defence .shadow {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 5px;
  background: rgba(0,0,0,.5);
  filter: blur(4px);
  animation: pog4-shadow 0.8s ease-in-out infinite alternate;
}
@keyframes pog4-weapon { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes pog4-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pog4-light  { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .6; transform: scaleX(0.5); } 100% { opacity: .3; transform: scaleX(1); } }
@keyframes pog4-shadow { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.2); } 100% { opacity: .3; transform: scaleX(1); } }

/* Scene: absolute-war-relative (calm, dim-interior) */
.scn-absolute-war-relative {
  background: linear-gradient(180deg, #4a2e1e 0%, #2d1a12 60%, #1a0f0a 100%);
}
.scn-absolute-war-relative .awr-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2218, #2a1610);
  animation: awr-wall-fade 12s ease-in-out infinite alternate;
}
.scn-absolute-war-relative .awr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1f140e 0%, #0d0907 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-absolute-war-relative .awr-desk {
  position: absolute; bottom: 18%; left: 50%; width: 50%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4d3a, #3d2a1f);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: awr-desk-drift 8s ease-in-out infinite alternate;
}
.scn-absolute-war-relative .awr-candle {
  position: absolute; bottom: 26%; left: 46%; width: 4px; height: 14%;
  background: linear-gradient(180deg, #d4b47a 0%, #8a6a42 100%);
  border-radius: 50% 50% 4px 4px;
  transform: translateX(-50%);
}
.scn-absolute-war-relative .awr-flame {
  position: absolute; bottom: 40%; left: 46%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, #c07020 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  box-shadow: 0 0 20px 6px #c07020, 0 0 40px 12px rgba(192,112,32,0.4);
  animation: awr-flicker 2.5s ease-in-out infinite alternate, awr-glow 3s ease-in-out infinite alternate;
}
.scn-absolute-war-relative .awr-book {
  position: absolute; bottom: 20%; left: 55%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #8b6b4a, #5a3a2a 70%, #3a2218);
  border-radius: 2px 8px 8px 2px;
  box-shadow: -2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: awr-book-hover 6s ease-in-out infinite alternate;
}
.scn-absolute-war-relative .awr-window {
  position: absolute; top: 12%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 80%);
  border: 4px solid #3a2218;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  overflow: hidden;
}
.scn-absolute-war-relative .awr-window::before {
  content: ''; /* no text, just decorative crossbar */
  position: absolute;
  top: 0; left: 50%; width: 2px; height: 100%; background: #3a2218;
}
.scn-absolute-war-relative .awr-curtain {
  position: absolute; top: 10%; left: 38%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #2a1a14, #1a0e0a);
  border-radius: 0 10px 10px 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: awr-curtain-sway 10s ease-in-out infinite alternate;
}

@keyframes awr-wall-fade {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes awr-desk-drift {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes awr-flicker {
  0% { transform: scaleY(1) rotate(-1deg); opacity: 0.9; }
  50% { transform: scaleY(1.2) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-2deg); opacity: 0.85; }
}
@keyframes awr-glow {
  0% { box-shadow: 0 0 18px 4px #c07020, 0 0 36px 10px rgba(192,112,32,0.3); }
  50% { box-shadow: 0 0 28px 8px #e8a040, 0 0 56px 16px rgba(232,160,64,0.5); }
  100% { box-shadow: 0 0 22px 5px #c07020, 0 0 40px 12px rgba(192,112,32,0.35); }
}
@keyframes awr-book-hover {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes awr-curtain-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}

/* Scene: object-means-determined-position (calm, dim-interior) */
.scn-object-means-determined-position {
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140e 60%, #0d0805 100%);
}
.scn-object-means-determined-position .omd-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2e1e14, #1a0f0a);
  animation: omd-wall-fade 14s ease-in-out infinite alternate;
}
.scn-object-means-determined-position .omd-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1f140e, #0a0704);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
}
.scn-object-means-determined-position .omd-table {
  position: absolute; bottom: 14%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #6b4d3a, #3d2a1f);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: omd-table-float 10s ease-in-out infinite alternate;
}
.scn-object-means-determined-position .omd-globe {
  position: absolute; bottom: 24%; left: 35%; width: 18%; height: 24%;
  background: radial-gradient(circle at 40% 30%, #5a9a7a, #2a6a4a 60%, #1a3a2a);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.4);
  animation: omd-spin 20s linear infinite;
}
.scn-object-means-determined-position .omd-candle {
  position: absolute; bottom: 24%; left: 52%; width: 3%; height: 16%;
  background: linear-gradient(180deg, #d4b47a, #8a6a42);
  border-radius: 50% 50% 4px 4px;
  transform: translateX(-50%);
}
.scn-object-means-determined-position .omd-flame {
  position: absolute; bottom: 40%; left: 52%; width: 5%; height: 14%;
  background: radial-gradient(circle, #ffd080, #e8a040 60%, #c07020);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  box-shadow: 0 0 18px 5px #c07020, 0 0 36px 10px rgba(192,112,32,0.4);
  animation: omd-flicker 3s ease-in-out infinite alternate, omd-glow 4s ease-in-out infinite alternate;
}
.scn-object-means-determined-position .omd-paper-a {
  position: absolute; bottom: 18%; left: 28%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #c0a070, #a08050);
  border-radius: 1px 3px 3px 1px;
  transform: rotate(5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: omd-paper-drift 8s ease-in-out infinite alternate;
}
.scn-object-means-determined-position .omd-paper-b {
  position: absolute; bottom: 17%; left: 55%; width: 10%; height: 5%;
  background: linear-gradient(135deg, #c0a070, #a08050);
  border-radius: 2px 1px 1px 2px;
  transform: rotate(-3deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: omd-paper-drift 9s ease-in-out infinite alternate-reverse;
}
.scn-object-means-determined-position .omd-compass {
  position: absolute; bottom: 22%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #c0a050, #806030 70%, #4a3018);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: omd-compass-swing 5s ease-in-out infinite alternate;
}

@keyframes omd-wall-fade {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes omd-table-float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes omd-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes omd-flicker {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scaleY(1.15) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.8; }
}
@keyframes omd-glow {
  0% { box-shadow: 0 0 16px 4px #c07020, 0 0 32px 8px rgba(192,112,32,0.3); }
  50% { box-shadow: 0 0 24px 6px #e8a040, 0 0 48px 14px rgba(232,160,64,0.4); }
  100% { box-shadow: 0 0 20px 5px #c07020, 0 0 40px 10px rgba(192,112,32,0.3); }
}
@keyframes omd-paper-drift {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(1px); }
  100% { transform: rotate(6deg) translateX(-1px); }
}
@keyframes omd-compass-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* Scene: overthrow-enemy-defined (tense, dim-interior) */
.scn-overthrow-enemy-defined {
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 60%, #050302 100%);
}
.scn-overthrow-enemy-defined .ote-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #120a07, #080502);
  animation: ote-bg-pulse 4s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1f140e, #0a0704);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.7);
}
.scn-overthrow-enemy-defined .ote-table {
  position: absolute; bottom: 14%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #3d2a1f, #1f140e);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.8);
  animation: ote-table-tremor 3s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-lamp {
  position: absolute; bottom: 45%; left: 50%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #e8a040 0%, #c07020 60%, #4a2e1e 100%);
  border-radius: 50% 50% 4px 4px;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px #c07020, 0 0 60px 20px rgba(192,112,32,0.5);
  animation: ote-lamp-flash 2s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-map {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #8a7a5a, #6a5a3a 60%, #4a3a22);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: ote-map-rustle 3.5s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-figure-head {
  position: absolute; bottom: 42%; left: 38%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.8));
  animation: ote-head-sway 2.5s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-figure-body {
  position: absolute; bottom: 18%; left: 37%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 40% 40% 30% 30% / 20% 20% 30% 30%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.9));
  animation: ote-body-roll 3s ease-in-out infinite alternate;
}
.scn-overthrow-enemy-defined .ote-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6), transparent 70%);
  animation: ote-shadow-pulse 2.2s ease-in-out infinite alternate;
}

@keyframes ote-bg-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ote-table-tremor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ote-lamp-flash {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #c07020, 0 0 40px 12px rgba(192,112,32,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 14px #e8a040, 0 0 80px 24px rgba(232,160,64,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 18px 4px #a06020, 0 0 30px 8px rgba(160,96,32,0.3); }
}
@keyframes ote-map-rustle {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}
@keyframes ote-head-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ote-body-roll {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-1px); }
}
@keyframes ote-shadow-pulse {
  0% { transform: scaleX(0.95); opacity: 0.8; }
  50% { transform: scaleX(1.05); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.9; }
}

/* Scene: moskow-1812-decision (tense, dim-interior) */
.scn-moskow-1812-decision {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #080812 100%);
}
.scn-moskow-1812-decision .mkd-bg {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #14142a, #0a0a1a);
  animation: mkd-bg-shift 5s ease-in-out infinite alternate;
}
.scn-moskow-1812-decision .mkd-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1a2e, #090914);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.7);
}
.scn-moskow-1812-decision .mkd-table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 14%;
  background: linear-gradient(180deg, #2e2e4a, #1a1a2e);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.8);
  animation: mkd-table-tremor 4s ease-in-out infinite alternate;
}
.scn-moskow-1812-decision .mkd-map {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 24%;
  background: linear-gradient(135deg, #5a5a6a, #3a3a4a 60%, #1a1a2a);
  border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.4);
  transform: rotate(1deg);
  animation: mkd-map-rumble 3.5s ease-in-out infinite alternate;
}
.scn-moskow-1812-decision .mkd-candle-a {
  position: absolute; bottom: 32%; left: 35%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #b09a7a, #7a6a4a);
  border-radius: 50% 50% 4px 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: mkd-candle-flicker-a 2.8s ease-in-out infinite alternate;
}
.scn-moskow-1812-decision .mkd-candle-b {
  position: absolute; bottom: 32%; left: 55%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #b09a7a, #7a6a4a);
  border-radius: 50% 50% 4px 4px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: mkd-candle-flicker-b 3.2s ease-in-out infinite alternate-reverse;
}
.scn-moskow-1812-decision .mkd-figure {
  position: absolute; bottom: 16%; left: 42%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.9));
  animation: mkd-figure-breathe 4s ease-in-out infinite alternate;
}
.scn-moskow-1812-decision .mkd-despatch {
  position: absolute; bottom: 24%; left: 30%; width: 8%; height: 4%;
  background: linear-gradient(135deg, #6a5a4a, #4a3a2a);
  border-radius: 1px 2px 2px 1px;
  transform: rotate(-4deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.5);
  animation: mkd-despatch-flutter 6s ease-in-out infinite alternate;
}

@keyframes mkd-bg-shift {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes mkd-table-tremor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes mkd-map-rumble {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(1px); }
  100% { transform: rotate(2deg) translateX(-1px); }
}
@keyframes mkd-candle-flicker-a {
  0% { transform: scaleY(1) rotate(-1deg); opacity: 0.9; }
  50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.85) rotate(-2deg); opacity: 0.8; }
}
@keyframes mkd-candle-flicker-b {
  0% { transform: scaleY(0.9) rotate(1deg); opacity: 0.8; }
  50% { transform: scaleY(1.15) rotate(-1deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
}
@keyframes mkd-figure-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes mkd-despatch-flutter {
  0% { transform: rotate(-4deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(1px); }
  100% { transform: rotate(-5deg) translateX(-1px); }
}

/* attack-convoys-security-strategic */
.scn-attack-convoys-security-strategic {
  background:
    linear-gradient(180deg, #e3d3b5 0%, #cbb294 50%, #b09478 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,240,200,0.4) 0%, transparent 60%);
}
.scn-attack-convoys-security-strategic .floor {
  position: absolute; inset: auto 0 0; height: 18%;
  background: linear-gradient(135deg, #8b7355 0%, #6b5a3e 50%, #4a3e2a 100%);
  transform: perspective(600px) rotateX(30deg); transform-origin: bottom center;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-attack-convoys-security-strategic .wall {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(90deg, #d9c9a8 0%, #cab896 30%, #bca57a 70%, #a89368 100%);
}
.scn-attack-convoys-security-strategic .table {
  position: absolute; bottom: 16%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4f32 0%, #4a351e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-attack-convoys-security-strategic .map {
  position: absolute; bottom: 18%; left: 50%; width: 50%; height: 6%;
  transform: translateX(-50%) perspective(800px) rotateX(10deg);
  background:
    linear-gradient(135deg, #b8a080 0%, #d4c0a0 40%, #c8b48e 70%, #b09870 100%),
    repeating-linear-gradient(45deg, transparent 0px, transparent 10px, rgba(80,60,40,0.15) 10px, rgba(80,60,40,0.15) 12px);
  border: 2px solid #6b4f32;
  border-radius: 2px;
  animation: scs-map-pulse 8s ease-in-out infinite alternate;
}
@keyframes scs-map-pulse {
  0% { box-shadow: 0 0 10px rgba(200,180,140,0.3); }
  50% { box-shadow: 0 0 20px rgba(200,180,140,0.6); }
  100% { box-shadow: 0 0 10px rgba(200,180,140,0.2); }
}
.scn-attack-convoys-security-strategic .window {
  position: absolute; top: 12%; right: 15%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #f5edda 0%, #e6d4b8 50%, #d4bc9c 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 40px rgba(255,245,220,0.5), 0 0 60px rgba(245,235,200,0.3);
  animation: scs-window-glow 6s ease-in-out infinite alternate;
}
@keyframes scs-window-glow {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,245,220,0.4), 0 0 40px rgba(245,235,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,245,220,0.7), 0 0 80px rgba(245,235,200,0.5); }
  100% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(255,245,220,0.5), 0 0 50px rgba(245,235,200,0.3); }
}
.scn-attack-convoys-security-strategic .figure {
  position: absolute; bottom: 14%; left: 50%; width: 16px; height: 40px;
  transform: translateX(-60px);
  background: linear-gradient(180deg, #3a3020 0%, #2a2010 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: scs-figure-breathe 5s ease-in-out infinite;
}
@keyframes scs-figure-breathe {
  0% { transform: translateX(-60px) translateY(0) scaleY(1); }
  50% { transform: translateX(-60px) translateY(-1px) scaleY(1.02); }
  100% { transform: translateX(-60px) translateY(0) scaleY(1); }
}
.scn-attack-convoys-security-strategic .lamp {
  position: absolute; bottom: 14%; left: 48%; width: 8px; height: 14px;
  transform: translateX(-100px);
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.6), 0 0 60px 16px rgba(255,200,100,0.2);
  animation: scs-lamp-sway 4s ease-in-out infinite;
}
@keyframes scs-lamp-sway {
  0% { transform: translateX(-100px) rotate(-2deg); }
  50% { transform: translateX(-100px) rotate(3deg); }
  100% { transform: translateX(-100px) rotate(-2deg); }
}
.scn-attack-convoys-security-strategic .dust-a,
.scn-attack-convoys-security-strategic .dust-b {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: scs-dust-drift 12s ease-in-out infinite;
}
.scn-attack-convoys-security-strategic .dust-a {
  top: 40%; left: 20%;
  animation-duration: 12s;
  animation-delay: -3s;
}
.scn-attack-convoys-security-strategic .dust-b {
  top: 55%; left: 70%;
  animation-duration: 18s;
  animation-delay: -8s;
}
@keyframes scs-dust-drift {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  25% { transform: translate(15px,-10px) scale(1.2); opacity: 0.6; }
  50% { transform: translate(30px,-5px) scale(0.8); opacity: 0.4; }
  75% { transform: translate(10px,-20px) scale(1.1); opacity: 0.7; }
  100% { transform: translate(0,0) scale(1); opacity: 0.3; }
}

/* attack-convoys-frederick-example */
.scn-attack-convoys-frederick-example {
  background:
    linear-gradient(180deg, #6a7080 0%, #4a5060 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #5a6070 0%, transparent 60%);
}
.scn-attack-convoys-frederick-example .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a90a0 0%, #5a6070 60%, #4a5060 100%);
  animation: fre-sky-pulse 15s ease-in-out infinite alternate;
}
@keyframes fre-sky-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
.scn-attack-convoys-frederick-example .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-attack-convoys-frederick-example .hills-back {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 30% 0 0;
  animation: fre-hills 20s ease-in-out infinite alternate;
}
.scn-attack-convoys-frederick-example .hills-front {
  position: absolute; bottom: 28%; left: -10%; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
  transform: scale(1.1);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.3);
  animation: fre-hills 25s ease-in-out infinite alternate-reverse;
}
@keyframes fre-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
.scn-attack-convoys-frederick-example .wagons {
  position: absolute; bottom: 24%; left: 0; width: 300%; height: 12%;
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 30px,
    #5a3a2a 30px, #5a3a2a 45px,
    transparent 45px, transparent 60px
  );
  background-size: 60px 100%;
  animation: fre-wagons-march 30s linear infinite;
}
@keyframes fre-wagons-march {
  0% { transform: translateX(0); }
  100% { transform: translateX(-60px); }
}
.scn-attack-convoys-frederick-example .soldier {
  position: absolute; bottom: 24%; left: 25%; width: 10px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fre-soldier-walk 2s ease-in-out infinite;
}
@keyframes fre-soldier-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
.scn-attack-convoys-frederick-example .flag {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 20px;
  background: #5a3020;
  transform-origin: bottom center;
  animation: fre-flag-flap 3s ease-in-out infinite;
}
.scn-attack-convoys-frederick-example .flag::before {
  content: '';
  position: absolute; top: 0; left: 6px; width: 16px; height: 10px;
  background: #7a4040; /* desaturated red – rust */
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
}
@keyframes fre-flag-flap {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-5deg); }
}
.scn-attack-convoys-frederick-example .cloud-fast {
  position: absolute; top: 12%; left: -30%; width: 100px; height: 18px;
  background: linear-gradient(90deg, rgba(120,130,150,0.6) 0%, rgba(150,160,180,0.3) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fre-cloud-fast 25s linear infinite;
}
.scn-attack-convoys-frederick-example .cloud-slow {
  position: absolute; top: 25%; right: -20%; width: 130px; height: 16px;
  background: linear-gradient(90deg, rgba(140,150,170,0.5) 0%, rgba(160,170,190,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fre-cloud-slow 40s linear infinite reverse;
}
@keyframes fre-cloud-fast {
  0% { transform: translateX(0); }
  100% { transform: translateX(130vw); }
}
@keyframes fre-cloud-slow {
  0% { transform: translateX(0); }
  100% { transform: translateX(-150vw); }
}

/* attack-on-cantonments */
.scn-attack-on-cantonments {
  background:
    linear-gradient(180deg, #d8c8a8 0%, #bca884 50%, #a08868 100%),
    radial-gradient(ellipse at 80% 30%, rgba(240,220,180,0.3) 0%, transparent 70%);
}
.scn-attack-on-cantonments .floor {
  position: absolute; inset: auto 0 0; height: 20%;
  background: linear-gradient(45deg, #6b5a42 0%, #4a3a22 100%);
  transform: perspective(500px) rotateX(25deg); transform-origin: bottom;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-attack-on-cantonments .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c8b898 0%, #b8a88a 50%, #a89878 100%);
}
.scn-attack-on-cantonments .window {
  position: absolute; top: 20%; right: 20%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #f0e4c8 0%, #dcc4a4 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,245,220,0.4), 0 0 50px rgba(240,225,200,0.2);
  animation: cant-window-glow 7s ease-in-out infinite alternate;
}
@keyframes cant-window-glow {
  0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,245,220,0.3), 0 0 30px rgba(240,225,200,0.15); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,245,220,0.6), 0 0 60px rgba(240,225,200,0.3); }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px rgba(255,245,220,0.4), 0 0 40px rgba(240,225,200,0.2); }
}
.scn-attack-on-cantonments .bunk {
  position: absolute; bottom: 18%; left: 20%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-attack-on-cantonments .figure-sit {
  position: absolute; bottom: 20%; left: 55%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cant-sit-breathe 6s ease-in-out infinite;
}
@keyframes cant-sit-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
.scn-attack-on-cantonments .lantern {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #f0c070 0%, #a07030 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(240,200,100,0.5), 0 0 40px 12px rgba(240,200,100,0.2);
  animation: cant-lantern-swing 5s ease-in-out infinite;
}
@keyframes cant-lantern-swing {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-3deg); }
}
.scn-attack-on-cantonments .table {
  position: absolute; bottom: 16%; left: 60%; width: 25%; height: 6%;
  background: linear-gradient(180deg, #6b4f32 0%, #4a351e 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-attack-on-cantonments .book {
  position: absolute; bottom: 18%; left: 65%; width: 10%; height: 4%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px;
  transform: perspective(400px) rotateX(15deg);
  box-shadow: inset 0 0 4px rgba(255,255,200,0.2);
  animation: cant-book-glint 12s ease-in-out infinite;
}
@keyframes cant-book-glint {
  0%, 100% { box-shadow: inset 0 0 4px rgba(255,255,200,0.2); }
  50% { box-shadow: inset 0 0 10px rgba(255,255,200,0.6); }
}

/* attack-cantonments-advantages */
.scn-attack-cantonments-advantages {
  background:
    linear-gradient(180deg, #d4c4a4 0%, #b8a888 40%, #a09070 100%),
    radial-gradient(ellipse at 50% 10%, rgba(240,220,180,0.3) 0%, transparent 60%);
}
.scn-attack-cantonments-advantages .table-surface {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 8px;
  transform: perspective(600px) rotateX(40deg);
  transform-origin: bottom center;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-attack-cantonments-advantages .map {
  position: absolute; bottom: 28%; left: 20%; width: 50%; height: 20%;
  background:
    linear-gradient(135deg, #c8b088 0%, #d4c0a0 50%, #c8b48e 100%),
    repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(60,40,20,0.1) 8px, rgba(60,40,20,0.1) 10px);
  border: 2px solid #5a4a2a;
  border-radius: 4px;
  transform: perspective(500px) rotateX(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: att-map-shimmer 10s ease-in-out infinite alternate;
}
@keyframes att-map-shimmer {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 4px 20px rgba(200,180,140,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
}
.scn-attack-cantonments-advantages .inkwell {
  position: absolute; bottom: 28%; left: 18%; width: 10px; height: 10px;
  background: radial-gradient(circle at 50% 40%, #2a2010 0%, #0a0800 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-attack-cantonments-advantages .quill {
  position: absolute; bottom: 34%; left: 22%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #d0b090 0%, #8a6a4a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-25deg);
  transform-origin: bottom center;
  animation: att-quill-tap 3s ease-in-out infinite;
}
@keyframes att-quill-tap {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-2px); }
  100% { transform: rotate(-25deg) translateY(0); }
}
.scn-attack-cantonments-advantages .hand {
  position: absolute; bottom: 30%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: att-hand-write 4s ease-in-out infinite;
}
@keyframes att-hand-write {
  0% { transform: rotate(10deg) translateX(0); }
  25% { transform: rotate(12deg) translateX(3px); }
  50% { transform: rotate(10deg) translateX(6px); }
  75% { transform: rotate(8deg) translateX(3px); }
  100% { transform: rotate(10deg) translateX(0); }
}
.scn-attack-cantonments-advantages .window-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(135deg, rgba(255,245,220,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 20% 100%);
  animation: att-light-beam 8s ease-in-out infinite alternate;
}
@keyframes att-light-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
.scn-attack-cantonments-advantages .document {
  position: absolute; bottom: 32%; right: 20%; width: 15%; height: 12%;
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b898 100%);
  border: 1px solid #8a7a5a;
  border-radius: 2px;
  transform: perspective(400px) rotateY(-15deg) rotateX(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-attack-cantonments-advantages .shadow {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: att-shadow-pulse 6s ease-in-out infinite;
}
@keyframes att-shadow-pulse {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

.scn-beneficial-change-people {
  background: linear-gradient(180deg, #2c1e12 0%, #1a120a 60%, #0d0804 100%),
              radial-gradient(ellipse at 50% 80%, #3a2418 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-beneficial-change-people .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 70%);
}
.scn-beneficial-change-people .window {
  position: absolute; top: 12%; right: 10%; width: 24%; height: 50%;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 0 30% 0 0; box-shadow: inset 0 0 40px rgba(255,255,200,0.1);
  animation: bcp-window 20s ease-in-out infinite alternate;
}
.scn-beneficial-change-people .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-beneficial-change-people .book {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 14%;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0 20% 0 0; transform: rotate(-8deg);
  animation: bcp-book 8s ease-in-out infinite;
}
.scn-beneficial-change-people .candle {
  position: absolute; bottom: 25%; left: 45%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #f0d5a0 0%, #c9a56a 50%, #7a5a2a 100%);
  border-radius: 40% 40% 10% 10%;
}
.scn-beneficial-change-people .candle-glow {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: bcp-glow 3s ease-in-out infinite alternate;
}
.scn-beneficial-change-people .figure {
  position: absolute; bottom: 15%; left: 38%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 80%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bcp-figure 4s ease-in-out infinite;
}
.scn-beneficial-change-people .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: bcp-shadow 6s ease-in-out infinite alternate;
}
@keyframes bcp-window {
  0% { opacity: 0.6; filter: blur(2px); }
  50% { opacity: 0.9; filter: blur(0px); }
  100% { opacity: 0.7; filter: blur(1px); }
}
@keyframes bcp-book {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
}
@keyframes bcp-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 bcp-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 bcp-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}

.scn-generals-daring-critique {
  background: linear-gradient(180deg, #1e1410 0%, #140e0a 60%, #080504 100%),
              radial-gradient(ellipse at 60% 20%, #2a1c10 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-generals-daring-critique .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, #2a1a12 100%);
}
.scn-generals-daring-critique .window-slit {
  position: absolute; top: 8%; left: 10%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 40% 40% 20%; box-shadow: inset 0 0 30px rgba(200,200,255,0.1);
  animation: gdc-window 15s ease-in-out infinite alternate;
}
.scn-generals-daring-critique .light-ray {
  position: absolute; top: 10%; left: 12%; width: 50%; height: 70%;
  background: linear-gradient(135deg, rgba(255,230,180,0.12) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: gdc-light 20s ease-in-out infinite alternate;
}
.scn-generals-daring-critique .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.8);
}
.scn-generals-daring-critique .map {
  position: absolute; bottom: 16%; left: 15%; right: 15%; height: 14%;
  background: linear-gradient(135deg, #b8a080 0%, #8a7a5a 100%);
  border-radius: 4px 40% 4px 40%;
  animation: gdc-map 12s ease-in-out infinite alternate;
}
.scn-generals-daring-critique .figure {
  position: absolute; bottom: 16%; left: 45%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 70%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: gdc-fig 4s ease-in-out infinite;
}
.scn-generals-daring-critique .candle {
  position: absolute; bottom: 18%; left: 30%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 60%, #6a5020 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-generals-daring-critique .candle-glow {
  position: absolute; bottom: 24%; left: 26%; width: 14%; height: 18%;
  background: radial-gradient(circle, rgba(255,210,140,0.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: gdc-glow 3s ease-in-out infinite alternate;
}
@keyframes gdc-window {
  0% { opacity: 0.4; filter: blur(3px); }
  50% { opacity: 0.8; filter: blur(0px); }
  100% { opacity: 0.5; filter: blur(2px); }
}
@keyframes gdc-light {
  0% { transform: scaleX(0.9) skewX(-5deg); opacity: 0.5; }
  50% { transform: scaleX(1.1) skewX(3deg); opacity: 1; }
  100% { transform: scaleX(0.95) skewX(-2deg); opacity: 0.6; }
}
@keyframes gdc-map {
  0% { transform: rotate(-2deg); filter: brightness(0.9); }
  50% { transform: rotate(2deg); filter: brightness(1.1); }
  100% { transform: rotate(-1deg); filter: brightness(0.95); }
}
@keyframes gdc-fig {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gdc-glow {
  0% { opacity: 0.6; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

.scn-criticism-art-war {
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 60%, #0a0806 100%),
              radial-gradient(ellipse at 50% 30%, #2a1c14 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-criticism-art-war .bg-bookcase {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg,
    transparent 0%, transparent 8%, #2a1a12 8%, #2a1a12 10%, transparent 10%);
}
.scn-criticism-art-war .shelf {
  position: absolute; top: 20%; left: 5%; right: 5%; height: 4%;
  background: #3a2a1c; box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-criticism-art-war .book-a {
  position: absolute; top: 24%; left: 10%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px 6px 6px 2px; transform: rotate(3deg);
  animation: caw-book 6s ease-in-out infinite alternate;
}
.scn-criticism-art-war .book-b {
  position: absolute; top: 26%; left: 20%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 4px 2px 2px 4px; transform: rotate(-2deg);
  animation: caw-book2 7s ease-in-out infinite alternate;
}
.scn-criticism-art-war .bust {
  position: absolute; bottom: 38%; left: 40%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 80%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: caw-bust 10s ease-in-out infinite alternate;
}
.scn-criticism-art-war .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-criticism-art-war .quill {
  position: absolute; bottom: 26%; left: 45%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 60%, #8a6a4a 100%);
  border-radius: 60% 0 0 60%; transform-origin: bottom center;
  animation: caw-quill 3s ease-in-out infinite alternate;
}
.scn-criticism-art-war .inkwell {
  position: absolute; bottom: 20%; left: 52%; width: 6%; height: 8%;
  background: radial-gradient(circle, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-criticism-art-war .candle-glow {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: caw-glow 4s ease-in-out infinite alternate;
}
@keyframes caw-book {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(-2px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes caw-book2 {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(0); }
}
@keyframes caw-bust {
  0% { transform: rotate(-2deg); filter: brightness(0.9); }
  50% { transform: rotate(2deg); filter: brightness(1.1); }
  100% { transform: rotate(-1deg); filter: brightness(0.95); }
}
@keyframes caw-quill {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes caw-glow {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-french-revolution-changed {
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0604 60%, #050202 100%),
              radial-gradient(ellipse at 50% 40%, #2a1410 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-french-revolution-changed .bg-deep {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 30%, #3a1a14 0%, transparent 70%);
}
.scn-french-revolution-changed .pole {
  position: absolute; bottom: 10%; left: 30%; width: 2%; height: 60%;
  background: linear-gradient(180deg, #4a3a28 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.8);
}
.scn-french-revolution-changed .flag {
  position: absolute; bottom: 40%; left: 30%; width: 16%; height: 24%;
  background: linear-gradient(135deg, #702243 0%, #5e1a1d 100%);
  border-radius: 0 60% 40% 0 / 0 80% 20% 0;
  transform-origin: left center;
  animation: frc-flag 6s ease-in-out infinite alternate;
}
.scn-french-revolution-changed .hand {
  position: absolute; bottom: 28%; left: 28%; width: 6%; height: 10%;
  background: #1a1412;
  border-radius: 50% 0% 0% 50% / 60% 0% 0% 40%;
  animation: frc-hand 2s ease-in-out infinite alternate;
}
.scn-french-revolution-changed .ember {
  position: absolute; bottom: 18%; left: 50%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ff6a3a 0%, #c84020 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 6px rgba(200,64,32,0.6);
  animation: frc-ember 2.5s ease-in-out infinite alternate;
}
.scn-french-revolution-changed .shadow-cast {
  position: absolute; bottom: 8%; left: 25%; width: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 60%);
  animation: frc-shadow 8s ease-in-out infinite alternate;
}
.scn-french-revolution-changed .rostrum {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
}
.scn-french-revolution-changed .crowd-shadow {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,6,0.6) 100%);
  clip-path: polygon(0 100%, 10% 60%, 15% 100%, 20% 50%, 25% 100%, 30% 55%, 35% 100%, 40% 45%, 45% 100%, 50% 50%, 55% 100%, 60% 52%, 65% 100%, 70% 48%, 75% 100%, 80% 55%, 85% 100%, 90% 50%, 100% 100%);
  animation: frc-crowd 12s ease-in-out infinite alternate;
}
@keyframes frc-flag {
  0% { transform: rotate(-5deg) scale(0.9); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-3deg) scale(0.95); }
}
@keyframes frc-hand {
  0% { transform: translate(0, 0) rotate(-3deg); }
  50% { transform: translate(2px, -2px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes frc-ember {
  0% { opacity: 0.6; transform: scale(0.7); filter: blur(2px); }
  50% { opacity: 1; transform: scale(1.3); filter: blur(0px); }
  100% { opacity: 0.7; transform: scale(0.8); filter: blur(1px); }
}
@keyframes frc-shadow {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.2); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}
@keyframes frc-crowd {
  0% { opacity: 0.3; filter: blur(4px); }
  50% { opacity: 0.6; filter: blur(0px); }
  100% { opacity: 0.4; filter: blur(2px); }
}

.scn-defence-of-theatre-ducks-position { background: linear-gradient(180deg, #e8d5b7 0%, #d4bc9a 40%, #b89b7a 100%); }
.scn-defence-of-theatre-ducks-position .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c4a57c 0%, #a8865e 100%); }
.scn-defence-of-theatre-ducks-position .wall-bg { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #f0e0c8 0%, #e8d5b7 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.08); }
.scn-defence-of-theatre-ducks-position .table { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #9c7c5a 0%, #7a5f3e 100%); border-radius: 12px; box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.scn-defence-of-theatre-ducks-position .map-on-table { position:absolute; bottom:28%; left:22%; right:22%; height:10%; background: linear-gradient(135deg, #b69a6a 0%, #d4b98a 50%, #b69a6a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,.3), 0 4px 8px rgba(0,0,0,.1); animation: dt1-map 20s ease-in-out infinite alternate; }
.scn-defence-of-theatre-ducks-position .fort-model { position:absolute; bottom:25%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6b8f6b 0%, #4a6a4a 100%); clip-path: polygon(0 60%, 10% 0, 90% 0, 100% 60%, 80% 100%, 20% 100%); }
.scn-defence-of-theatre-ducks-position .general-figure { position:absolute; bottom:15%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt1-figure 5s ease-in-out infinite; }
.scn-defence-of-theatre-ducks-position .flag { position:absolute; bottom:55%; left:55%; width:24px; height:16px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; animation: dt1-flag 8s ease-in-out infinite alternate; }
.scn-defence-of-theatre-ducks-position .candle { position:absolute; bottom:30%; left:65%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 100%); box-shadow: 0 0 16px 4px #ffd080, 0 0 32px 8px rgba(255,208,128,.4); animation: dt1-candle 3s ease-in-out infinite alternate; }
@keyframes dt1-map { 0% { opacity:.85; transform: scale(1) } 50% { opacity:.95; transform: scale(1.01) } 100% { opacity:.85; transform: scale(1) } }
@keyframes dt1-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dt1-flag { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes dt1-candle { 0% { opacity:.7; box-shadow: 0 0 12px 2px #ffd080, 0 0 24px 6px rgba(255,208,128,.3) } 100% { opacity:1; box-shadow: 0 0 20px 6px #ffd080, 0 0 36px 12px rgba(255,208,128,.5) } }
.scn-defence-of-theatre-magazine-depot { background: linear-gradient(180deg, #d9c8a8 0%, #c4a57c 50%, #a8865e 100%); }
.scn-defence-of-theatre-magazine-depot .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b08f68 0%, #8b6f47 100%); }
.scn-defence-of-theatre-magazine-depot .wall-bg { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #ede0ce 0%, #e0ccb2 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.06); }
.scn-defence-of-theatre-magazine-depot .shelf-unit { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #7a5f3e 0%, #5a3f22 100%); border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,.3); }
.scn-defence-of-theatre-magazine-depot .barrel1 { position:absolute; bottom:45%; left:20%; width:30px; height:30px; background: radial-gradient(ellipse at 50% 40%, #6b4a2a 0%, #4a2a10 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: dt2-barrel 15s ease-in-out infinite; }
.scn-defence-of-theatre-magazine-depot .barrel2 { position:absolute; bottom:45%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #6b4a2a 0%, #4a2a10 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: dt2-barrel 20s ease-in-out infinite 5s; }
.scn-defence-of-theatre-magazine-depot .barrel3 { position:absolute; bottom:45%; left:75%; width:30px; height:30px; background: radial-gradient(ellipse at 50% 40%, #6b4a2a 0%, #4a2a10 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: dt2-barrel 18s ease-in-out infinite 2s; }
.scn-defence-of-theatre-magazine-depot .guard-figure { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dt2-guard 6s ease-in-out infinite; }
.scn-defence-of-theatre-magazine-depot .lantern { position:absolute; bottom:55%; left:70%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 30%; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.4); animation: dt2-lantern 4s ease-in-out infinite alternate; }
@keyframes dt2-barrel { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dt2-guard { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dt2-lantern { 0% { opacity:.8; box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,.3) } 100% { opacity:1; box-shadow: 0 0 25px 8px #ffd080, 0 0 45px 15px rgba(255,208,128,.5) } }
.scn-defence-of-theatre-extended-positions { background: linear-gradient(180deg, #e8d5b7 0%, #d4bc9a 50%, #b89b7a 100%); }
.scn-defence-of-theatre-extended-positions .horizon { position:absolute; top:30%; left:0; right:0; height:2px; background: #9c7c5a; }
.scn-defence-of-theatre-extended-positions .ground { position:absolute; top:30%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #c4a57c 0%, #a8865e 100%); }
.scn-defence-of-theatre-extended-positions .post1 { position:absolute; bottom:20%; left:10%; width:8px; height:24px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a10 100%); border-radius: 2px; transform-origin: bottom center; animation: dt3-post1 12s ease-in-out infinite; }
.scn-defence-of-theatre-extended-positions .post2 { position:absolute; bottom:20%; left:25%; width:7px; height:20px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a10 100%); border-radius: 2px; transform-origin: bottom center; animation: dt3-post2 14s ease-in-out infinite 2s; }
.scn-defence-of-theatre-extended-positions .post3 { position:absolute; bottom:20%; left:45%; width:6px; height:16px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a10 100%); border-radius: 2px; transform-origin: bottom center; animation: dt3-post3 16s ease-in-out infinite 4s; }
.scn-defence-of-theatre-extended-positions .post4 { position:absolute; bottom:20%; left:65%; width:5px; height:12px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a10 100%); border-radius: 2px; transform-origin: bottom center; animation: dt3-post4 18s ease-in-out infinite 6s; }
.scn-defence-of-theatre-extended-positions .post5 { position:absolute; bottom:20%; left:85%; width:4px; height:8px; background: linear-gradient(180deg, #5a3f22 0%, #3a2a10 100%); border-radius: 2px; transform-origin: bottom center; animation: dt3-post5 20s ease-in-out infinite 8s; }
.scn-defence-of-theatre-extended-positions .large-flag { position:absolute; bottom:45%; left:55%; width:30px; height:20px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 2px; animation: dt3-flag 8s ease-in-out infinite alternate; }
@keyframes dt3-post1 { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-post2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-post3 { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-post4 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-post5 { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes dt3-flag { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-8deg) } }
.scn-defence-of-theatre-relative-length { background: linear-gradient(180deg, #e0ccb2 0%, #d4bca0 50%, #c4a88a 100%); }
.scn-defence-of-theatre-relative-length .bg-depth { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #f5edd8 0%, #e0ccb2 70%); }
.scn-defence-of-theatre-relative-length .ground-plane { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b89b7a 0%, #9c7c5a 100%); }
.scn-defence-of-theatre-relative-length .long-bar { position:absolute; bottom:40%; left:10%; width:80%; height:12px; background: linear-gradient(180deg, #7a5f3e 0%, #5a3f22 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: dt4-long 25s ease-in-out infinite alternate; }
.scn-defence-of-theatre-relative-length .short-bar { position:absolute; bottom:30%; left:30%; width:40%; height:12px; background: linear-gradient(180deg, #7a5f3e 0%, #5a3f22 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: dt4-short 25s ease-in-out infinite alternate 10s; }
.scn-defence-of-theatre-relative-length .figure-left { position:absolute; bottom:20%; left:20%; width:18px; height:45px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dt4-fig 8s ease-in-out infinite; }
.scn-defence-of-theatre-relative-length .figure-right { position:absolute; bottom:20%; left:70%; width:18px; height:45px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dt4-fig 8s ease-in-out infinite 4s; }
.scn-defence-of-theatre-relative-length .perspective-line1 { position:absolute; bottom:20%; left:30%; width:2px; height:100px; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0) 100%); transform: rotate(15deg); animation: dt4-persp 30s ease-in-out infinite; }
.scn-defence-of-theatre-relative-length .perspective-line2 { position:absolute; bottom:20%; left:70%; width:2px; height:100px; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0) 100%); transform: rotate(-15deg); animation: dt4-persp 30s ease-in-out infinite 5s; }
@keyframes dt4-long { 0% { width:80% } 50% { width:70% } 100% { width:80% } }
@keyframes dt4-short { 0% { width:40% } 50% { width:30% } 100% { width:40% } }
@keyframes dt4-fig { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dt4-persp { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.1 } }

.scn-defence-of-theatre-1806-result { background: linear-gradient(180deg, #4b5a6a 0%, #3a4a5a 50%, #2c3a4a 100%), radial-gradient(ellipse at 50% 30%, #5c6a7a 0%, transparent 60%); }
.scn-defence-of-theatre-1806-result .overcast-sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #677a8a 0%, #4b5a6a 100%); animation: sc1-sky 12s ease-in-out infinite alternate; }
.scn-defence-of-theatre-1806-result .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 70% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: sc1-hills 20s ease-in-out infinite; }
.scn-defence-of-theatre-1806-result .ridge { position:absolute; bottom:22%; left:15%; width:70%; height:8%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; transform: scaleX(1.1); box-shadow: 0 -4px 6px rgba(0,0,0,.5); }
.scn-defence-of-theatre-1806-result .cannon { position:absolute; bottom:25%; left:25%; width:40px; height:20px; background: radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); animation: sc1-cannon 8s ease-in-out infinite; }
.scn-defence-of-theatre-1806-result .soldier-left { position:absolute; bottom:23%; left:18%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: sc1-soldier 6s ease-in-out infinite; }
.scn-defence-of-theatre-1806-result .soldier-right { position:absolute; bottom:23%; right:20%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: sc1-soldier 6s ease-in-out infinite 3s; }
.scn-defence-of-theatre-1806-result .smoke-cloud { position:absolute; bottom:40%; left:35%; width:80px; height:40px; background: radial-gradient(circle, rgba(200,200,200,.3) 0%, rgba(200,200,200,.05) 70%); border-radius: 50%; filter: blur(12px); animation: sc1-smoke 15s ease-in-out infinite alternate; }
.scn-defence-of-theatre-1806-result .flag { position:absolute; bottom:30%; left:30%; width:20px; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 50% 50% 0; transform-origin: left; animation: sc1-flag 1.5s ease-in-out infinite; }
@keyframes sc1-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sc1-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sc1-cannon { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes sc1-soldier { 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 sc1-smoke { 0% { transform: translateX(0) scale(1); opacity:.4; } 50% { transform: translateX(10px) scale(1.2); opacity:.6; } 100% { transform: translateX(20px) scale(0.8); opacity:.3; } }
@keyframes sc1-flag { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

.scn-defence-of-theatre-gradations { background: linear-gradient(180deg, #fdf8ed 0%, #efe5d0 70%, #d8c8b0 100%), radial-gradient(ellipse at 80% 20%, #fff8e8 0%, transparent 60%); }
.scn-defence-of-theatre-gradations .interior-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e8dcb8 0%, #f0e4c8 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,.1); }
.scn-defence-of-theatre-gradations .bright-window { position:absolute; top:10%; right:10%; width:30%; height:40%; background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #d8c8a0 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 0 40px 12px rgba(255,248,224,.3); animation: sc2-window 6s ease-in-out infinite alternate; }
.scn-defence-of-theatre-gradations .desk { position:absolute; bottom:10%; left:5%; width:60%; height:15%; background: linear-gradient(180deg, #b09060 0%, #8a6a40 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-defence-of-theatre-gradations .map-paper { position:absolute; bottom:15%; left:10%; width:40%; height:8%; background: linear-gradient(135deg, #d4c090 0%, #c8b080 100%); border-radius: 2%; transform: rotate(-2deg); box-shadow: 1px 1px 4px rgba(0,0,0,.2); animation: sc2-map 20s ease-in-out infinite; }
.scn-defence-of-theatre-gradations .bookshelf { position:absolute; top:5%; left:2%; width:15%; height:50%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6030 100%); border-radius: 4%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); }
.scn-defence-of-theatre-gradations .book-a { position:absolute; top:10%; left:3%; width:8%; height:6%; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 10%; animation: sc2-book 12s ease-in-out infinite; }
.scn-defence-of-theatre-gradations .book-b { position:absolute; top:20%; left:3%; width:8%; height:4%; background: linear-gradient(180deg, #6a4a6a 0%, #4a2a4a 100%); border-radius: 10%; animation: sc2-book 12s ease-in-out infinite 6s; }
.scn-defence-of-theatre-gradations .candle-glow { position:absolute; bottom:20%; left:50%; width:6px; height:16px; background: linear-gradient(180deg, #f0c060 0%, #d09030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,192,96,.5); animation: sc2-candle 5s ease-in-out infinite; }
@keyframes sc2-window { 0%,100% { opacity:.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }
@keyframes sc2-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sc2-book { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sc2-candle { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }

.scn-defence-of-theatre-1759-example { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%), radial-gradient(ellipse at 50% 40%, #5a6a6a 0%, transparent 70%); }
.scn-defence-of-theatre-1759-example .sky-bg { position:absolute; inset:0 0 60% 0; background: linear-gradient(0deg, #3a4a4a 0%, #5a6a6a 100%); animation: sc3-sky 15s ease-in-out infinite alternate; }
.scn-defence-of-theatre-1759-example .battlefield-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-defence-of-theatre-1759-example .marching-column { position:absolute; bottom:15%; left:10%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: sc3-march 8s ease-in-out infinite; }
.scn-defence-of-theatre-1759-example .cannon-unit { position:absolute; bottom:10%; left:30%; width:30px; height:18px; background: radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-10deg); animation: sc3-cannon 6s ease-in-out infinite; }
.scn-defence-of-theatre-1759-example .smoke-drift { position:absolute; bottom:25%; left:20%; width:60px; height:30px; background: radial-gradient(circle, rgba(200,200,200,.25) 0%, rgba(200,200,200,.05) 70%); border-radius: 50%; filter: blur(10px); animation: sc3-smoke 18s ease-in-out infinite alternate; }
.scn-defence-of-theatre-1759-example .standards { position:absolute; bottom:30%; left:20%; width:15px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 50% 50% 0; transform-origin: left; animation: sc3-flag 2s ease-in-out infinite; }
.scn-defence-of-theatre-1759-example .horseman { position:absolute; bottom:15%; left:60%; width:18px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; animation: sc3-horse 4s ease-in-out infinite; }
@keyframes sc3-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes sc3-march { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes sc3-cannon { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } }
@keyframes sc3-smoke { 0% { transform: translateX(0) scale(1); opacity:.3; } 50% { transform: translateX(-10px) scale(1.3); opacity:.5; } 100% { transform: translateX(10px) scale(0.9); opacity:.2; } }
@keyframes sc3-flag { 0%,100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@keyframes sc3-horse { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-defence-of-theatre-other-reasons { background: linear-gradient(180deg, #f5eed5 0%, #e8dcc5 60%, #d4c0a0 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 50%); }
.scn-defence-of-theatre-other-reasons .map-room-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #e8dcb8 0%, #f0e4c8 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.1); }
.scn-defence-of-theatre-other-reasons .map-table { position:absolute; bottom:5%; left:5%; width:80%; height:25%; background: linear-gradient(180deg, #a08050 0%, #806030 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.3); }
.scn-defence-of-theatre-other-reasons .battle-map { position:absolute; bottom:10%; left:10%; width:60%; height:12%; background: linear-gradient(135deg, #d4c090 0%, #c8b080 100%); border-radius: 2%; transform: rotate(1deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: sc4-map 15s ease-in-out infinite; }
.scn-defence-of-theatre-other-reasons .officer-figure { position:absolute; bottom:15%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: sc4-officer 6s ease-in-out infinite; }
.scn-defence-of-theatre-other-reasons .lantern-light { position:absolute; bottom:20%; left:70%; width:12px; height:16px; background: radial-gradient(circle, #f0c060 0%, #d09030 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(240,192,96,.6); animation: sc4-lantern 4s ease-in-out infinite; }
.scn-defence-of-theatre-other-reasons .compass-dial { position:absolute; bottom:14%; left:55%; width:14px; height:14px; background: radial-gradient(circle, #c0a060 0%, #806040 70%); border-radius: 50%; box-shadow: 0 0 6px rgba(0,0,0,.3); animation: sc4-compass 10s ease-in-out infinite; }
.scn-defence-of-theatre-other-reasons .chair-silhouette { position:absolute; bottom:5%; left:15%; width:16px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(10deg); box-shadow: -2px 0 4px rgba(0,0,0,.4); animation: sc4-chair 8s ease-in-out infinite; }
@keyframes sc4-map { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes sc4-officer { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes sc4-lantern { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) scale(1.05); } }
@keyframes sc4-compass { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes sc4-chair { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-surest-commencement-army { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, transparent 60%); }
.scn-surest-commencement-army .bg-tent { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a22 0%, #1a1410 100%); animation: sca-tent 20s ease-in-out infinite alternate; }
.scn-surest-commencement-army .table { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 -10px 20px rgba(0,0,0,0.6); animation: sca-table 15s ease-in-out infinite; }
.scn-surest-commencement-army .map { position:absolute; bottom:12%; left:25%; right:25%; height:14%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 5%; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: sca-map 12s ease-in-out infinite alternate; }
.scn-surest-commencement-army .commander { position:absolute; bottom:20%; left:30%; width:36px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: sca-commander 4s ease-in-out infinite; }
.scn-surest-commencement-army .lantern { position:absolute; bottom:25%; left:55%; width:12px; height:16px; background: radial-gradient(circle, #c8a04a 0%, #8a6a2a 50%, transparent 100%); border-radius: 40%; box-shadow: 0 0 30px 12px #a08030, 0 0 60px 24px rgba(160,128,48,0.3); animation: sca-glow 2s ease-in-out infinite alternate; }
.scn-surest-commencement-army .shadow { position:absolute; bottom:0; left:30%; right:30%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation: sca-shadow 6s ease-in-out infinite; }
.scn-surest-commencement-army .dust { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(200,180,140,0.3); border-radius: 50%; animation: sca-dust 8s linear infinite; }
@keyframes sca-tent { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sca-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sca-map { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } }
@keyframes sca-commander { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sca-glow { 0% { box-shadow: 0 0 20px 8px #a08030, 0 0 40px 16px rgba(160,128,48,0.3); opacity:0.9; } 50% { box-shadow: 0 0 40px 16px #c8a04a, 0 0 70px 28px rgba(200,160,74,0.5); opacity:1; } 100% { box-shadow: 0 0 25px 10px #a08030, 0 0 50px 20px rgba(160,128,48,0.35); opacity:0.9; } }
@keyframes sca-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sca-dust { 0% { transform: translateY(0) translateX(0); opacity:0.3 } 50% { transform: translateY(-20px) translateX(10px); opacity:0.1 } 100% { transform: translateY(-40px) translateX(20px); opacity:0 } }

.scn-coalition-centre-gravity { background: linear-gradient(180deg, #1e1e2e 0%, #141420 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%); }
.scn-coalition-centre-gravity .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); animation: ccg-room 25s ease-in-out infinite alternate; }
.scn-coalition-centre-gravity .bookshelf { position:absolute; top:10%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5% 5% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: ccg-books 20s ease-in-out infinite; }
.scn-coalition-centre-gravity .books { position:absolute; top:15%; left:12%; width:26%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 3%; box-shadow: inset 0 0 8px rgba(0,0,0,0.4); animation: ccg-books 20s ease-in-out infinite alternate; }
.scn-coalition-centre-gravity .globe { position:absolute; bottom:30%; left:60%; width:50px; height:50px; background: radial-gradient(circle at 35% 35%, #6a8a6a, #3a5a3a); border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: ccg-globe 30s linear infinite; }
.scn-coalition-centre-gravity .figure { position:absolute; bottom:18%; left:30%; width:32px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: ccg-figure 6s ease-in-out infinite; }
.scn-coalition-centre-gravity .candle { position:absolute; bottom:25%; left:20%; width:8px; height:12px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 8px #c0a060, 0 0 40px 16px rgba(192,160,96,0.3); animation: ccg-candle 3s ease-in-out infinite alternate; }
.scn-coalition-centre-gravity .dust { position:absolute; top:40%; left:50%; width:3px; height:3px; background: rgba(200,180,160,0.3); border-radius: 50%; animation: ccg-dust 10s linear infinite; }
@keyframes ccg-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ccg-books { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ccg-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ccg-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccg-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ccg-dust { 0% { transform: translateY(0) translateX(0); opacity:0.3 } 50% { transform: translateY(-30px) translateX(15px); opacity:0.1 } 100% { transform: translateY(-60px) translateX(30px); opacity:0 } }

.scn-independent-interests-coalition { background: linear-gradient(180deg, #282032 0%, #1c1426 40%, #100a18 100%), radial-gradient(ellipse at 50% 50%, #3a2a4a 0%, transparent 70%); }
.scn-independent-interests-coalition .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, #302840 0%, #1a1420 100%); animation: iic-hall 20s ease-in-out infinite alternate; }
.scn-independent-interests-coalition .table { position:absolute; bottom:8%; left:15%; right:15%; height:22%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 30% 30% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: iic-table 15s ease-in-out infinite; }
.scn-independent-interests-coalition .figure1 { position:absolute; bottom:18%; left:25%; width:30px; height:55px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: iic-fig1 5s ease-in-out infinite; }
.scn-independent-interests-coalition .figure2 { position:absolute; bottom:18%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: iic-fig2 6s ease-in-out infinite; }
.scn-independent-interests-coalition .figure3 { position:absolute; bottom:18%; left:65%; width:30px; height:55px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: iic-fig3 4.5s ease-in-out infinite; }
.scn-independent-interests-coalition .chandelier { position:absolute; top:10%; left:50%; transform: translateX(-50%); width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, #c8a070 0%, #8a6030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 20px #a08050, 0 0 100px 40px rgba(160,128,80,0.3); animation: iic-chandelier 4s ease-in-out infinite alternate; }
.scn-independent-interests-coalition .banner { position:absolute; top:25%; left:10%; width:8%; height:30%; background: linear-gradient(180deg, #5a3a3a 0%, #3a2a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: iic-banner 12s ease-in-out infinite; }
@keyframes iic-hall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes iic-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes iic-fig1 { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes iic-fig2 { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes iic-fig3 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iic-chandelier { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes iic-banner { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-one-blow-common-centre { background: linear-gradient(180deg, #1e2a2e 0%, #141e22 40%, #0a1418 100%), radial-gradient(ellipse at 50% 40%, #2a3a3e 0%, transparent 70%); }
.scn-one-blow-common-centre .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a3a3e 0%, #1a2a2e 100%); animation: obc-room 22s ease-in-out infinite alternate; }
.scn-one-blow-common-centre .figure { position:absolute; bottom:20%; left:50%; width:40px; height:75px; transform: translateX(-50%); background: linear-gradient(180deg, #1a2a2e 0%, #0e1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: obc-figure 7s ease-in-out infinite; }
.scn-one-blow-common-centre .desk { position:absolute; bottom:8%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 30% 30% 5% 5%; box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5); animation: obc-desk 18s ease-in-out infinite; }
.scn-one-blow-common-centre .target { position:absolute; bottom:15%; left:50%; transform: translateX(-50%); width:50px; height:50px; background: radial-gradient(circle, #6a8a6a 0%, #3a5a3a 50%, #1a2a2a 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(106,138,106,0.3); animation: obc-target 10s linear infinite; }
.scn-one-blow-common-centre .lantern { position:absolute; bottom:28%; left:55%; width:10px; height:14px; background: radial-gradient(circle, #c8a04a 0%, #8a6a2a 50%, transparent 100%); border-radius: 40%; box-shadow: 0 0 25px 10px #a08030, 0 0 50px 20px rgba(160,128,48,0.4); animation: obc-glow 3s ease-in-out infinite alternate; }
.scn-one-blow-common-centre .lightbeam { position:absolute; bottom:25%; left:55%; width:2px; height:40%; background: linear-gradient(180deg, rgba(200,160,74,0.4) 0%, transparent 100%); transform: rotate(-10deg); transform-origin: bottom left; animation: obc-beam 5s ease-in-out infinite alternate; }
.scn-one-blow-common-centre .dust { position:absolute; top:40%; left:30%; width:3px; height:3px; background: rgba(200,180,160,0.2); border-radius: 50%; animation: obc-dust 12s linear infinite; }
@keyframes obc-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes obc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes obc-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes obc-target { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(180deg) scale(1.1); } 100% { transform: translateX(-50%) rotate(360deg) scale(1); } }
@keyframes obc-glow { 0% { box-shadow: 0 0 15px 6px #a08030, 0 0 30px 12px rgba(160,128,48,0.3); opacity:0.9; } 50% { box-shadow: 0 0 35px 14px #c8a04a, 0 0 60px 24px rgba(200,160,74,0.5); opacity:1; } 100% { box-shadow: 0 0 20px 8px #a08030, 0 0 40px 16px rgba(160,128,48,0.35); opacity:0.9; } }
@keyframes obc-beam { 0% { transform: rotate(-10deg); opacity:0.4; } 50% { transform: rotate(-15deg); opacity:0.6; } 100% { transform: rotate(-10deg); opacity:0.4; } }
@keyframes obc-dust { 0% { transform: translateY(0) translateX(0); opacity:0.2 } 50% { transform: translateY(-40px) translateX(20px); opacity:0.05 } 100% { transform: translateY(-80px) translateX(40px); opacity:0 } }

/* forces-sufficient-victory */
.scn-forces-sufficient-victory {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #2a1e1a 0%, #1f1410 100%), radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-forces-sufficient-victory .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); animation: fsv-room 12s ease infinite alternate; }
.scn-forces-sufficient-victory .table { position:absolute; bottom:30%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); animation: fsv-table 8s ease infinite alternate; }
.scn-forces-sufficient-victory .map { position:absolute; bottom:40%; left:25%; right:25%; height:15%; background: linear-gradient(135deg, #c8a880 0%, #a08060 100%); border: 1px solid #6a5a3a; transform: rotate(-2deg); animation: fsv-map 6s ease infinite alternate; }
.scn-forces-sufficient-victory .candle { position:absolute; bottom:45%; left:60%; width:10px; height:20px; background: linear-gradient(180deg, #e0c090 0%, #b09060 100%); border-radius: 20% 20% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-forces-sufficient-victory .flame { position:absolute; bottom:64%; left:60%; width:8px; height:12px; margin-left:-4px; background: radial-gradient(circle, #ffdd66 0%, #e0a030 60%, transparent); border-radius:50%; animation: fsv-flame 0.5s ease-in-out infinite alternate; box-shadow: 0 0 12px 6px #e0a030, 0 0 24px 12px rgba(224,160,48,.4); }
.scn-forces-sufficient-victory .pawn { position:absolute; bottom:37%; left:35%; width:8px; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: fsv-pawn 3s ease-in-out infinite alternate; }
.scn-forces-sufficient-victory .shadow { position:absolute; bottom:10%; left:20%; right:30%; height:40%; background: rgba(0,0,0,.4); filter: blur(8px); animation: fsv-shadow 4s ease-in-out infinite alternate; }
@keyframes fsv-room {
  0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; }
}
@keyframes fsv-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); }
}
@keyframes fsv-map {
  0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-3deg) translateX(-2px); }
}
@keyframes fsv-flame {
  0% { transform: scaleY(1) translateY(0); opacity:1; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:.9; } 100% { transform: scaleY(0.9) translateY(1px); opacity:.8; }
}
@keyframes fsv-pawn {
  0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(3deg) translateX(-2px); }
}
@keyframes fsv-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:.4; } 50% { transform: scaleX(1.1) translateX(5px); opacity:.3; } 100% { transform: scaleX(0.9) translateX(-3px); opacity:.5; }
}

/* france-1806-prussia */
.scn-france-1806-prussia {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #1e2228 0%, #121418 100%), radial-gradient(ellipse at 50% 60%, #2a3038 0%, transparent 70%);
}
.scn-france-1806-prussia .room { position:absolute; inset:0; background: linear-gradient(180deg, #161a1e 0%, #0e1012 100%); animation: fpr-room 15s ease infinite alternate; }
.scn-france-1806-prussia .desk { position:absolute; bottom:25%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a4038 0%, #1a1e1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.5); animation: fpr-desk 10s ease infinite alternate; }
.scn-france-1806-prussia .document { position:absolute; bottom:40%; left:30%; right:30%; height:12%; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border: 1px solid #8a7a5a; transform: rotate(1deg); animation: fpr-doc 7s ease infinite alternate; }
.scn-france-1806-prussia .quill { position:absolute; bottom:38%; left:45%; width:4px; height:16px; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); border-radius: 0 0 50% 50%; transform: rotate(-15deg); transform-origin: bottom; animation: fpr-quill 3s ease-in-out infinite alternate; }
.scn-france-1806-prussia .inkwell { position:absolute; bottom:35%; left:42%; width:12px; height:10px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: fpr-inkwell 5s ease infinite alternate; }
.scn-france-1806-prussia .candle { position:absolute; bottom:30%; left:60%; width:8px; height:18px; background: linear-gradient(180deg, #e0c090 0%, #b09060 100%); border-radius: 20% 20% 0 0; }
.scn-france-1806-prussia .flame { position:absolute; bottom:52%; left:60%; width:6px; height:10px; background: radial-gradient(circle, #ffdd66 0%, #e0a030 60%, transparent); border-radius:50%; animation: fpr-flame 0.4s ease-in-out infinite alternate; box-shadow: 0 0 10px 4px #e0a030; }
.scn-france-1806-prussia .spyglass { position:absolute; bottom:33%; left:25%; width:8px; height:20px; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; transform: rotate(20deg); transform-origin: bottom; animation: fpr-spyglass 8s ease-in-out infinite alternate; }
.scn-france-1806-prussia .shadow { position:absolute; bottom:5%; left:15%; right:20%; height:50%; background: rgba(0,0,10,.5); filter: blur(10px); animation: fpr-shadow 6s ease-in-out infinite alternate; }
@keyframes fpr-room {
  0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; }
}
@keyframes fpr-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); }
}
@keyframes fpr-doc {
  0% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(2deg) translateX(-1px); }
}
@keyframes fpr-quill {
  0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-18deg) translateX(-1px); }
}
@keyframes fpr-inkwell {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); }
}
@keyframes fpr-flame {
  0% { transform: scaleY(1) translateY(0); opacity:1; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:.85; } 100% { transform: scaleY(0.8) translateY(1px); opacity:.7; }
}
@keyframes fpr-spyglass {
  0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(3px); } 100% { transform: rotate(18deg) translateX(-2px); }
}
@keyframes fpr-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.15) translateX(5px); opacity:.4; } 100% { transform: scaleX(0.85) translateX(-3px); opacity:.6; }
}

/* time-dynamic-analogy */
.scn-time-dynamic-analogy {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #2a2a22 0%, #1a1a12 100%), radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, transparent 70%);
}
.scn-time-dynamic-analogy .room { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e16 0%, #12120c 100%); animation: tda-room 20s ease infinite alternate; }
.scn-time-dynamic-analogy .bookshelf { position:absolute; left:5%; top:15%; width:20%; height:60%; background: linear-gradient(180deg, #4a4030 0%, #2a2010 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6); animation: tda-shelf 30s ease infinite alternate; }
.scn-time-dynamic-analogy .desk { position:absolute; bottom:25%; left:30%; right:10%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; animation: tda-desk 15s ease infinite alternate; }
.scn-time-dynamic-analogy .chair { position:absolute; left:20%; bottom:15%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: scaleX(0.8); animation: tda-chair 12s ease infinite alternate; }
.scn-time-dynamic-analogy .lamp { position:absolute; bottom:40%; right:15%; width:10px; height:25px; background: linear-gradient(180deg, #b09060 0%, #907050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px 5px #c0a060; animation: tda-lamp 4s ease-in-out infinite alternate; }
.scn-time-dynamic-analogy .clock { position:absolute; top:25%; right:20%; width:30px; height:30px; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:50%; box-shadow: inset 0 0 4px #3a2a1a; animation: tda-clock 60s linear infinite; }
.scn-time-dynamic-analogy .window { position:absolute; right:5%; top:10%; width:20%; height:40%; background: linear-gradient(180deg, #1a2025 0%, #0a0a10 100%); border: 2px solid #3a3a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: tda-window 12s ease infinite alternate; }
.scn-time-dynamic-analogy .dust, .scn-time-dynamic-analogy .dust2 { position:absolute; width:4px; height:4px; background: rgba(200,180,150,.3); border-radius:50%; filter: blur(2px); }
.scn-time-dynamic-analogy .dust { top:10%; left:50%; animation: tda-dust 40s linear infinite; }
.scn-time-dynamic-analogy .dust2 { top:30%; left:70%; animation: tda-dust2 50s linear infinite; }
@keyframes tda-room {
  0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; }
}
@keyframes tda-shelf {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); }
}
@keyframes tda-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); }
}
@keyframes tda-chair {
  0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.82) translateY(-1px); } 100% { transform: scaleX(0.78) translateY(1px); }
}
@keyframes tda-lamp {
  0% { opacity:.7; box-shadow: 0 0 15px 3px #c0a060; } 50% { opacity:1; box-shadow: 0 0 25px 8px #d0b070; } 100% { opacity:.8; box-shadow: 0 0 18px 4px #c0a060; }
}
@keyframes tda-clock {
  0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }
}
@keyframes tda-window {
  0% { background: linear-gradient(180deg, #1a2025 0%, #0a0a10 100%); } 50% { background: linear-gradient(180deg, #202830 0%, #0e1018 100%); } 100% { background: linear-gradient(180deg, #181e22 0%, #080a0e 100%); }
}
@keyframes tda-dust {
  0% { transform: translate(0, 0); opacity:.2; } 25% { transform: translate(20px, -10px); opacity:.4; } 50% { transform: translate(40px, 5px); opacity:.3; } 75% { transform: translate(15px, -15px); opacity:.5; } 100% { transform: translate(-10px, 0); opacity:.2; }
}
@keyframes tda-dust2 {
  0% { transform: translate(0, 0); opacity:.2; } 33% { transform: translate(-15px, 10px); opacity:.35; } 66% { transform: translate(10px, -5px); opacity:.25; } 100% { transform: translate(5px, -20px); opacity:.3; }
}

/* time-psychological-factor */
.scn-time-psychological-factor {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%), radial-gradient(ellipse at 50% 50%, #3a3a48 0%, transparent 70%);
}
.scn-time-psychological-factor .room { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e26 0%, #12121a 100%); animation: tps-room 20s ease infinite alternate; }
.scn-time-psychological-factor .window { position:absolute; left:5%; top:15%; width:20%; height:50%; background: linear-gradient(180deg, #1a2028 0%, #0a0e14 100%); border: 2px solid #3a3a4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: tps-window 15s ease infinite alternate; }
.scn-time-psychological-factor .desk { position:absolute; bottom:25%; left:30%; right:10%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; animation: tps-desk 12s ease infinite alternate; }
.scn-time-psychological-factor .chair { position:absolute; left:25%; bottom:15%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: scaleX(0.8); animation: tps-chair 10s ease infinite alternate; }
.scn-time-psychological-factor .silhouette { position:absolute; left:35%; bottom:20%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tps-silhouette 8s ease-in-out infinite alternate; }
.scn-time-psychological-factor .lamp { position:absolute; bottom:40%; right:15%; width:8px; height:20px; background: linear-gradient(180deg, #b09060 0%, #907050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 15px 4px #c0a060; animation: tps-lamp 5s ease-in-out infinite alternate; }
.scn-time-psychological-factor .pendulum { position:absolute; top:10%; left:50%; width:4px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: top; animation: tps-pendulum 8s ease-in-out infinite alternate; }
.scn-time-psychological-factor .dust, .scn-time-psychological-factor .dust2 { position:absolute; width:3px; height:3px; background: rgba(200,180,150,.3); border-radius:50%; filter: blur(2px); }
.scn-time-psychological-factor .dust { top:30%; left:30%; animation: tps-dust 30s linear infinite; }
.scn-time-psychological-factor .dust2 { top:60%; left:70%; animation: tps-dust2 25s linear infinite; }
@keyframes tps-room {
  0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; }
}
@keyframes tps-window {
  0% { background: linear-gradient(180deg, #1a2028 0%, #0a0e14 100%); } 50% { background: linear-gradient(180deg, #20242c 0%, #0e1218 100%); } 100% { background: linear-gradient(180deg, #181c22 0%, #080c10 100%); }
}
@keyframes tps-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); }
}
@keyframes tps-chair {
  0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.82) translateY(-1px); } 100% { transform: scaleX(0.78) translateY(1px); }
}
@keyframes tps-silhouette {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes tps-lamp {
  0% { opacity:.7; box-shadow: 0 0 10px 2px #c0a060; } 50% { opacity:1; box-shadow: 0 0 20px 6px #d0b070; } 100% { opacity:.8; box-shadow: 0 0 12px 3px #c0a060; }
}
@keyframes tps-pendulum {
  0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); }
}
@keyframes tps-dust {
  0% { transform: translate(0, 0); opacity:.2; } 33% { transform: translate(10px, -8px); opacity:.35; } 66% { transform: translate(-5px, 5px); opacity:.25; } 100% { transform: translate(8px, -12px); opacity:.3; }
}
@keyframes tps-dust2 {
  0% { transform: translate(0, 0); opacity:.15; } 25% { transform: translate(-8px, 6px); opacity:.3; } 50% { transform: translate(5px, -10px); opacity:.25; } 75% { transform: translate(-3px, 3px); opacity:.2; } 100% { transform: translate(6px, -4px); opacity:.15; }
}

.scn-vast-country-deferred-blow {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%, #0d0a09 100%), radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-vast-country-deferred-blow .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a10 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  border-radius: 10% 10% 0 0;
}
.scn-vast-country-deferred-blow .map {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border: 2px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: vcd-map 15s ease-in-out infinite alternate;
}
.scn-vast-country-deferred-blow .table {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-vast-country-deferred-blow .lamp {
  position: absolute; top: 25%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 90%, #d4a050 0%, #8a6030 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px #d4a050, 0 0 60px 20px rgba(212,160,80,0.3);
  animation: vcd-lamp 2s ease-in-out infinite alternate;
}
.scn-vast-country-deferred-blow .figure {
  position: absolute; bottom: 35%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vcd-figure 5s ease-in-out infinite;
}
.scn-vast-country-deferred-blow .shadow {
  position: absolute; bottom: 0; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: vcd-shadow 5s ease-in-out infinite;
}
@keyframes vcd-map {
  0% { background-position: 0% 0%; opacity: 0.8; }
  50% { background-position: 5% 5%; opacity: 1; }
  100% { background-position: -5% -5%; opacity: 0.9; }
}
@keyframes vcd-lamp {
  0% { box-shadow: 0 0 20px 8px #d4a050, 0 0 40px 15px rgba(212,160,80,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px #e0b060, 0 0 80px 30px rgba(224,176,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px #b08040, 0 0 50px 20px rgba(176,128,64,0.3); opacity: 0.85; }
}
@keyframes vcd-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes vcd-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.9); opacity: 0.8; }
  100% { transform: scaleX(1.1); opacity: 0.5; }
}

.scn-blow-point-not-shaking {
  background: linear-gradient(135deg, #1a1210 0%, #0d0a08 50%, #1a1510 100%), radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 70%);
}
.scn-blow-point-not-shaking .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0d0a08 0%, #1a1210 100%);
  opacity: 0.8;
}
.scn-blow-point-not-shaking .table {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 60%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
}
.scn-blow-point-not-shaking .central {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bpn-central 6s ease-in-out infinite alternate;
}
.scn-blow-point-not-shaking .piece1 {
  position: absolute; bottom: 45%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bpn-piece1 4s ease-in-out infinite;
}
.scn-blow-point-not-shaking .piece2 {
  position: absolute; bottom: 45%; left: 70%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bpn-piece2 5s ease-in-out infinite alternate;
}
.scn-blow-point-not-shaking .piece3 {
  position: absolute; bottom: 40%; left: 40%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bpn-piece2 5s ease-in-out infinite alternate-reverse;
}
.scn-blow-point-not-shaking .spotlight {
  position: absolute; top: 0; left: 30%; width: 120px; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,170,120,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: bpn-spot 3s ease-in-out infinite alternate;
}
@keyframes bpn-central {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes bpn-piece1 {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(3deg); }
  66% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(1px) rotate(0deg); }
}
@keyframes bpn-piece2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(2deg); }
}
@keyframes bpn-spot {
  0% { opacity: 0.5; transform: scaleY(0.9); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}

.scn-opposed-spirit-principle {
  background: linear-gradient(180deg, #0d0a08 0%, #1a1210 40%, #2a1e1a 100%), radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-opposed-spirit-principle .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0a08 0%, #1a1210 100%);
  opacity: 0.9;
}
.scn-opposed-spirit-principle .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 20% 20% 0 0;
}
.scn-opposed-spirit-principle .light {
  position: absolute; top: 30%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d4a050 0%, #8a6030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #d4a050, 0 0 100px 40px rgba(212,160,80,0.3);
  animation: osp-light 2s ease-in-out infinite alternate;
}
.scn-opposed-spirit-principle .figure-left {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0d0907 0%, #050302 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: osp-fig-l 4s ease-in-out infinite;
}
.scn-opposed-spirit-principle .figure-right {
  position: absolute; bottom: 15%; right: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0d0907 0%, #050302 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: osp-fig-r 4s ease-in-out infinite;
}
.scn-opposed-spirit-principle .halo {
  position: absolute; top: 25%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(212,160,80,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: osp-halo 3s ease-in-out infinite alternate;
}
@keyframes osp-light {
  0% { box-shadow: 0 0 40px 15px #d4a050, 0 0 80px 30px rgba(212,160,80,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 60px 25px #e0b060, 0 0 120px 50px rgba(224,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.2); opacity: 0.8; }
}
@keyframes osp-fig-l {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg) translateX(2px); }
  50% { transform: rotate(-1deg) translateX(-1px); }
  75% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(0deg); }
}
@keyframes osp-fig-r {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg) translateX(-2px); }
  50% { transform: rotate(1deg) translateX(1px); }
  75% { transform: rotate(-1deg) translateX(-1px); }
  100% { transform: rotate(0deg); }
}
@keyframes osp-halo {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.4; }
}

.scn-divergent-retreat-complicates {
  background: linear-gradient(135deg, #1a1210 0%, #0d0a08 50%, #1a1210 100%), radial-gradient(ellipse at 50% 40%, #2a1e1a 0%, transparent 70%);
}
.scn-divergent-retreat-complicates .bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #0d0a08 0%, #1a1210 100%);
  opacity: 0.9;
}
.scn-divergent-retreat-complicates .center {
  position: absolute; left: 50%; top: 40%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #d4a050 0%, #8a6030 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(212,160,80,0.6);
  animation: drc-center 2s ease-in-out infinite alternate;
}
.scn-divergent-retreat-complicates .path-a {
  position: absolute; left: 50%; top: 40%; width: 40%; height: 2px;
  transform-origin: 0 50%;
  transform: rotate(25deg);
  background: linear-gradient(90deg, #d4a050 0%, #8a6030 50%, transparent 100%);
  border-radius: 1px;
  animation: drc-path-a 8s ease-in-out infinite alternate;
}
.scn-divergent-retreat-complicates .path-b {
  position: absolute; left: 50%; top: 40%; width: 40%; height: 2px;
  transform-origin: 0 50%;
  transform: rotate(0deg);
  background: linear-gradient(90deg, #d4a050 0%, #8a6030 50%, transparent 100%);
  border-radius: 1px;
  animation: drc-path-b 10s ease-in-out infinite alternate;
}
.scn-divergent-retreat-complicates .path-c {
  position: absolute; left: 50%; top: 40%; width: 40%; height: 2px;
  transform-origin: 0 50%;
  transform: rotate(-25deg);
  background: linear-gradient(90deg, #d4a050 0%, #8a6030 50%, transparent 100%);
  border-radius: 1px;
  animation: drc-path-c 12s ease-in-out infinite alternate;
}
.scn-divergent-retreat-complicates .marker {
  position: absolute; left: 50%; top: 40%; width: 8px; height: 8px;
  transform: translate(-50%, -50%);
  background: #ffcc80;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffcc80;
  animation: drc-marker 1.5s ease-in-out infinite alternate;
}
.scn-divergent-retreat-complicates .overlay {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.1) 20px, rgba(0,0,0,0.1) 21px);
  pointer-events: none;
  animation: drc-overlay 20s linear infinite;
}
@keyframes drc-center {
  0% { box-shadow: 0 0 15px 3px rgba(212,160,80,0.5); transform: translate(-50%, -50%) scale(1); }
  50% { box-shadow: 0 0 25px 8px rgba(212,160,80,0.8); transform: translate(-50%, -50%) scale(1.1); }
  100% { box-shadow: 0 0 10px 2px rgba(212,160,80,0.3); transform: translate(-50%, -50%) scale(0.95); }
}
@keyframes drc-path-a {
  0% { transform: rotate(25deg) scaleX(0.8); opacity: 0.6; }
  50% { transform: rotate(30deg) scaleX(1); opacity: 1; }
  100% { transform: rotate(20deg) scaleX(0.9); opacity: 0.7; }
}
@keyframes drc-path-b {
  0% { transform: rotate(0deg) scaleX(0.9); opacity: 0.7; }
  50% { transform: rotate(-5deg) scaleX(1.1); opacity: 1; }
  100% { transform: rotate(5deg) scaleX(0.8); opacity: 0.6; }
}
@keyframes drc-path-c {
  0% { transform: rotate(-25deg) scaleX(0.7); opacity: 0.5; }
  50% { transform: rotate(-20deg) scaleX(1); opacity: 1; }
  100% { transform: rotate(-30deg) scaleX(0.9); opacity: 0.6; }
}
@keyframes drc-marker {
  0% { opacity: 0.8; box-shadow: 0 0 8px 2px #ffcc80; }
  50% { opacity: 1; box-shadow: 0 0 15px 5px #ffcc80; }
  100% { opacity: 0.6; box-shadow: 0 0 5px 1px #ffcc80; }
}
@keyframes drc-overlay {
  0% { background-position: 0 0; }
  100% { background-position: 0 40px; }
}

.scn-strategic-manoeuvring-1796{background:linear-gradient(180deg,#232 0%,#121 60%,#010 100%),radial-gradient(ellipse at 50% 0%,#343 0%,transparent 70%)}.scn-strategic-manoeuvring-1796 .s{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#3a3a4e 0%,transparent 100%);animation:si1s 15s ease infinite alternate}.scn-strategic-manoeuvring-1796 .m{position:absolute;bottom:30%;left:0;right:0;height:20%;background:linear-gradient(180deg,#4a4a5a 0%,#2a2a3a 100%);animation:si1m 20s ease infinite alternate}.scn-strategic-manoeuvring-1796 .t{position:absolute;bottom:10%;left:10%;width:60%;height:20%;background:linear-gradient(180deg,#6a5a3a 0%,#3a2a1a 100%);transform:perspective(400px) rotateX(30deg);animation:si1t 6s ease infinite}.scn-strategic-manoeuvring-1796 .f{position:absolute;bottom:18%;left:25%;width:20px;height:40px;background:linear-gradient(180deg,#3a3a4a 0%,#1a1a2a 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:si1f 4s ease infinite}.scn-strategic-manoeuvring-1796 .l{position:absolute;bottom:22%;left:30%;width:8px;height:8px;background:radial-gradient(circle,#d0a050 0%,transparent 70%);border-radius:50%;animation:si1l 2s ease infinite alternate}@keyframes si1s{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}@keyframes si1m{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes si1t{0%{transform:perspective(400px) rotateX(30deg)}50%{transform:perspective(400px) rotateX(32deg) translateY(-2px)}100%{transform:perspective(400px) rotateX(30deg)}}@keyframes si1f{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(5px) rotate(1deg)}50%{transform:translateX(10px) rotate(-1deg)}75%{transform:translateX(15px) rotate(2deg)}100%{transform:translateX(20px) rotate(0)}}@keyframes si1l{0%{box-shadow:0 0 15px 5px #b08040;opacity:.8}50%{box-shadow:0 0 25px 12px #d0a050;opacity:1}100%{box-shadow:0 0 15px 5px #b08040;opacity:.9}}

.scn-strategic-manoeuvring-1812{background:linear-gradient(180deg,#1f1f2f 0%,#0e0e1e 60%,#050510 100%),radial-gradient(ellipse at 50% 100%,#2a2a3a 0%,transparent 60%)}.scn-strategic-manoeuvring-1812 .g{position:absolute;inset:0 0 35% 0;background:linear-gradient(180deg,#3a3a4a 0%,transparent 100%);animation:si2g 18s ease infinite alternate}.scn-strategic-manoeuvring-1812 .w{position:absolute;bottom:40%;left:20%;width:60%;height:30%;background:linear-gradient(180deg,#4a4a5a 0%,#2a2a3a 100%);border-radius:10px;box-shadow:inset 0 0 20px rgba(0,0,0,.5);animation:si2w 12s ease infinite alternate}.scn-strategic-manoeuvring-1812 .b{position:absolute;bottom:15%;left:15%;width:60%;height:20%;background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%);transform:perspective(300px) rotateX(20deg);animation:si2b 8s ease infinite}.scn-strategic-manoeuvring-1812 .a{position:absolute;bottom:18%;left:30%;width:22px;height:42px;background:linear-gradient(180deg,#2a2a3a 0%,#0f0f1a 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:si2a 5s ease infinite}.scn-strategic-manoeuvring-1812 .c{position:absolute;bottom:18%;left:45%;width:18px;height:36px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:si2c 5.5s ease infinite .5s}@keyframes si2g{0%{opacity:.7}50%{opacity:1}100%{opacity:.6}}@keyframes si2w{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}@keyframes si2b{0%{transform:perspective(300px) rotateX(20deg)}50%{transform:perspective(300px) rotateX(22deg) translateY(-2px)}100%{transform:perspective(300px) rotateX(20deg)}}@keyframes si2a{0%{transform:translateX(0) rotate(-1deg)}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 si2c{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(-4px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}

.scn-strategic-manoeuvring-buonaparte-mistake{background:linear-gradient(180deg,#1a1a2e 0%,#0f0f1f 50%,#050510 100%),radial-gradient(ellipse at 50% 0%,#2a2a3e 0%,transparent 60%)}.scn-strategic-manoeuvring-buonaparte-mistake .b{position:absolute;inset:0;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%);animation:si3b 20s ease infinite alternate}.scn-strategic-manoeuvring-buonaparte-mistake .p{position:absolute;bottom:10%;left:15%;width:40%;height:30%;background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%);border-radius:60% 60% 10% 10%/80% 80% 10% 10%;animation:si3p 10s ease infinite alternate}.scn-strategic-manoeuvring-buonaparte-mistake .d{position:absolute;bottom:20%;left:25%;width:24px;height:45px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:si3d 6s ease infinite}.scn-strategic-manoeuvring-buonaparte-mistake .q{position:absolute;bottom:20%;left:65%;width:18px;height:40px;background:linear-gradient(180deg,#2a2a3a 0%,#0f0f1a 100%);border-radius:50% 50% 30% 30%/60% 60% 30% 30%;transform-origin:bottom center;animation:si3q 4s ease infinite .7s}.scn-strategic-manoeuvring-buonaparte-mistake .n{position:absolute;bottom:22%;left:50%;width:10px;height:10px;background:radial-gradient(circle,#d0a050 0%,transparent 60%);border-radius:50%;animation:si3n 3s ease infinite alternate}@keyframes si3b{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}@keyframes si3p{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}@keyframes si3d{0%{transform:translateX(0) rotate(-1deg)}25%{transform:translateX(4px) rotate(1deg)}50%{transform:translateX(8px) rotate(-1deg)}75%{transform:translateX(12px) rotate(2deg)}100%{transform:translateX(16px) rotate(0)}}@keyframes si3q{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(-3px) rotate(1deg)}100%{transform:translateX(0) rotate(0)}}@keyframes si3n{0%{box-shadow:0 0 10px 3px #b08040;opacity:.8}50%{box-shadow:0 0 20px 8px #d0a050;opacity:1}100%{box-shadow:0 0 12px 4px #b08040;opacity:.9}}

.scn-sketches-book-vii-intro{background:linear-gradient(180deg,#f5f1e6 0%,#e8e0c8 50%,#d4c8a8 100%),radial-gradient(ellipse at 50% 0%,#fff8e8 0%,transparent 70%)}.scn-sketches-book-vii-intro .r{position:absolute;inset:0;background:linear-gradient(180deg,#efe8d8 0%,#e0d8c0 100%);animation:si4r 30s ease infinite alternate}.scn-sketches-book-vii-intro .s{position:absolute;top:8%;left:10%;width:60%;height:30%;background:linear-gradient(180deg,#8a7a5a 0%,#6a5a3a 100%);border-radius:4px;box-shadow:inset 0 0 10px rgba(0,0,0,.2);animation:si4s 20s ease infinite alternate}.scn-sketches-book-vii-intro .k{position:absolute;bottom:10%;left:5%;width:40%;height:20%;background:linear-gradient(180deg,#6a5a4a 0%,#4a3a2a 100%);border-radius:6px;transform:perspective(300px) rotateX(15deg);animation:si4k 25s ease infinite alternate}.scn-sketches-book-vii-intro .i{position:absolute;bottom:12%;left:20%;width:12px;height:16px;background:linear-gradient(180deg,#3a2a1a 0%,#1a0a0a 100%);border-radius:30% 30% 10% 10%;transform-origin:bottom center;animation:si4i 5s ease infinite alternate}.scn-sketches-book-vii-intro .z{position:absolute;bottom:15%;left:25%;width:14px;height:14px;background:radial-gradient(circle,#a09070 0%,transparent 70%);border-radius:50%;animation:si4z 8s linear infinite}@keyframes si4r{0%{opacity:.85}50%{opacity:1}100%{opacity:.9}}@keyframes si4s{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes si4k{0%{transform:perspective(300px) rotateX(15deg)}50%{transform:perspective(300px) rotateX(17deg) translateY(-2px)}100%{transform:perspective(300px) rotateX(15deg)}}@keyframes si4i{0%{transform:rotate(0)}50%{transform:rotate(3deg)}100%{transform:rotate(0)}}@keyframes si4z{0%{transform:translate(0,0)}25%{transform:translate(5px,-3px)}50%{transform:translate(10px,0)}75%{transform:translate(5px,3px)}100%{transform:translate(0,0)}}

.scn-intelligent-powers-share {
  background:
    linear-gradient(180deg, #2b1e12 0%, #3d2b1c 30%, #1c140f 100%),
    radial-gradient(ellipse at 60% 30%, #3d2b1c 0%, transparent 70%);
}
.scn-intelligent-powers-share .ips-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3520 0%, #2e1f12 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: ips-wall 20s ease-in-out infinite alternate;
}
.scn-intelligent-powers-share .ips-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-intelligent-powers-share .ips-desk {
  position: absolute; bottom: 18%; left: 50%; width: 240px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5c3f28 0%, #3a2516 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: ips-desk 12s ease-in-out infinite;
}
.scn-intelligent-powers-share .ips-map {
  position: absolute; bottom: 30%; left: 38%; width: 100px; height: 60px;
  background: linear-gradient(135deg, #c9b28a 0%, #a6865e 50%, #8b6e4a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
  animation: ips-map 25s ease-in-out infinite alternate;
}
.scn-intelligent-powers-share .ips-figure {
  position: absolute; bottom: 25%; left: 42%; width: 48px; height: 100px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1f140c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ips-figure 6s ease-in-out infinite;
}
.scn-intelligent-powers-share .ips-candle {
  position: absolute; bottom: 30%; right: 40%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08850 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #d4a050;
  animation: ips-candle 3s ease-in-out infinite alternate;
}
.scn-intelligent-powers-share .ips-glow {
  position: absolute; bottom: 35%; right: 38%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(212,160,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: ips-glow 5s ease-in-out infinite alternate;
}
.scn-intelligent-powers-share .ips-shadow {
  position: absolute; bottom: 18%; left: 40%; width: 100px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ips-shadow 8s ease-in-out infinite;
}
@keyframes ips-wall { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes ips-desk { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ips-map { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-7deg) scale(1) } }
@keyframes ips-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ips-candle { 0% { transform: scaleY(1) rotate(0); box-shadow: 0 0 12px 4px #d4a050 } 50% { transform: scaleY(1.05) rotate(2deg); box-shadow: 0 0 20px 8px #e8b860 } 100% { transform: scaleY(0.95) rotate(-1deg); box-shadow: 0 0 10px 3px #c09040 } }
@keyframes ips-glow { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.15) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes ips-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

.scn-two-kinds-of-courage {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2c253f 40%, #16131e 100%),
    radial-gradient(ellipse at 50% 40%, #3a3150 0%, transparent 70%);
}
.scn-two-kinds-of-courage .tkc-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e2845 0%, #1a1730 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  animation: tkc-bg 15s ease-in-out infinite alternate;
}
.scn-two-kinds-of-courage .tkc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1728 0%, #0f0d1a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
}
.scn-two-kinds-of-courage .tkc-figure {
  position: absolute; bottom: 25%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3c3350 0%, #1f1a33 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tkc-figure 8s ease-in-out infinite;
}
.scn-two-kinds-of-courage .tkc-figure.left {
  left: 35%;
  animation-delay: -2s;
}
.scn-two-kinds-of-courage .tkc-figure.right {
  right: 35%;
  background: linear-gradient(180deg, #5a4d70 0%, #3a3150 100%);
  opacity: 0.7;
  animation-duration: 10s;
}
.scn-two-kinds-of-courage .tkc-lantern {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #c8a060 0%, #8a6a3a 80%, #4a3520 100%);
  border-radius: 6px 6px 8px 8px;
  box-shadow: 0 0 30px 10px #b08050, 0 0 60px 20px rgba(176,128,80,0.4);
  animation: tkc-lantern 4s ease-in-out infinite alternate;
}
.scn-two-kinds-of-courage .tkc-light {
  position: absolute; bottom: 25%; left: 50%; width: 200px; height: 200px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(176,128,80,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(30px);
  animation: tkc-light 6s ease-in-out infinite alternate;
}
.scn-two-kinds-of-courage .tkc-shadow {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tkc-shadow 10s ease-in-out infinite;
}
@keyframes tkc-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes tkc-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes tkc-lantern { 0% { box-shadow: 0 0 20px 5px #b08050, 0 0 40px 10px rgba(176,128,80,0.3); transform: translateX(-50%) scale(1) } 50% { box-shadow: 0 0 40px 15px #e0b070, 0 0 80px 25px rgba(224,176,112,0.5); transform: translateX(-50%) scale(1.05) } 100% { box-shadow: 0 0 25px 8px #b08050, 0 0 50px 15px rgba(176,128,80,0.35); transform: translateX(-50%) scale(0.95) } }
@keyframes tkc-light { 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(1) } }
@keyframes tkc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }

.scn-strategic-manoeuvring-general's-scale {
  background: linear-gradient(180deg, #d4b48c 0%, #b88a5c 60%, #8b5e34 100%), radial-gradient(ellipse at 50% 30%, #f5deb3 0%, transparent 70%);
}
.scn-strategic-manoeuvring-general's-scale .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c9a87b 0%, #a67c52 50%, #7a5628 100%); animation: smg-room 20s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-general's-scale .table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 40%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3120 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 24px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,200,150,0.2); animation: smg-table 6s ease-in-out infinite;
}
.scn-strategic-manoeuvring-general's-scale .map-scroll {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 18%; background: linear-gradient(135deg, #f4e8c1 0%, #dcc8a0 40%, #b89e74 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: smg-scroll 12s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-general's-scale .candle {
  position: absolute; bottom: 44%; left: 46%; width: 8px; height: 40px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #8a7a60 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 12px rgba(255,180,80,0.3); animation: smg-candle 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-general's-scale .flame {
  position: absolute; bottom: 64%; left: calc(46% + 2px); width: 6px; height: 14px; background: radial-gradient(ellipse, #ffc040 0%, #ff8030 50%, #cc4000 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,160,40,0.6), 0 0 40px 16px rgba(255,160,40,0.3); animation: smg-flame 0.8s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-general's-scale .general-figure {
  position: absolute; bottom: 12%; left: 30%; width: 24px; height: 60px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smg-figure 4s ease-in-out infinite;
}

@keyframes smg-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes smg-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes smg-scroll { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(1deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes smg-candle { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(1px) rotate(1deg) } }
@keyframes smg-flame { 0% { transform: scaleY(0.9) scaleX(1) rotate(0deg) } 30% { transform: scaleY(1.1) scaleX(0.9) rotate(3deg) } 60% { transform: scaleY(0.95) scaleX(1.05) rotate(-4deg) } 100% { transform: scaleY(1) scaleX(0.95) rotate(0deg) } }
@keyframes smg-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }

.scn-strategic-manoeuvring-1796 {
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 20%, #5a5a6e 0%, transparent 90%);
}
.scn-strategic-manoeuvring-1796 .sky-overcast {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #5a5a6e 0%, #4a4a5e 50%, #3a3a4e 100%); animation: smb-sky 25s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-1796 .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,0.5); animation: smb-ground 15s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-1796 .hill {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.4); animation: smb-hill 20s ease-in-out infinite;
}
.scn-strategic-manoeuvring-1796 .march-figure {
  position: absolute; bottom: 22%; width: 16px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-strategic-manoeuvring-1796 .march-figure.left { left: 30%; animation: smb-march-left 4s ease-in-out infinite; }
.scn-strategic-manoeuvring-1796 .march-figure.right { left: 55%; animation: smb-march-right 4.4s ease-in-out infinite 0.2s; }
.scn-strategic-manoeuvring-1796 .banner {
  position: absolute; bottom: 38%; left: 52%; width: 6px; height: 30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 2px; transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-strategic-manoeuvring-1796 .banner::after {
  content: ''; position: absolute; top: 0; left: -8px; width: 22px; height: 16px; background: #6a4a3a; border-radius: 0 0 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: smb-banner-wave 3s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-1796 .cannon {
  position: absolute; bottom: 18%; left: 18%; width: 20px; height: 12px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: smb-cannon 8s ease-in-out infinite;
}

@keyframes smb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes smb-ground { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } }
@keyframes smb-hill { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes smb-march-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes smb-march-right { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-5deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-3px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes smb-banner-wave { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(2px) rotate(10deg) } 50% { transform: translateX(-1px) rotate(-8deg) } 75% { transform: translateX(1px) rotate(6deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes smb-cannon { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(2px) rotate(2deg) } }

.scn-war-part-of-intercourse-of-human-race {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2518 40%, #1a0f08 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a18 0%, transparent 70%);
}
.scn-war-part-of-intercourse-of-human-race .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a10, transparent 60%);
}
.scn-war-part-of-intercourse-of-human-race .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3520, #2a1a10); border-radius: 4% / 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.scn-war-part-of-intercourse-of-human-race .papers {
  position: absolute; bottom: 25%; left: 35%; width: 40%; height: 6%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 50%, #9a8a60 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-2deg); animation: war-papers 10s ease-in-out infinite alternate;
}
@keyframes war-papers { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
.scn-war-part-of-intercourse-of-human-race .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d090, #c08040, #804020);
  border-radius: 10% 10% 40% 40%; transform: translateX(-50%);
  animation: war-candle 5s ease-in-out infinite;
}
@keyframes war-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } }
.scn-war-part-of-intercourse-of-human-race .glow {
  position: absolute; bottom: 24%; left: 42%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(240,200,100,.6) 0%, rgba(240,200,100,.2) 40%, transparent 70%);
  border-radius: 50%; filter: blur(4px); animation: war-glow 3s ease-in-out infinite alternate;
}
@keyframes war-glow { 0% { opacity: .7; transform: scale(1) translateX(-50%); } 100% { opacity: 1; transform: scale(1.1) translateX(-50%); } }
.scn-war-part-of-intercourse-of-human-race .figure {
  position: absolute; bottom: 14%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: war-figure 8s ease-in-out infinite;
}
@keyframes war-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
.scn-war-part-of-intercourse-of-human-race .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e); border-radius: 4px 4px 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5); border: 2px solid #3a2a1a;
  animation: war-window 15s ease-in-out infinite alternate;
}
@keyframes war-window { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .8; } }

.scn-freedom-in-employment-cannot-be-regulations {
  background: linear-gradient(180deg, #1f1510 0%, #2a1e15 40%, #140e0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2518 0%, transparent 60%);
}
.scn-freedom-in-employment-cannot-be-regulations .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1510, transparent 50%);
}
.scn-freedom-in-employment-cannot-be-regulations .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 2% / 15%;
  box-shadow: 0 4px 15px rgba(0,0,0,.6);
}
.scn-freedom-in-employment-cannot-be-regulations .lamp {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c0a080, #8a6a40); border-radius: 10% 10% 30% 30%;
  transform: translateX(-50%); transform-origin: bottom center;
  animation: free-lamp 6s ease-in-out infinite;
}
@keyframes free-lamp { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
.scn-freedom-in-employment-cannot-be-regulations .lamp::after {
  content: ''; position: absolute; top: -10px; left: -5px; width: 18px; height: 12px;
  background: radial-gradient(circle, #f0d090, #c08040); border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(240,200,100,.4);
}
.scn-freedom-in-employment-cannot-be-regulations .glow {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 70px;
  background: radial-gradient(circle, rgba(240,200,100,.5) 0%, rgba(240,200,100,.15) 40%, transparent 70%);
  filter: blur(6px); animation: free-glow 4s ease-in-out infinite alternate;
}
@keyframes free-glow { 0% { opacity: .6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
.scn-freedom-in-employment-cannot-be-regulations .books {
  position: absolute; bottom: 25%; left: 22%; width: 25%; height: 8%;
  background: repeating-linear-gradient(90deg, #5a4030 0px, #5a4030 8px, #6a5040 8px, #6a5040 16px);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.4);
  transform: rotate(-5deg); animation: free-books 12s ease-in-out infinite;
}
@keyframes free-books { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } }
.scn-freedom-in-employment-cannot-be-regulations .chair {
  position: absolute; bottom: 8%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a10); border-radius: 20% 20% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-freedom-in-employment-cannot-be-regulations .figure {
  position: absolute; bottom: 16%; left: 40%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: free-figure 9s ease-in-out infinite;
}
@keyframes free-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
.scn-freedom-in-employment-cannot-be-regulations .painting {
  position: absolute; top: 12%; left: 12%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #4a3a2a, #2a1a10); border-radius: 4px;
  border: 2px solid #3a2a1a; box-shadow: 0 0 10px rgba(0,0,0,.3);
  animation: free-painting 20s ease-in-out infinite alternate;
}
@keyframes free-painting { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .7; } }

/* scene: strategic-manoeuvring-1812 */
.scn-strategic-manoeuvring-1812 { background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 40%, #1a1a1e 100%), radial-gradient(ellipse at 20% 60%, #5a4a3e 0%, transparent 70%); }
.scn-strategic-manoeuvring-1812 .tent-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2e2a26 0%, #443c34 50%, #2e2a26 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-strategic-manoeuvring-1812 .table { position:absolute; bottom:20%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: sm1812-table 6s ease-in-out infinite; }
.scn-strategic-manoeuvring-1812 .map { position:absolute; bottom:24%; left:22%; right:22%; height:10%; background: linear-gradient(135deg, #a89a7a 0%, #c8b88a 30%, #a89a7a 70%, #8a7a5a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sm1812-map 8s ease-in-out infinite; }
.scn-strategic-manoeuvring-1812 .candle-glow { position:absolute; bottom:32%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffcc66 0%, #e6994c 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,200,80,0.4), 0 0 80px 30px rgba(255,160,60,0.2); animation: sm1812-candle 2s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-1812 .figure-officer { position:absolute; bottom:18%; left:32%; width:22px; height:48px; background: linear-gradient(180deg, #1e1a16 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm1812-fig-a 4s ease-in-out infinite; }
.scn-strategic-manoeuvring-1812 .figure-aide { position:absolute; bottom:18%; right:28%; width:18px; height:42px; background: linear-gradient(180deg, #2a221c 0%, #120e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm1812-fig-b 5s ease-in-out infinite 0.5s; }
.scn-strategic-manoeuvring-1812 .lantern { position:absolute; bottom:30%; left:20%; width:8px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,140,60,0.5); animation: sm1812-lantern 3s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-1812 .mist { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, rgba(150,140,130,0.15) 0%, rgba(100,90,80,0.25) 100%); filter: blur(8px); animation: sm1812-mist 15s ease-in-out infinite; }
@keyframes sm1812-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sm1812-map { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes sm1812-candle { 0% { opacity:0.8; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes sm1812-fig-a { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } }
@keyframes sm1812-fig-b { 0%,100% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-2deg); } }
@keyframes sm1812-lantern { 0%,100% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px,-2px) rotate(5deg); } }
@keyframes sm1812-mist { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }

/* scene: strategic-manoeuvring-buonaparte-mistake */
.scn-strategic-manoeuvring-buonaparte-mistake { background: linear-gradient(180deg, #4a4a4e 0%, #3a3a3e 40%, #2a2a2e 100%), radial-gradient(ellipse at 50% 20%, #6a6a6e 0%, transparent 60%); }
.scn-strategic-manoeuvring-buonaparte-mistake .sky { position:absolute; inset:0; background: linear-gradient(180deg, #5a5a5e 0%, #4a4a4e 40%, #3a3a3e 100%); animation: smbm-sky 20s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-buonaparte-mistake .horizon { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4e5a4e 0%, #3a4a3a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.4); animation: smbm-horizon 12s ease-in-out infinite; }
.scn-strategic-manoeuvring-buonaparte-mistake .figure-napoleon { position:absolute; bottom:25%; left:50%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: smbm-fig 4s ease-in-out infinite; }
.scn-strategic-manoeuvring-buonaparte-mistake .standard-flag { position:absolute; bottom:30%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 60%, #5a3a2a 100%); border-radius: 0 80% 80% 0 / 0 60% 60% 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: smbm-flag 3s ease-in-out infinite alternate; }
.scn-strategic-manoeuvring-buonaparte-mistake .standard-pole { position:absolute; bottom:20%; left:50%; width:3px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: smbm-pole 6s ease-in-out infinite; }
.scn-strategic-manoeuvring-buonaparte-mistake .distant-army { position:absolute; bottom:25%; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, rgba(40,40,44,0.6) 0px, rgba(40,40,44,0.6) 4px, transparent 4px, transparent 8px); animation: smbm-army 8s ease-in-out infinite; }
.scn-strategic-manoeuvring-buonaparte-mistake .mist { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(180,180,190,0.1) 0%, rgba(120,120,130,0.2) 100%); filter: blur(6px); animation: smbm-mist 18s ease-in-out infinite; }
.scn-strategic-manoeuvring-buonaparte-mistake .bird { position:absolute; top:15%; left:20%; width:12px; height:6px; background: radial-gradient(ellipse at 30% 50%, #2a2a2e 0%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: smbm-bird 25s linear infinite; }
@keyframes smbm-sky { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes smbm-horizon { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes smbm-fig { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) translateX(3px) rotate(-2deg); } 50% { transform: translateX(-50%) translateX(-2px) rotate(1deg); } 75% { transform: translateX(-50%) translateX(4px) rotate(-1deg); } }
@keyframes smbm-flag { 0% { transform: translateX(-50%) skewX(0deg); } 50% { transform: translateX(-50%) skewX(-5deg); } 100% { transform: translateX(-50%) skewX(3deg); } }
@keyframes smbm-pole { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes smbm-army { 0%,100% { opacity:0.4; } 50% { opacity:0.7; } }
@keyframes smbm-mist { 0%,100% { opacity:0.2; } 50% { opacity:0.4; } }
@keyframes smbm-bird { 0% { transform: translateX(-20px) scale(0.8); } 50% { transform: translateX(40vw) scale(1.1); } 100% { transform: translateX(80vw) scale(0.9); } }

.scn-courage-indifference-or-motive {
  background:
    linear-gradient(180deg, #1c1410 0%, #3a2a20 40%, #4a3a2e 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2e 0%, transparent 70%);
}
.scn-courage-indifference-or-motive .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1c1410 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: cim-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-courage-indifference-or-motive .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e14 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: cim-floor-shift 18s ease-in-out infinite alternate;
}
.scn-courage-indifference-or-motive .chair {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 70px;
  height: 80px;
  transform: translateX(-50%);
  background:
    linear-gradient(90deg, #4a3a2e 0%, #3a2a1e 50%, #4a3a2e 100%);
  border-radius: 12% 12% 6% 6% / 15% 15% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cim-chair-breathe 9s ease-in-out infinite;
}
.scn-courage-indifference-or-motive .figure-seated {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 28px;
  height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e14 0%, #14100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%;
  transform-origin: bottom center;
  animation: cim-figure-sway 6s ease-in-out infinite;
}
.scn-courage-indifference-or-motive .candle {
  position: absolute;
  bottom: 26%;
  left: 54%;
  width: 8px;
  height: 24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,150,80,0.4);
  animation: cim-candle-flicker 3s ease-in-out infinite;
}
.scn-courage-indifference-or-motive .candle-glow {
  position: absolute;
  bottom: 36%;
  left: 54%;
  width: 60px;
  height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,150,80,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: cim-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-courage-indifference-or-motive .shadow-shelf {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 40px;
  height: 6px;
  background: linear-gradient(90deg, #1c1410 0%, #2a1e14 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cim-shadow-slide 25s ease-in-out infinite alternate;
}
@keyframes cim-wall-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cim-floor-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cim-chair-breathe {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.005) translateY(-1px); }
}
@keyframes cim-figure-sway {
  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 cim-candle-flicker {
  0% { opacity: 0.9; transform: scale(1); }
  33% { opacity: 1; transform: scale(1.02); }
  66% { opacity: 0.85; transform: scale(0.98); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes cim-glow-pulse {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.95); }
  50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
}
@keyframes cim-shadow-slide {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(0); }
}

.scn-two-kinds-act-differently {
  background:
    linear-gradient(180deg, #14181c 0%, #1c2228 30%, #2a3038 100%),
    radial-gradient(ellipse at 50% 120%, #2a3038 0%, transparent 60%);
}
.scn-two-kinds-act-differently .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, #0a0e12 100%);
  opacity: 0.6;
  animation: tka-bg-breathe 20s ease-in-out infinite alternate;
}
.scn-two-kinds-act-differently .wall-left {
  position: absolute;
  bottom: 20%; left: 0;
  width: 30%; height: 60%;
  background: linear-gradient(180deg, #1c2228 0%, #14181c 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
  animation: tka-wall-shift 15s ease-in-out infinite alternate;
}
.scn-two-kinds-act-differently .wall-right {
  position: absolute;
  bottom: 20%; right: 0;
  width: 30%; height: 60%;
  background: linear-gradient(180deg, #1c2228 0%, #14181c 100%);
  border-radius: 20% 0 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
  animation: tka-wall-shift 15s ease-in-out infinite alternate-reverse;
}
.scn-two-kinds-act-differently .pillar-left {
  position: absolute;
  bottom: 10%; left: 25%;
  width: 20px; height: 70%;
  background: linear-gradient(180deg, #2a3038 0%, #1c2228 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset -2px 0 4px rgba(255,255,255,0.05);
  animation: tka-pillar-stand 12s ease-in-out infinite;
}
.scn-two-kinds-act-differently .pillar-right {
  position: absolute;
  bottom: 10%; right: 25%;
  width: 20px; height: 70%;
  background: linear-gradient(180deg, #2a3038 0%, #1c2228 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 2px 0 4px rgba(255,255,255,0.05);
  animation: tka-pillar-stand 12s ease-in-out infinite 0.5s;
}
.scn-two-kinds-act-differently .figure-firm {
  position: absolute;
  bottom: 18%; left: 32%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a3038 0%, #14181c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: tka-firm-stand 8s ease-in-out infinite;
}
.scn-two-kinds-act-differently .figure-bold {
  position: absolute;
  bottom: 18%; right: 32%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a3038 0%, #14181c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: tka-bold-lunge 6s ease-in-out infinite;
}
.scn-two-kinds-act-differently .light-orbs {
  position: absolute;
  top: 30%; left: 50%;
  width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(180,200,220,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: tka-orb-dance 10s ease-in-out infinite alternate;
}
@keyframes tka-bg-breathe {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes tka-wall-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes tka-pillar-stand {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
}
@keyframes tka-firm-stand {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-1deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(1deg); }
}
@keyframes tka-bold-lunge {
  0% { transform: rotate(0deg) translateX(0); }
  20% { transform: rotate(8deg) translateX(5px); }
  40% { transform: rotate(-5deg) translateX(-3px); }
  60% { transform: rotate(6deg) translateX(4px); }
  80% { transform: rotate(-4deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes tka-orb-dance {
  0% { opacity: 0.2; transform: translateX(-50%) scale(0.9); }
  33% { opacity: 0.4; transform: translateX(-40%) scale(1.1); }
  66% { opacity: 0.3; transform: translateX(-60%) scale(0.95); }
  100% { opacity: 0.2; transform: translateX(-50%) scale(1); }
}

.scn-sketch-book-vii-intro {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #e8d4a0 50%, #d4c090 100%),
    radial-gradient(ellipse at 15% 20%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}

.scn-sketch-book-vii-intro .window {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 30%;
  height: 40%;
  background:
    linear-gradient(180deg, #cfe8fc 0%, #8ab4d8 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);
  animation: sb7-windowglow 8s ease-in-out infinite alternate;
}

.scn-sketch-book-vii-intro .desk {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 20%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b4f2e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3), 0 -2px 4px rgba(255,255,255,0.1);
}

.scn-sketch-book-vii-intro .lamp-stand {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 1.5%;
  height: 22%;
  background: linear-gradient(90deg, #a08060, #c4a080, #a08060);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}

.scn-sketch-book-vii-intro .lamp-shade {
  position: absolute;
  bottom: 38%;
  left: 12.5%;
  width: 15%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #e8d4a0 0%, #c4a265 70%, #b0894a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}

.scn-sketch-book-vii-intro .lamp-glow {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 20%;
  height: 18%;
  background: radial-gradient(ellipse, #ffe399 0%, rgba(255,227,153,0.4) 40%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: sb7-lamppulse 4s ease-in-out infinite;
}

.scn-sketch-book-vii-intro .sketchbook {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 20%;
  height: 12%;
  background: linear-gradient(135deg, #fdf5e6, #f0e6d3, #e8dcc8);
  border-radius: 4px;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.15), inset 0 0 2px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
  animation: sb7-sketchrock 10s ease-in-out infinite;
}

.scn-sketch-book-vii-intro .papers {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 16%;
  height: 10%;
  background: #f5f0e6;
  border-radius: 2px;
  box-shadow: 2px 3px 4px rgba(0,0,0,0.1), 3px 4px 6px rgba(0,0,0,0.1);
  animation: sb7-papersway 6s ease-in-out infinite;
}

@keyframes sb7-windowglow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes sb7-lamppulse {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

@keyframes sb7-sketchrock {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

@keyframes sb7-papersway {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-two-kinds-of-courage {
  background:
    linear-gradient(180deg, #2e1e12 0%, #1c1108 60%, #0a0603 100%),
    radial-gradient(ellipse at 50% 100%, #3c2818 0%, transparent 70%);
}

.scn-two-kinds-of-courage .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a281a 0%, #1f130b 100%);
  animation: cour-wall 20s ease-in-out infinite alternate;
}

.scn-two-kinds-of-courage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}

.scn-two-kinds-of-courage .desk {
  position: absolute; bottom: 20%; left: 50%; width: 180px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2c1a 0%, #2c1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}

.scn-two-kinds-of-courage .candle-a,
.scn-two-kinds-of-courage .candle-b {
  position: absolute; bottom: 22%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #d9c8a8 0%, #a08860 10%, #604830 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
}

.scn-two-kinds-of-courage .candle-a { left: 40%; }
.scn-two-kinds-of-courage .candle-b { left: 56%; }

.scn-two-kinds-of-courage .flame-a,
.scn-two-kinds-of-courage .flame-b {
  position: absolute; bottom: calc(22% + 60px); width: 14px; height: 24px;
  background: radial-gradient(ellipse 60% 80%, #ffd080 0%, #ffa840 40%, #cc7020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,185,80,0.4), 0 0 40px 16px rgba(255,185,80,0.2);
  transform-origin: bottom center;
  animation: cour-flame 1.2s ease-in-out infinite alternate;
}

.scn-two-kinds-of-courage .flame-a { left: calc(40% + 4px - 7px); animation-delay: 0s; }
.scn-two-kinds-of-courage .flame-b { left: calc(56% + 4px - 7px); animation-delay: 0.6s; }

.scn-two-kinds-of-courage .figure {
  position: absolute; bottom: 20%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a100a 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cour-breathe 6s ease-in-out infinite;
}

.scn-two-kinds-of-courage .shadow {
  position: absolute; bottom: 20%; left: 44%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: cour-shadow 12s ease-in-out infinite alternate;
}

@keyframes cour-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}

@keyframes cour-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.85; }
}

@keyframes cour-breathe {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.99); }
}

@keyframes cour-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

.scn-sketches-book-vii-intro {
  background: linear-gradient(180deg, #f5efe6 0%, #e8dcc8 100%),
              radial-gradient(ellipse at 50% 100%, #d6c9b4 0%, transparent 70%);
}
.scn-sketches-book-vii-intro .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(245,239,230,0.8) 0%, rgba(232,220,200,0.9) 100%);
}
.scn-sketches-book-vii-intro .window-light {
  position: absolute; top: 8%; left: 60%; width: 22%; height: 45%;
  background: linear-gradient(135deg, rgba(210,230,255,0.3) 0%, transparent 100%);
  border-radius: 4% 4% 2% 2% / 8% 8% 4% 4%;
  box-shadow: inset 0 0 60px rgba(200,220,255,0.15);
  animation: sb7-window 8s ease-in-out infinite alternate;
}
.scn-sketches-book-vii-intro .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #b28a6e 0%, #8b6b50 50%, #654a38 100%);
  border-radius: 4% 4% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.15), inset 0 4px 8px rgba(255,255,255,0.1);
}
.scn-sketches-book-vii-intro .papers {
  position: absolute; bottom: 32%; left: 55%; width: 20%; height: 10%;
  background: #f0ead6;
  border-radius: 2% 4% 6% 3% / 8% 6% 10% 4%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.1), -1px -1px 4px rgba(255,255,255,0.3);
  transform: rotate(-4deg);
  animation: sb7-paper 6s ease-in-out infinite;
}
.scn-sketches-book-vii-intro .papers::before {
  content: '';
  position: absolute; top: 10%; left: 15%; width: 40%; height: 20%;
  background: rgba(60,60,60,0.08);
  border-radius: 4%;
}
.scn-sketches-book-vii-intro .lamp-glow {
  position: absolute; bottom: 40%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe599 0%, #ffd166 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,209,102,0.3), 0 0 80px 40px rgba(255,209,102,0.1);
  animation: sb7-lamp 4s ease-in-out infinite alternate;
}
.scn-sketches-book-vii-intro .lamp-body {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-sketches-book-vii-intro .figure {
  position: absolute; bottom: 16%; left: 30%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb7-figure 6s ease-in-out infinite;
}
.scn-sketches-book-vii-intro .figure::after {
  content: '';
  position: absolute; top: 10%; right: -10%; width: 40%; height: 50%;
  background: inherit;
  border-radius: 50% 0 0 50% / 40% 0 0 40%;
  opacity: 0.7;
}
.scn-sketches-book-vii-intro .bookshelf {
  position: absolute; bottom: 40%; left: 5%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 6% 6% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2), 2px 0 6px rgba(0,0,0,0.1);
}
.scn-sketches-book-vii-intro .bookshelf::before {
  content: '';
  position: absolute; top: 10%; left: 15%; width: 70%; height: 8%;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 16px 0 #4a3a2a, 0 32px 0 #4a3a2a;
}
@keyframes sb7-window { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes sb7-paper { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes sb7-lamp { 0% { box-shadow: 0 0 30px 10px rgba(255,209,102,0.3); } 50% { box-shadow: 0 0 50px 20px rgba(255,209,102,0.5); } 100% { box-shadow: 0 0 20px 8px rgba(255,209,102,0.25); } }
@keyframes sb7-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(1px) rotate(1deg); } }

.scn-intelligent-powers-share {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2a3a 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 65% 50%, #3a2a1a 0%, transparent 60%);
}

.scn-intelligent-powers-share .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a1f12 0%, #1a150e 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.6);
  z-index: 0;
}

.scn-intelligent-powers-share .lamp {
  position: absolute;
  top: 22%;
  left: 48%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle at 50% 100%, #d4a067 0%, #8a5e3a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow:
    0 0 40px 20px rgba(212,160,103,.4),
    0 0 80px 40px rgba(212,160,103,.2);
  animation: ips-lamp-flicker 4s ease-in-out infinite alternate;
  z-index: 2;
}

.scn-intelligent-powers-share .desk {
  position: absolute;
  bottom: 8%;
  left: 10%;
  width: 80%;
  height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.5);
  z-index: 3;
}

.scn-intelligent-powers-share .figure {
  position: absolute;
  bottom: 26%;
  left: 35%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #0f0d0a 0%, #1a150e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ips-figure-breathe 6s ease-in-out infinite;
  z-index: 4;
}

.scn-intelligent-powers-share .map {
  position: absolute;
  top: 10%;
  right: 8%;
  width: 30%;
  height: 45%;
  background: linear-gradient(135deg, #cbaa7a 0%, #a08050 100%);
  border: 2px solid #6a4a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.4);
  animation: ips-map-sway 15s ease-in-out infinite alternate;
  z-index: 1;
}

.scn-intelligent-powers-share .shelves {
  position: absolute;
  top: 8%;
  left: 6%;
  width: 25%;
  height: 8%;
  background: #3a2510;
  border-radius: 2px;
  box-shadow:
    0 -25px 0 -2px #4a3018,
    0 -50px 0 -4px #5a3a20,
    inset 0 2px 4px rgba(0,0,0,.5);
  animation: ips-shelf-shimmer 12s ease-in-out infinite;
  z-index: 1;
}

.scn-intelligent-powers-share .book {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: ips-book-float 8s ease-in-out infinite alternate;
  z-index: 5;
}

.scn-intelligent-powers-share .shadow {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: ips-shadow-drift 10s ease-in-out infinite alternate;
  z-index: 2;
}

@keyframes ips-lamp-flicker {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02) scaleX(.98); }
  100% { opacity: .85; transform: scaleY(.98); }
}

@keyframes ips-figure-breathe {
  0% { transform: translateY(0) scaleY(1); }
  33% { transform: translateY(-2px) scaleY(1.005); }
  66% { transform: translateY(0) scaleY(.995); }
  100% { transform: translateY(0) scaleY(1); }
}

@keyframes ips-map-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(.3deg); }
  75% { transform: rotate(-.2deg); }
  100% { transform: rotate(0deg); }
}

@keyframes ips-shelf-shimmer {
  0%, 100% { opacity: .8; }
  50% { opacity: 1; }
}

@keyframes ips-book-float {
  0% { transform: rotate(-5deg) translateY(0); }
  33% { transform: rotate(-4deg) translateY(-1px); }
  66% { transform: rotate(-6deg) translateY(0); }
  100% { transform: rotate(-5deg) translateY(0); }
}

@keyframes ips-shadow-drift {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.05); }
  100% { transform: translateX(-5px) scaleX(.95); }
}

.scn-two-kinds-act-differently {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1f18 40%, #3a2a20 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-two-kinds-act-differently .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%);
  animation: tkd-bg 12s ease-in-out infinite alternate;
}
.scn-two-kinds-act-differently .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f18 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-two-kinds-act-differently .window {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 150px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.6);
  animation: tkd-window 8s ease-in-out infinite alternate;
}
.scn-two-kinds-act-differently .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 10% 10% 0 0;
}
.scn-two-kinds-act-differently .lamp {
  position: absolute;
  top: 25%;
  left: 30%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px #d09040, 0 0 40px 16px rgba(208,144,64,.4);
  animation: tkd-lamp 3s ease-in-out infinite alternate;
}
.scn-two-kinds-act-differently .figure-a {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tkd-figure-a 6s ease-in-out infinite;
}
.scn-two-kinds-act-differently .figure-b {
  position: absolute;
  bottom: 28%;
  right: 20%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, rgba(26,26,26,.4) 0%, rgba(10,10,10,.2) 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  filter: blur(2px);
  transform-origin: bottom center;
  animation: tkd-figure-b 6s ease-in-out infinite;
}
@keyframes tkd-bg {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes tkd-window {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.6); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 4px 12px rgba(0,0,0,.6); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 4px 12px rgba(0,0,0,.6); }
}
@keyframes tkd-lamp {
  0% { box-shadow: 0 0 20px 8px #d09040, 0 0 40px 16px rgba(208,144,64,.4); }
  50% { box-shadow: 0 0 28px 12px #e0a050, 0 0 56px 24px rgba(224,160,80,.6); }
  100% { box-shadow: 0 0 20px 8px #d09040, 0 0 40px 16px rgba(208,144,64,.4); }
}
@keyframes tkd-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes tkd-figure-b {
  0% { transform: translateX(0) translateY(0) scaleY(1); opacity: .6; }
  25% { transform: translateX(-3px) translateY(-2px) scaleY(1.02); opacity: .8; }
  50% { transform: translateX(0) translateY(0) scaleY(1); opacity: .6; }
  75% { transform: translateX(3px) translateY(2px) scaleY(.98); opacity: .4; }
  100% { transform: translateX(0) translateY(0) scaleY(1); opacity: .6; }
}

.scn-freedom-in-employment-cannot-be-regulations {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0d0a09 100%),
    radial-gradient(ellipse at 35% 70%, rgba(180, 120, 60, 0.25) 0%, transparent 60%);
  position: absolute; inset: 0;
}

.scn-freedom-in-employment-cannot-be-regulations .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
}

.scn-freedom-in-employment-cannot-be-regulations .window {
  position: absolute; top: 10%; right: 8%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #1a2a40, #0c1622);
  border: 4px solid #3a2a24; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.05);
  animation: fec-window 30s ease-in-out infinite alternate;
}

.scn-freedom-in-employment-cannot-be-regulations .bookshelf {
  position: absolute; left: 5%; top: 15%; width: 80px; height: 60%;
  background: linear-gradient(180deg, #3a2a24 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 6px;
}
.scn-freedom-in-employment-cannot-be-regulations .bookshelf::before {
  content: ''; display: block; height: 100%; width: 100%;
  background: repeating-linear-gradient(
    180deg,
    transparent 0px, transparent 12px,
    #4a3a32 12px, #4a3a32 14px,
    transparent 14px, transparent 26px,
    #5a4a3a 26px, #5a4a3a 28px,
    transparent 28px, transparent 42px
  );
  border-radius: 2px;
  animation: fec-shelf 60s linear infinite;
}

.scn-freedom-in-employment-cannot-be-regulations .desk {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}

.scn-freedom-in-employment-cannot-be-regulations .lamp {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 60px;
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 20px 20px;
  box-shadow: 0 0 12px rgba(180,120,60,0.3);
  transform-origin: bottom center;
}
.scn-freedom-in-employment-cannot-be-regulations .lamp::before {
  content: ''; display: block; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 60px; height: 10px;
  background: linear-gradient(135deg, #6a5a4a, #4a3a2a);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}

.scn-freedom-in-employment-cannot-be-regulations .glow {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(220, 170, 80, 0.35) 0%, rgba(220, 170, 80, 0.1) 40%, transparent 70%);
  pointer-events: none;
  animation: fec-glow 4s ease-in-out infinite alternate;
  filter: blur(2px);
}

.scn-freedom-in-employment-cannot-be-regulations .figure {
  position: absolute; bottom: 12%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fec-figure 8s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-freedom-in-employment-cannot-be-regulations .figure::before {
  content: ''; display: block; position: absolute; top: -20%; left: -15%; width: 50px; height: 45px;
  background: radial-gradient(ellipse at 50% 60%, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}

.scn-freedom-in-employment-cannot-be-regulations .book {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  z-index: 3;
}
.scn-freedom-in-employment-cannot-be-regulations .book::after {
  content: ''; display: block; position: absolute; left: 8px; top: 2px; width: 14px; height: 2px;
  background: #8a7a6a; border-radius: 1px;
}

@keyframes fec-window {
  0% { opacity: 0.6; background: linear-gradient(135deg, #1a2a40, #0c1622); }
  100% { opacity: 0.9; background: linear-gradient(135deg, #2a4058, #142838); }
}
@keyframes fec-shelf {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes fec-glow {
  0% { opacity: 0.6; transform: scaleY(0.9); }
  50% { opacity: 0.9; transform: scaleY(1); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes fec-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-courage-indifference-or-motive {
  background: linear-gradient(180deg, #1e1a16 0%, #0f0d0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2f25 0%, transparent 70%);
}
.scn-courage-indifference-or-motive .backwall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c241e 0%, #1a1410 100%);
  animation: ci-wall-light 18s ease-in-out infinite alternate;
}
.scn-courage-indifference-or-motive .window {
  position: absolute; top: 10%; left: 60%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ci-night-sky 60s linear infinite;
}
.scn-courage-indifference-or-motive .curtain-left {
  position: absolute; top: 10%; left: 58%; width: 6%; height: 55%;
  background: linear-gradient(90deg, #3a2f25 0%, #2a1f15 100%);
  border-radius: 4px 0 0 4px;
  transform-origin: top left;
  animation: ci-curtain-sway 8s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-courage-indifference-or-motive .curtain-right {
  position: absolute; top: 10%; right: 18%; width: 6%; height: 55%;
  background: linear-gradient(270deg, #3a2f25 0%, #2a1f15 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: top right;
  animation: ci-curtain-sway 8s ease-in-out infinite alternate;
}
.scn-courage-indifference-or-motive .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-courage-indifference-or-motive .figure {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 70px;
  background: #1a1513;
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: ci-breathe 6s ease-in-out infinite;
}
.scn-courage-indifference-or-motive .book {
  position: absolute; bottom: 25%; left: 48%; width: 18px; height: 8px;
  background: #2b1e14;
  border-radius: 2px;
  transform: rotate(-5deg);
}
.scn-courage-indifference-or-motive .candle {
  position: absolute; bottom: 26%; left: 37%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f5d6a0 0%, #c48a4a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: ci-candle-glow 4s ease-in-out infinite alternate;
}
@keyframes ci-wall-light {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes ci-night-sky {
  0% { background-position: 0 0; }
  50% { background-position: 5% 2%; }
  100% { background-position: 0 0; }
}
@keyframes ci-curtain-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ci-breathe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ci-candle-glow {
  0% { opacity: 0.8; box-shadow: 0 0 12px 4px #c48a4a, 0 0 24px 8px rgba(196,138,74,0.3); }
  50% { opacity: 1; box-shadow: 0 0 18px 8px #f5d6a0, 0 0 36px 16px rgba(245,214,160,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 14px 5px #c48a4a, 0 0 28px 10px rgba(196,138,74,0.4); }
}

.scn-strategic-manoeuvring-generals-scale {
  background: linear-gradient(135deg, #f5e6d3 0%, #e0c9a8 50%, #d4b896 100%), radial-gradient(ellipse at 30% 20%, rgba(255,255,200,.2) 0%, transparent 70%);
}
.scn-strategic-manoeuvring-generals-scale .bg { position:absolute; inset:0; background: linear-gradient(180deg, #fff8ef 0%, #f0e0c8 100%); z-index:0; }
.scn-strategic-manoeuvring-generals-scale .window { position:absolute; top:3%; left:4%; width:28%; height:35%; background: linear-gradient(135deg, #b0e0e6, #87ceeb); border:4px solid #8b7355; box-shadow: inset 0 0 30px rgba(255,255,200,.4), 0 0 40px rgba(255,255,200,.1); border-radius:4px; animation: smgs-window 10s ease-in-out infinite alternate; z-index:1; }
.scn-strategic-manoeuvring-generals-scale .table { position:absolute; bottom:0; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #c4a882 0%, #a68b6f 100%); border-top-left-radius:20px; border-top-right-radius:20px; box-shadow: 0 -8px 20px rgba(0,0,0,.2); z-index:2; }
.scn-strategic-manoeuvring-generals-scale .map { position:absolute; bottom:20%; left:22%; width:36%; height:10%; background: linear-gradient(135deg, #e8d5b7 0%, #d4b896 100%); border-radius:4px; box-shadow: inset 0 0 8px rgba(0,0,0,.1), 0 2px 4px rgba(0,0,0,.2); background-size:200% 200%; animation: smgs-map 30s linear infinite; z-index:3; }
.scn-strategic-manoeuvring-generals-scale .scale-base { position:absolute; bottom:25%; left:50%; width:8px; height:18px; background: #b5965b; transform:translateX(-50%); border-radius:2px; z-index:4; }
.scn-strategic-manoeuvring-generals-scale .scale-arm { position:absolute; bottom:28%; left:33%; width:34%; height:4px; background: linear-gradient(90deg, #b5965b 0%, #d4b88a 50%, #b5965b 100%); transform-origin:center left; animation: smgs-arm 8s ease-in-out infinite alternate; z-index:5; }
.scn-strategic-manoeuvring-generals-scale .scale-pan-left { position:absolute; bottom:23%; left:33%; width:28px; height:8px; background: radial-gradient(ellipse at center, #c8a86c 0%, #a6844c 100%); border-radius:50%; animation: smgs-pan-left 8s ease-in-out infinite alternate; transform-origin:center top; z-index:6; }
.scn-strategic-manoeuvring-generals-scale .scale-pan-right { position:absolute; bottom:23%; left:67%; width:28px; height:8px; background: radial-gradient(ellipse at center, #c8a86c 0%, #a6844c 100%); border-radius:50%; animation: smgs-pan-right 8s ease-in-out infinite alternate; transform-origin:center top; z-index:6; }
.scn-strategic-manoeuvring-generals-scale .figure { position:absolute; bottom:0; right:18%; width:36px; height:80px; background: linear-gradient(180deg, #2c2416 0%, #1a1510 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform-origin:bottom center; animation: smgs-figure 12s ease-in-out infinite alternate; z-index:7; }

@keyframes smgs-window { 0% { opacity:.9; box-shadow: inset 0 0 20px rgba(255,255,200,.5), 0 0 30px rgba(255,255,200,.1); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,220,.7), 0 0 60px rgba(255,255,200,.2); } 100% { opacity:.85; box-shadow: inset 0 0 25px rgba(255,255,200,.4), 0 0 35px rgba(255,255,200,.05); } }
@keyframes smgs-map { 0% { background-position: 0% 0%; } 50% { background-position: 20% 10%; } 100% { background-position: 0% 0%; } }
@keyframes smgs-arm { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes smgs-pan-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(-3deg); } 100% { transform: translateY(-1px) rotate(1deg); } }
@keyframes smgs-pan-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes smgs-figure { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-.5deg) translateX(-1px); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.advisor { position: absolute; pointer-events: none; }
.cliff { position: absolute; pointer-events: none; }
.col { position: absolute; pointer-events: none; }
.die { position: absolute; pointer-events: none; }
.dim { position: absolute; pointer-events: none; }
.distant { position: absolute; pointer-events: none; }
.peak { position: absolute; pointer-events: none; }
.pipe { position: absolute; pointer-events: none; }
.scatter { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-author-note-1827 {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1f1a 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, rgba(255,200,120,0.12) 0%, transparent 60%);
}
.scn-author-note-1827 .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1f1a 0%, #1a1410 100%);
  animation: an-shade 14s ease-in-out infinite alternate;
}
.scn-author-note-1827 .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
}
.scn-author-note-1827 .papers {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 14px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 100%);
  border-radius: 2px;
  transform: rotate(-3deg);
  animation: an-paper 6s ease-in-out infinite;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-author-note-1827 .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-author-note-1827 .lamp-glow {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,200,120,0.4) 0%, rgba(255,200,120,0) 70%);
  border-radius: 50%;
  animation: an-pulse 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-author-note-1827 .figure {
  position: absolute; bottom: 20%; left: 35%; 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: an-write 4s ease-in-out infinite;
}
.scn-author-note-1827 .books {
  position: absolute; bottom: 15%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: an-book 10s ease-in-out infinite alternate;
}
.scn-author-note-1827 .inkwell {
  position: absolute; bottom: 18%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: an-write 4s ease-in-out infinite reverse;
}
@keyframes an-shade {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes an-paper {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
}
@keyframes an-pulse {
  0% { box-shadow: 0 0 20px 4px rgba(255,200,120,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 12px rgba(255,200,120,0.35); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,200,120,0.25); opacity: 0.8; }
}
@keyframes an-write {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes an-book {
  0% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(-6deg) scale(0.98); }
  100% { transform: rotate(-10deg) scale(1); }
}

.scn-st-privat-gravelotte { background: linear-gradient(180deg, #f9e0b0 0%, #e8c080 35%, #b89050 70%, #7a6040 100%), radial-gradient(ellipse at 60% 30%, #f9d890 0%, transparent 60%); }
.scn-st-privat-gravelotte .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d0e0 0%, #f0d8a0 50%, #e8c080 100%); animation: stp-sky 16s ease-in-out infinite alternate; }
.scn-st-privat-gravelotte .sun { position:absolute; top:12%; right:30%; width:60px; height:60px; background: radial-gradient(circle, #ffdd80 0%, #f0b040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px #f0b040, 0 0 120px 60px rgba(240,176,64,.3); animation: stp-sun 8s ease-in-out infinite; }
.scn-st-privat-gravelotte .terrain { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a6040 0%, #4a4020 40%, #3a3018 100%); border-radius: 30% 40% 0 0 / 60% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-st-privat-gravelotte .cannon-left { position:absolute; bottom:35%; left:15%; width:80px; height:28px; background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%); border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%; box-shadow: 0 4px 10px rgba(0,0,0,.6); transform-origin: left center; animation: stp-cannon 10s ease-in-out infinite; }
.scn-st-privat-gravelotte .cannon-left::before { content:''; position:absolute; top:-2px; left:60%; width:18%; height:110%; background: #2a2a2a; border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-st-privat-gravelotte .cannon-right { position:absolute; bottom:32%; right:20%; width:70px; height:24px; background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%); border-radius: 20% 40% 40% 20% / 30% 50% 50% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.6); transform-origin: right center; animation: stp-cannon-r 12s ease-in-out infinite; }
.scn-st-privat-gravelotte .cannon-right::before { content:''; position:absolute; top:-2px; left:20%; width:20%; height:110%; background: #2a2a2a; border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-st-privat-gravelotte .smoke { position:absolute; bottom:48%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(220,200,180,.5) 0%, rgba(200,180,160,.2) 70%, transparent 100%); border-radius:50%; filter: blur(12px); }
.scn-st-privat-gravelotte .smoke-1 { left:20%; animation: stp-smoke1 18s ease-out infinite; }
.scn-st-privat-gravelotte .smoke-2 { right:30%; animation: stp-smoke2 22s ease-out infinite; animation-delay: 6s; }
.scn-st-privat-gravelotte .steam { position:absolute; bottom:40%; left:50%; width:100px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(240,230,210,.3) 0%, rgba(220,200,180,.1) 100%); border-radius:50%; filter: blur(20px); animation: stp-steam 30s ease-in-out infinite; }
@keyframes stp-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes stp-sun { 0% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.08); opacity:1; } 100% { transform: scale(.95); opacity:.85; } }
@keyframes stp-cannon { 0%,100% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-1px); } }
@keyframes stp-cannon-r { 0%,100% { transform: rotate(2deg) translateY(0); } 33% { transform: rotate(0deg) translateY(-2px); } 66% { transform: rotate(-1deg) translateY(0); } }
@keyframes stp-smoke1 { 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 stp-smoke2 { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-15px) scale(1.3); opacity:.25; } 100% { transform: translateY(-35px) scale(1.8); opacity:0; } }
@keyframes stp-steam { 0%,100% { opacity:.15; transform: translateX(-50%) scaleX(1); } 50% { opacity:.3; transform: translateX(-50%) scaleX(1.3); } }

.scn-preface-first-edition { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 30%, #1a1008 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-preface-first-edition .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.4); animation: pfe-wall 20s ease-in-out infinite alternate; }
.scn-preface-first-edition .desk { position:absolute; bottom:12%; left:15%; right:15%; height:24%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5); }
.scn-preface-first-edition .lamp { position:absolute; bottom:36%; left:30%; width:18px; height:24px; background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3a2a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 30px 10px #b08050, 0 0 80px 30px rgba(176,128,80,.3); animation: pfe-lamp 5s ease-in-out infinite alternate; }
.scn-preface-first-edition .papers { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: linear-gradient(135deg, #d0c0a0 0%, #b09878 100%); border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,.3); transform: rotate(-4deg); animation: pfe-papers 12s ease-in-out infinite; }
.scn-preface-first-edition .hand { position:absolute; bottom:16%; left:42%; width:14px; height:20px; background: linear-gradient(180deg, #d0b898 0%, #b89878 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pfe-hand 6s ease-in-out infinite; }
.scn-preface-first-edition .chair { position:absolute; bottom:0; left:50%; width:50px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-preface-first-edition .chair::before { content:''; position:absolute; top:-8px; left:50%; width:40px; height:8px; background: #2a1a0a; border-radius: 20% 20% 0 0; transform: translateX(-50%); }
@keyframes pfe-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes pfe-lamp { 0% { box-shadow: 0 0 20px 6px #b08050, 0 0 60px 20px rgba(176,128,80,.2); } 50% { box-shadow: 0 0 40px 14px #c89060, 0 0 100px 30px rgba(200,144,96,.4); } 100% { box-shadow: 0 0 25px 8px #b08050, 0 0 70px 20px rgba(176,128,80,.25); } }
@keyframes pfe-papers { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes pfe-hand { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-5deg); } }

.scn-clausewitzs-systematizing { background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 40%, #0a0604 100%), radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 70%); }
.scn-clausewitzs-systematizing .shadows { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 40%, rgba(0,0,0,.2) 80%); animation: csys-shad 20s ease-in-out infinite alternate; }
.scn-clausewitzs-systematizing .bookshelf { position:absolute; top:5%; right:10%; width:30%; height:80%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 4px 15px rgba(0,0,0,.4); }
.scn-clausewitzs-systematizing .bookshelf::before { content:''; position:absolute; top:10%; left:10%; width:80%; height:80%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #3a2a1a 4px, #3a2a1a 8px); border-radius: 2%; opacity:.5; }
.scn-clausewitzs-systematizing .desk { position:absolute; bottom:15%; left:8%; right:35%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-clausewitzs-systematizing .candle { position:absolute; bottom:35%; left:20%; width:10px; height:20px; background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 6px #d0a060, 0 0 50px 15px rgba(208,160,96,.3); animation: csys-candle 4s ease-in-out infinite alternate; }
.scn-clausewitzs-systematizing .candle::before { content:''; position:absolute; top:-6px; left:50%; transform: translateX(-50%); width:4px; height:6px; background: radial-gradient(ellipse, #ffd880 0%, #d0a060 100%); border-radius: 50%; box-shadow: 0 0 10px 3px #ffd060; animation: csys-flame 1.5s ease-in-out infinite; }
.scn-clausewitzs-systematizing .figure { position:absolute; bottom:10%; left:18%; width:20px; height:35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: csys-figure 8s ease-in-out infinite; }
.scn-clausewitzs-systematizing .papers { position:absolute; bottom:22%; left:22%; background: linear-gradient(135deg, #d0c0a0 0%, #b09878 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-clausewitzs-systematizing .papers-front { width:35px; height:25px; transform: rotate(-2deg); animation: csys-papers-f 14s ease-in-out infinite; }
.scn-clausewitzs-systematizing .papers-back { width:30px; height:20px; left:18%; bottom:20%; transform: rotate(3deg); animation: csys-papers-b 16s ease-in-out infinite; }
.scn-clausewitzs-systematizing .glow { position:absolute; bottom:30%; left:10%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(208,160,96,.15) 0%, transparent 70%); pointer-events:none; animation: csys-glow 5s ease-in-out infinite alternate; }
@keyframes csys-shad { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes csys-candle { 0% { box-shadow: 0 0 15px 4px #d0a060, 0 0 40px 10px rgba(208,160,96,.2); } 50% { box-shadow: 0 0 25px 8px #e0b070, 0 0 60px 15px rgba(224,176,112,.35); } 100% { box-shadow: 0 0 18px 5px #d0a060, 0 0 45px 12px rgba(208,160,96,.25); } }
@keyframes csys-flame { 0%,100% { transform: translateX(-50%) scaleY(1); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.8); opacity:1; } }
@keyframes csys-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes csys-papers-f { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes csys-papers-b { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } }
@keyframes csys-glow { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }

.scn-item-sealed-papers { background: linear-gradient(180deg, #0a0608 0%, #1a0e10 30%, #0a0604 100%), radial-gradient(ellipse at 30% 50%, #1a1018 0%, transparent 80%); }
.scn-item-sealed-papers .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #0a080a 0%, #1a1218 50%, #0a0808 100%); animation: isp-deep 25s ease-in-out infinite alternate; }
.scn-item-sealed-papers .cabinet { position:absolute; bottom:0; left:20%; right:20%; height:75%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 30%, #2a1a1a 70%, #1a0e0e 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 -4px 15px rgba(0,0,0,.4); }
.scn-item-sealed-papers .drawer { position:absolute; bottom:55%; left:30%; right:30%; height:18%; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%); border-radius: 2%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3); }
.scn-item-sealed-papers .drawer::before { content:''; position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:12px; height:6px; background: #6a4a3a; border-radius: 20%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-item-sealed-papers .seal { position:absolute; background: radial-gradient(circle, #6a3a2a 0%, #4a2a1a 60%, #2a1a10 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5), inset 0 1px 3px rgba(255,200,150,.1); }
.scn-item-sealed-papers .seal-a { top:20%; left:25%; width:16px; height:16px; animation: isp-seal 10s ease-in-out infinite; }
.scn-item-sealed-papers .seal-b { top:35%; right:20%; width:14px; height:14px; animation: isp-seal 12s ease-in-out infinite; animation-delay: 3s; }
.scn-item-sealed-papers .candle { position:absolute; bottom:30%; left:12%; width:8px; height:18px; background: linear-gradient(180deg, #e0c8b0 0%, #c0a080 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 15px 4px #b08060, 0 0 40px 10px rgba(176,128,96,.25); animation: isp-candle 5s ease-in-out infinite alternate; }
.scn-item-sealed-papers .candle::before { content:''; position:absolute; top:-5px; left:50%; transform: translateX(-50%); width:3px; height:5px; background: radial-gradient(ellipse, #ffc860 0%, #c89050 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #e0a040; animation: isp-flame 2s ease-in-out infinite; }
.scn-item-sealed-papers .glow { position:absolute; bottom:25%; left:5%; width:30%; height:40%; background: radial-gradient(ellipse, rgba(200,160,120,.08) 0%, transparent 70%); pointer-events:none; animation: isp-glow 6s ease-in-out infinite alternate; }
.scn-item-sealed-papers .shadow-edge { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.8) 100%); pointer-events:none; }
@keyframes isp-deep { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes isp-seal { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } }
@keyframes isp-candle { 0% { box-shadow: 0 0 10px 3px #b08060, 0 0 30px 8px rgba(176,128,96,.15); } 50% { box-shadow: 0 0 20px 6px #c89070, 0 0 50px 12px rgba(200,144,112,.3); } 100% { box-shadow: 0 0 12px 4px #b08060, 0 0 35px 10px rgba(176,128,96,.2); } }
@keyframes isp-flame { 0%,100% { transform: translateX(-50%) scaleY(1); opacity:.85; } 50% { transform: translateX(-50%) scaleY(1.15) scaleX(.8); opacity:1; } }
@keyframes isp-glow { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* clausewitzs-intent – calm, dim-interior */
.scn-clausewitzs-intent {
  background: linear-gradient(180deg, #1e1c2a 0%, #2a2438 40%, #3b2e4a 100%), radial-gradient(ellipse at 30% 60%, #4a3b5e 0%, transparent 80%);
}
.scn-clausewitzs-intent .wall-deep {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #12101a 0%, #1e1a28 100%);
  animation: ci1-wall 12s ease-in-out infinite alternate;
}
.scn-clausewitzs-intent .wall-mid {
  position:absolute; inset:20% 10% 40% 10%;
  background: radial-gradient(ellipse at 50% 40%, #2a2438 0%, #1a1624 100%);
  border-radius: 20px; box-shadow: inset 0 4px 20px rgba(0,0,0,.6);
  animation: ci1-wallmid 8s ease-in-out infinite alternate;
}
.scn-clausewitzs-intent .desk {
  position:absolute; bottom:10%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 80%, #1a120a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.7);
  animation: ci1-desk 14s ease-in-out infinite;
}
.scn-clausewitzs-intent .lamp-glow {
  position:absolute; bottom:22%; left:30%; width:40px; height:50px;
  background: radial-gradient(circle at 50% 20%, #f0d080 0%, #d0a050 40%, #402830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(240,208,128,.4), 0 0 80px 40px rgba(240,208,128,.2);
  animation: ci1-lamp 4s ease-in-out infinite alternate;
}
.scn-clausewitzs-intent .book-left {
  position:absolute; bottom:12%; left:35%; width:20px; height:28px;
  background: linear-gradient(135deg, #8a2020 0%, #6a1010 100%);
  border-radius: 2px; box-shadow: 2px 3px 6px rgba(0,0,0,.5);
  transform: rotate(-8deg);
  animation: ci1-book 6s ease-in-out infinite alternate;
}
.scn-clausewitzs-intent .book-right {
  position:absolute; bottom:12%; left:40%; width:22px; height:30px;
  background: linear-gradient(135deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px; box-shadow: -2px 3px 6px rgba(0,0,0,.5);
  transform: rotate(4deg);
  animation: ci1-book 7s ease-in-out infinite alternate-reverse;
}
.scn-clausewitzs-intent .chair {
  position:absolute; bottom:2%; left:25%; width:40px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  animation: ci1-chair 10s ease-in-out infinite;
}
.scn-clausewitzs-intent .silhouette {
  position:absolute; bottom:4%; left:28%; width:24px; height:46px;
  background: #0a0812;
  border-radius: 50% 40% 30% 40% / 70% 60% 30% 40%;
  transform-origin: bottom center;
  animation: ci1-sil 5s ease-in-out infinite alternate;
}
@keyframes ci1-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ci1-wallmid { 0% { filter:brightness(0.9); } 50% { filter:brightness(1); } 100% { filter:brightness(0.95); } }
@keyframes ci1-desk { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ci1-lamp { 0% { transform: scale(0.95); opacity:.9; box-shadow: 0 0 30px 15px rgba(240,208,128,.35); } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 50px 25px rgba(240,208,128,.5); } 100% { transform: scale(0.98); opacity:.92; box-shadow: 0 0 35px 18px rgba(240,208,128,.4); } }
@keyframes ci1-book { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes ci1-chair { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ci1-sil { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(-1px) rotate(1deg); } }

/* clausewitz-molecular-tension – tense, dim-interior */
.scn-clausewitz-molecular-tension {
  background: linear-gradient(90deg, #1a121c 0%, #2a2030 50%, #1a121c 100%), radial-gradient(circle at 50% 70%, #3a2840 0%, transparent 80%);
}
.scn-clausewitz-molecular-tension .bg-boiler {
  position:absolute; inset:10% 15% 20% 15%;
  background: radial-gradient(ellipse at 50% 50%, #3a3040 0%, #1a1420 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: cmt2-bg 8s ease-in-out infinite alternate;
}
.scn-clausewitz-molecular-tension .boiler-body {
  position:absolute; bottom:20%; left:30%; right:30%; height:45%;
  background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 60%, #1a121a 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.8), 0 8px 20px rgba(0,0,0,.6);
  animation: cmt2-body 6s ease-in-out infinite;
}
.scn-clausewitz-molecular-tension .boiler-dome {
  position:absolute; bottom:65%; left:35%; right:35%; height:12%;
  background: radial-gradient(ellipse at 50% 20%, #6a5a6a 0%, #4a3a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cmt2-dome 5s ease-in-out infinite alternate;
}
.scn-clausewitz-molecular-tension .gauge {
  position:absolute; bottom:35%; left:45%; width:20px; height:20px;
  background: radial-gradient(circle, #f0e0c0 0%, #c0a080 70%, #403030 100%);
  border-radius: 50%; border: 3px solid #4a3a3a;
  box-shadow: 0 0 15px 5px rgba(192,160,128,.3);
  animation: cmt2-gauge 2s ease-in-out infinite alternate;
}
.scn-clausewitz-molecular-tension .steam-1 {
  position:absolute; bottom:55%; left:25%; width:50px; height:20px;
  background: radial-gradient(ellipse, rgba(220,200,180,.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: cmt2-steam1 6s ease-in-out infinite;
}
.scn-clausewitz-molecular-tension .steam-2 {
  position:absolute; bottom:50%; right:20%; width:60px; height:25px;
  background: radial-gradient(ellipse, rgba(220,200,180,.25) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: cmt2-steam2 7s ease-in-out infinite 0.5s;
}
.scn-clausewitz-molecular-tension .pipe-left {
  position:absolute; bottom:30%; left:15%; width:8px; height:30%;
  background: linear-gradient(90deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 4px; transform: rotate(-20deg);
  box-shadow: 4px 0 6px rgba(0,0,0,.5);
  animation: cmt2-pipe 3s ease-in-out infinite alternate;
}
.scn-clausewitz-molecular-tension .pipe-right {
  position:absolute; bottom:25%; right:10%; width:10px; height:40%;
  background: linear-gradient(90deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 5px; transform: rotate(15deg);
  box-shadow: -4px 0 6px rgba(0,0,0,.5);
  animation: cmt2-pipe 4s ease-in-out infinite alternate-reverse;
}
@keyframes cmt2-bg { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes cmt2-body { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cmt2-dome { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes cmt2-gauge { 0% { transform: rotate(-15deg); box-shadow: 0 0 10px 3px rgba(192,160,128,.2); } 50% { transform: rotate(15deg); box-shadow: 0 0 25px 8px rgba(192,160,128,.5); } 100% { transform: rotate(-10deg); box-shadow: 0 0 12px 4px rgba(192,160,128,.3); } }
@keyframes cmt2-steam1 { 0% { transform: translateX(0) translateY(0) scale(1); opacity:.3; } 50% { transform: translateX(15px) translateY(-10px) scale(1.3); opacity:.6; } 100% { transform: translateX(30px) translateY(-20px) scale(1.5); opacity:0; } }
@keyframes cmt2-steam2 { 0% { transform: translateX(0) translateY(0) scale(1); opacity:.3; } 50% { transform: translateX(-12px) translateY(-8px) scale(1.2); opacity:.5; } 100% { transform: translateX(-25px) translateY(-15px) scale(1.4); opacity:0; } }
@keyframes cmt2-pipe { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.2); } 100% { filter:brightness(0.9); } }

/* clausewitz-influence – calm, dim-interior */
.scn-clausewitz-influence {
  background: linear-gradient(180deg, #1e1c26 0%, #2a2634 50%, #1e1c26 100%), radial-gradient(ellipse at 40% 50%, #3a3248 0%, transparent 70%);
}
.scn-clausewitz-influence .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a322a 0%, #2a221a 80%, #1a120a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: ci3-floor 15s ease-in-out infinite alternate;
}
.scn-clausewitz-influence .wall-back {
  position:absolute; inset:0 10% 35% 10%;
  background: radial-gradient(ellipse at 50% 30%, #2a2834 0%, #1a1822 100%);
  border-radius: 20px;
  animation: ci3-wall 10s ease-in-out infinite alternate;
}
.scn-clausewitz-influence .map-table {
  position:absolute; bottom:20%; left:15%; right:15%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ci3-table 12s ease-in-out infinite;
}
.scn-clausewitz-influence .map {
  position:absolute; bottom:25%; left:20%; right:20%; height:12%;
  background: linear-gradient(135deg, #b0a890 0%, #908070 40%, #706050 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: ci3-map 18s ease-in-out infinite alternate;
}
.scn-clausewitz-influence .soldier-1 {
  position:absolute; bottom:18%; left:25%; width:16px; height:36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ci3-soldier 5s ease-in-out infinite;
}
.scn-clausewitz-influence .soldier-2 {
  position:absolute; bottom:18%; left:35%; width:16px; height:36px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ci3-soldier 5.5s ease-in-out infinite 0.3s;
}
.scn-clausewitz-influence .soldier-3 {
  position:absolute; bottom:18%; left:45%; width:16px; height:36px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ci3-soldier 6s ease-in-out infinite 0.6s;
}
.scn-clausewitz-influence .flagpole {
  position:absolute; bottom:30%; right:15%; width:4px; height:50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: ci3-flagpole 20s ease-in-out infinite;
}
@keyframes ci3-floor { 0% { filter:brightness(0.95); } 50% { filter:brightness(1.05); } 100% { filter:brightness(0.95); } }
@keyframes ci3-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ci3-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ci3-map { 0% { transform: scale(0.98); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes ci3-soldier { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(8px) translateY(0) rotate(-1deg); } }
@keyframes ci3-flagpole { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }

/* german-readiness-1887 – tense, dim-interior */
.scn-german-readiness-1887 {
  background: linear-gradient(180deg, #1a1a22 0%, #262436 50%, #1a1a22 100%), radial-gradient(ellipse at 60% 40%, #3a304a 0%, transparent 70%);
}
.scn-german-readiness-1887 .room-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #2a241a 0%, #1a140a 100%);
  border-radius: 15% 15% 0 0 / 8% 8% 0 0;
  animation: gr4-floor 14s ease-in-out infinite alternate;
}
.scn-german-readiness-1887 .room-wall {
  position:absolute; inset:5% 8% 30% 8%;
  background: radial-gradient(ellipse at 50% 30%, #2a2836 0%, #1a1824 100%);
  border-radius: 20px;
  animation: gr4-wall 10s ease-in-out infinite alternate;
}
.scn-german-readiness-1887 .desk-plans {
  position:absolute; bottom:18%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,.7);
  animation: gr4-desk 8s ease-in-out infinite;
}
.scn-german-readiness-1887 .plan-1 {
  position:absolute; bottom:22%; left:22%; width:25%; height:8%;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: gr4-plan1 12s ease-in-out infinite alternate;
}
.scn-german-readiness-1887 .plan-2 {
  position:absolute; bottom:24%; right:22%; width:20%; height:6%;
  background: linear-gradient(135deg, #b8a890 0%, #988070 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(3deg);
  animation: gr4-plan2 13s ease-in-out infinite alternate-reverse;
}
.scn-german-readiness-1887 .clock {
  position:absolute; top:15%; right:15%; width:30px; height:30px;
  background: radial-gradient(circle, #e0d0b0 0%, #c0b090 80%, #403030 100%);
  border-radius: 50%; border: 3px solid #4a3a3a;
  box-shadow: 0 0 20px 8px rgba(192,176,144,.3);
  animation: gr4-clock 60s linear infinite;
}
.scn-german-readiness-1887 .officer {
  position:absolute; bottom:10%; left:35%; width:18px; height:44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: gr4-officer 4s ease-in-out infinite alternate;
}
.scn-german-readiness-1887 .candle {
  position:absolute; bottom:20%; left:40%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 50%, #a08060 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(240,224,192,.5), 0 0 40px 16px rgba(240,224,192,.2);
  animation: gr4-candle 3s ease-in-out infinite alternate;
}
@keyframes gr4-floor { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.1); } 100% { filter:brightness(0.95); } }
@keyframes gr4-wall { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes gr4-desk { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gr4-plan1 { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes gr4-plan2 { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes gr4-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes gr4-officer { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(8px) translateY(0) rotate(-1deg); } }
@keyframes gr4-candle { 0% { transform: scaleY(0.95); opacity:.8; box-shadow: 0 0 15px 6px rgba(240,224,192,.4); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 0 30px 12px rgba(240,224,192,.7); } 100% { transform: scaleY(0.98); opacity:.85; box-shadow: 0 0 20px 8px rgba(240,224,192,.5); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.barrel-big { position: absolute; pointer-events: none; }
.document-scroll { position: absolute; pointer-events: none; }
.plan-paper { position: absolute; pointer-events: none; }
.silhouettes { position: absolute; pointer-events: none; }
.w-left { position: absolute; pointer-events: none; }
.w-right { position: absolute; pointer-events: none; }
.wisps { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-convoy-attacks-diversions {
  background: linear-gradient(135deg, #1a1512 0%, #2c2218 40%, #1e1714 100%), radial-gradient(ellipse at 30% 80%, #3a2e1e 0%, transparent 70%);
  position: relative;
}
.scn-convoy-attacks-diversions .c-table { position: absolute; bottom: 0; left: 5%; right: 5%; height: 60%; background: linear-gradient(180deg, #3e2e1a 0%, #1e1408 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-convoy-attacks-diversions .c-map { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 35%; background: linear-gradient(135deg, #c4b08a 0%, #a08762 50%, #8a6e4e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: perspective(300px) rotateX(30deg); }
.scn-convoy-attacks-diversions .c-candle { position: absolute; bottom: 40%; left: 65%; width: 8px; height: 20px; background: linear-gradient(180deg, #e8d0a0 0%, #b89870 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(200,160,80,.3); transform-origin: bottom center; }
.scn-convoy-attacks-diversions .c-flame { position: absolute; bottom: 57%; left: 65%; width: 6px; height: 12px; margin-left: -3px; background: radial-gradient(circle, #ffd080 0%, #e8a030 40%, #d06020 70%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: cadi-flicker .6s ease-in-out infinite alternate; }
.scn-convoy-attacks-diversions .c-piece-a { position: absolute; bottom: 42%; left: 30%; width: 10px; height: 14px; background: #b84430; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: cadi-shift 5s ease-in-out infinite; }
.scn-convoy-attacks-diversions .c-piece-b { position: absolute; bottom: 44%; left: 50%; width: 8px; height: 12px; background: #6a5a4a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: cadi-shift 5s ease-in-out infinite 2.5s; }
.scn-convoy-attacks-diversions .c-hand { position: absolute; bottom: 38%; left: 48%; width: 20px; height: 30px; background: linear-gradient(180deg, #d4a67a 0%, #a07250 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: cadi-point 4s ease-in-out infinite; }
.scn-convoy-attacks-diversions .c-shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); pointer-events: none; }
@keyframes cadi-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .9; } 50% { transform: scaleY(1.15) scaleX(.85); opacity: 1; } 100% { transform: scaleY(.95) scaleX(1.05); opacity: .85; } }
@keyframes cadi-shift { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cadi-point { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(10deg); } }

.scn-victory-effects-vary {
  background: linear-gradient(180deg, #1a1515 0%, #2a2018 50%, #1e1814 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
  position: relative;
}
.scn-victory-effects-vary .v-wall { position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 100%); border-bottom: 4px solid #4a3428; }
.scn-victory-effects-vary .v-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-victory-effects-vary .v-scale { position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%); width: 60px; height: 6px; background: #8a7a6a; border-radius: 3px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-victory-effects-vary .v-pan-left { position: absolute; bottom: 35%; left: 20%; width: 40px; height: 20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 40% 40%; transform-origin: right center; animation: vev-rock 6s ease-in-out infinite; }
.scn-victory-effects-vary .v-pan-right { position: absolute; bottom: 35%; right: 20%; width: 40px; height: 20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 40% 40%; transform-origin: left center; animation: vev-rock 6s ease-in-out infinite reverse; }
.scn-victory-effects-vary .v-chain { position: absolute; bottom: 35%; left: 50%; width: 2px; height: 20px; background: #5a4a3a; transform: translateX(-50%); }
.scn-victory-effects-vary .v-arrow { position: absolute; bottom: 55%; left: 60%; width: 30px; height: 4px; background: #b8a080; clip-path: polygon(0 0, 80% 0, 100% 50%, 80% 100%, 0 100%); animation: vev-threat 8s ease-in-out infinite; }
@keyframes vev-rock { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-8deg); } 75% { transform: rotate(8deg); } }
@keyframes vev-threat { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.3); } }

.scn-commander-judgment-required {
  background: linear-gradient(135deg, #1a1412 0%, #2a1e18 40%, #1e1614 100%), radial-gradient(ellipse at 20% 60%, #3a2a1e 0%, transparent 70%);
  position: relative;
}
.scn-commander-judgment-required .j-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, #3a2a20 0%, #1a1410 100%); }
.scn-commander-judgment-required .j-chair { position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-commander-judgment-required .j-figure { position: absolute; bottom: 30%; left: 42%; width: 20px; height: 44px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cjr-think 5s ease-in-out infinite; }
.scn-commander-judgment-required .j-candle { position: absolute; bottom: 30%; left: 55%; width: 8px; height: 24px; background: linear-gradient(180deg, #e8d0a0 0%, #b89870 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,160,80,.4); }
.scn-commander-judgment-required .j-flame { position: absolute; bottom: 50%; left: 55%; width: 6px; height: 14px; margin-left: -3px; background: radial-gradient(circle, #ffd080 0%, #e8a030 40%, #d06020 70%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: cjr-flicker .8s ease-in-out infinite alternate; }
.scn-commander-judgment-required .j-desk { position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1408 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-commander-judgment-required .j-papers { position: absolute; bottom: 18%; left: 40%; right: 30%; height: 8%; background: #8a7a5a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: cjr-paper 10s linear infinite; }
.scn-commander-judgment-required .j-shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events: none; }
@keyframes cjr-think { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(0); } }
@keyframes cjr-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: .9; } 50% { transform: scaleY(1.2) scaleX(.8); opacity: 1; } 100% { transform: scaleY(.9) scaleX(1.05); opacity: .85; } }
@keyframes cjr-paper { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(0); } }

.scn-evolution-of-armies {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2a30 40%, #1e1e22 100%), radial-gradient(ellipse at 50% 0%, #3a3a44 0%, transparent 80%);
  position: relative;
}
.scn-evolution-of-armies .e-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, #3a3a44 0%, #1a1a1e 100%); }
.scn-evolution-of-armies .e-line { position: absolute; top: 40%; left: 5%; right: 5%; height: 4px; background: linear-gradient(90deg, #6a6a7a 0%, #8a8a9a 50%, #6a6a7a 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(100,100,120,.3); }
.scn-evolution-of-armies .e-soldier-a { position: absolute; bottom: 40%; left: 15%; width: 16px; height: 34px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a36 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eoa-march 10s ease-in-out infinite; }
.scn-evolution-of-armies .e-soldier-b { position: absolute; bottom: 40%; left: 40%; width: 16px; height: 34px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a46 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eoa-march 10s ease-in-out infinite 3.3s; }
.scn-evolution-of-armies .e-soldier-c { position: absolute; bottom: 40%; right: 20%; width: 16px; height: 34px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a56 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eoa-march 10s ease-in-out infinite 6.6s; }
.scn-evolution-of-armies .e-flag { position: absolute; top: 30%; left: 50%; width: 3px; height: 30px; background: #8a8a9a; transform-origin: bottom center; animation: eoa-wave 8s ease-in-out infinite; }
.scn-evolution-of-armies .e-flag::before { content: ''; position: absolute; top: 0; left: 3px; width: 20px; height: 14px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 0 40% 0 40%; }
.scn-evolution-of-armies .e-dust { position: absolute; bottom: 30%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, transparent 0%, rgba(180,170,160,.2) 100%); animation: eoa-drift 15s linear infinite; }
@keyframes eoa-march { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(2deg); } }
@keyframes eoa-wave { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes eoa-drift { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.2); } 100% { transform: translateY(0) scaleX(1); } }

/* war-as-violence-compel (wv) */
.scn-war-as-violence-compel {
  background: 
    linear-gradient(180deg, #1f1a18 0%, #2d2521 30%, #1a1412 70%, #0f0b0a 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a20 0%, transparent 60%);
}
.scn-war-as-violence-compel .wall { position:absolute; inset:0; background:linear-gradient(90deg, transparent 0%, #2a221e 15%, #1c1613 85%, transparent 100%); }
.scn-war-as-violence-compel .desk { position:absolute; bottom:0; left:5%; right:5%; height:45%; background:linear-gradient(180deg, #4a372b 0%, #2f2118 100%); border-radius: 0 0 20px 20px; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-war-as-violence-compel .map  { position:absolute; bottom:30%; left:15%; right:15%; height:20%; background:linear-gradient(135deg, #6b5a3a 0%, #8b7a5a 30%, #5a4930 70%, #3a2a1a 100%); border-radius: 4px; transform:rotate(-2deg); animation: wv-map 12s ease-in-out infinite; }
.scn-war-as-violence-compel .candle { position:absolute; bottom:35%; left:50%; width:18px; height:80px; transform:translateX(-50%); background:linear-gradient(180deg, #f0d090 0%, #c8a050 20%, #806020 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-war-as-violence-compel .flame { position:absolute; bottom:70%; left:50%; width:14px; height:28px; transform:translateX(-50%); background:radial-gradient(circle at 50% 30%, #ffe0a0 0%, #ff9040 40%, transparent 70%); border-radius: 50%; animation: wv-flame 0.8s ease-in-out infinite alternate; }
.scn-war-as-violence-compel .hand { position:absolute; bottom:34%; left:40%; width:30px; height:50px; background:linear-gradient(180deg, #2a1a14 0%, #1c0e0a 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform:rotate(15deg); animation: wv-hand 3s ease-in-out infinite; }
.scn-war-as-violence-compel .shadow-tool { position:absolute; bottom:30%; left:55%; width:22px; height:40px; background:linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius: 40% 30% 30% 40% / 50% 50% 50% 50%; filter: blur(4px); animation: wv-tool-shadow 4s ease-in-out infinite; }
@keyframes wv-map { 0%,100% { transform:rotate(-2deg) scale(1); opacity:.9 } 50% { transform:rotate(1deg) scale(1.02); opacity:1 } }
@keyframes wv-flame { 0% { transform:translateX(-50%) scaleY(1); opacity:.9 } 50% { transform:translateX(-50%) scaleY(1.3); opacity:1 } 100% { transform:translateX(-50%) scaleY(.85); opacity:.85 } }
@keyframes wv-hand { 0%,100% { transform:rotate(14deg) translateY(0) } 50% { transform:rotate(18deg) translateY(-2px) } }
@keyframes wv-tool-shadow { 0%,100% { transform:scaleX(.9) translateY(0); opacity:.2 } 50% { transform:scaleX(1.1) translateY(2px); opacity:.4 } }

/* political-object-reappears (po) */
.scn-political-object-reappears {
  background: 
    linear-gradient(180deg, #2a2420 0%, #1e1815 40%, #14100e 80%, #0a0807 100%),
    radial-gradient(ellipse at 70% 50%, #3a2e28 0%, transparent 70%);
}
.scn-political-object-reappears .wall { position:absolute; inset:0; background:linear-gradient(90deg, #2a2420 0%, #1a1614 30%, #2a2420 70%, #1a1614 100%); }
.scn-political-object-reappears .shelf { position:absolute; top:10%; left:5%; right:5%; height:20%; background:linear-gradient(180deg, #4a3828 0%, #2f2218 100%); border-radius: 4px; box-shadow: inset 0 -4px 10px rgba(0,0,0,.5); }
.scn-political-object-reappears .lamp { position:absolute; top:15%; left:65%; width:20px; height:40px; background:linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,160,100,.3); animation: po-lamp-glow 6s ease-in-out infinite alternate; }
.scn-political-object-reappears .book { position:absolute; bottom:28%; left:30%; width:80px; height:50px; background:linear-gradient(135deg, #6b4a2a 0%, #4a3020 100%); border-radius: 2px; transform:rotate(-4deg); box-shadow: 2px 4px 10px rgba(0,0,0,.6); animation: po-book 10s ease-in-out infinite; }
.scn-political-object-reappears .figure-read { position:absolute; bottom:18%; left:45%; width:40px; height:60px; background:linear-gradient(180deg, #1c1613 0%, #0e0a08 100%); border-radius: 50% 40% 40% 50% / 50% 50% 40% 40%; transform:rotate(5deg); animation: po-figure 8s ease-in-out infinite; }
.scn-political-object-reappears .shadow-book { position:absolute; bottom:20%; left:32%; width:90px; height:20px; background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(6px); animation: po-shadow 12s ease-in-out infinite; }
@keyframes po-lamp-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,160,100,.2); } 50% { box-shadow: 0 0 40px 16px rgba(200,160,100,.4); } 100% { box-shadow: 0 0 25px 8px rgba(200,160,100,.25); } }
@keyframes po-book { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-2px); } }
@keyframes po-figure { 0%,100% { transform:rotate(3deg) scale(1); } 50% { transform:rotate(7deg) scale(1.02); } }
@keyframes po-shadow { 0%,100% { opacity:.3; transform:scaleX(1); } 50% { opacity:.5; transform:scaleX(1.1); } }

/* war-as-political-instrument (wp) */
.scn-war-as-political-instrument {
  background: 
    linear-gradient(180deg, #2b221c 0%, #1f1712 30%, #140e0a 70%, #0a0604 100%),
    radial-gradient(ellipse at 40% 80%, #3a281a 0%, transparent 60%);
}
.scn-war-as-political-instrument .wall { position:absolute; inset:0; background:linear-gradient(135deg, transparent 30%, #1a1410 50%, transparent 70%); }
.scn-war-as-political-instrument .table { position:absolute; bottom:0; left:10%; right:10%; height:40%; background:linear-gradient(180deg, #5a3e2a 0%, #3a2618 100%); border-radius: 0 0 16px 16px; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); }
.scn-war-as-political-instrument .scroll { position:absolute; bottom:32%; left:20%; width:120px; height:16px; background:linear-gradient(90deg, #c8a060 0%, #e0c080 30%, #b89050 70%, #a07840 100%); border-radius: 2px 20px 20px 2px; transform:rotate(-2deg); animation: wp-scroll 10s ease-in-out infinite; }
.scn-war-as-political-instrument .inkwell { position:absolute; bottom:34%; left:55%; width:22px; height:18px; background:linear-gradient(180deg, #6a4030 0%, #3a2018 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wp-inkwell 4s ease-in-out infinite; }
.scn-war-as-political-instrument .pen { position:absolute; bottom:36%; left:58%; width:4px; height:40px; background:linear-gradient(180deg, #c8a060 0%, #a07830 50%, #4a3020 100%); border-radius: 2px; transform:rotate(20deg); transform-origin: bottom center; animation: wp-pen 6s ease-in-out infinite; }
.scn-war-as-political-instrument .figure-write { position:absolute; bottom:18%; left:35%; width:40px; height:60px; background:linear-gradient(180deg, #1c140e 0%, #0e0a06 100%); border-radius: 50% 40% 40% 50% / 50% 50% 40% 40%; transform:rotate(3deg); animation: wp-figure 8s ease-in-out infinite; }
.scn-war-as-political-instrument .candle2 { position:absolute; bottom:35%; left:70%; width:16px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #e8c880 0%, #b08840 20%, #705020 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-war-as-political-instrument .flame2 { position:absolute; bottom:68%; left:70%; width:12px; height:24px; transform:translateX(-50%); background:radial-gradient(circle at 50% 30%, #ffe090 0%, #ff8030 40%, transparent 70%); border-radius: 50%; animation: wp-flame 3s ease-in-out infinite alternate; }
@keyframes wp-scroll { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-1px); } }
@keyframes wp-inkwell { 0%,100% { transform:scale(1); } 50% { transform:scale(1.05); } }
@keyframes wp-pen { 0%,100% { transform:rotate(18deg) translateY(0); } 50% { transform:rotate(24deg) translateY(-2px); } }
@keyframes wp-figure { 0%,100% { transform:rotate(2deg) scale(1); } 50% { transform:rotate(5deg) scale(1.02); } }
@keyframes wp-flame { 0% { transform:translateX(-50%) scaleY(1); opacity:.8; } 50% { transform:translateX(-50%) scaleY(1.2); opacity:1; } 100% { transform:translateX(-50%) scaleY(.9); opacity:.85; } }

/* calculation-of-probabilities (cp) */
.scn-calculation-of-probabilities {
  background: 
    linear-gradient(180deg, #1e1815 0%, #14100d 40%, #0a0806 80%, #040302 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e18 0%, transparent 70%);
}
.scn-calculation-of-probabilities .tabletop { position:absolute; bottom:0; left:5%; right:5%; height:50%; background:linear-gradient(180deg, #4a3426 0%, #2f2016 100%); border-radius: 0 0 18px 18px; box-shadow: inset 0 -12px 30px rgba(0,0,0,.6); }
.scn-calculation-of-probabilities .coin-a { position:absolute; bottom:36%; left:35%; width:30px; height:30px; background:radial-gradient(circle, #d0b060 0%, #b89040 60%, #a07830 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: cp-coin-a 4s ease-in-out infinite; }
.scn-calculation-of-probabilities .coin-b { position:absolute; bottom:38%; left:50%; width:30px; height:30px; background:radial-gradient(circle, #d0b060 0%, #b89040 60%, #a07830 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: cp-coin-b 4.5s ease-in-out infinite 0.5s; }
.scn-calculation-of-probabilities .hand-left { position:absolute; bottom:30%; left:25%; width:40px; height:50px; background:linear-gradient(180deg, #1c140e 0%, #0e0a06 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform:rotate(-15deg); animation: cp-hand-l 3s ease-in-out infinite; }
.scn-calculation-of-probabilities .hand-right { position:absolute; bottom:30%; right:25%; width:40px; height:50px; background:linear-gradient(180deg, #1c140e 0%, #0e0a06 100%); border-radius: 40% 50% 50% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation: cp-hand-r 3s ease-in-out infinite 0.3s; }
.scn-calculation-of-probabilities .cup { position:absolute; bottom:34%; left:50%; width:40px; height:35px; transform:translateX(-50%); background:linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: cp-cup 6s ease-in-out infinite; }
.scn-calculation-of-probabilities .shadow-dice { position:absolute; bottom:28%; left:55%; width:20px; height:6px; background:radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(4px); animation: cp-shadow 5s ease-in-out infinite; }
@keyframes cp-coin-a { 0%,100% { transform:scale(1) translateY(0); } 25% { transform:scale(0.95) translateY(-3px); } 50% { transform:scale(1.05) translateY(0); } 75% { transform:scale(0.98) translateY(-2px); } }
@keyframes cp-coin-b { 0%,100% { transform:scale(1) translateY(0); } 25% { transform:scale(0.95) translateY(-3px); } 50% { transform:scale(1.05) translateY(0); } 75% { transform:scale(0.98) translateY(-2px); } }
@keyframes cp-hand-l { 0%,100% { transform:rotate(-14deg) translateY(0); } 50% { transform:rotate(-18deg) translateY(-2px); } }
@keyframes cp-hand-r { 0%,100% { transform:rotate(14deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-2px); } }
@keyframes cp-cup { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(1.03); } }
@keyframes cp-shadow { 0%,100% { opacity:.3; } 50% { opacity:.6; } }

.scn-moral-forces-in-combat {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, #0d0d0d 70%),
    linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-moral-forces-in-combat .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1515 0%, #0d0d0d 100%);
  animation: mfc-wall 12s ease-in-out infinite alternate;
}
.scn-moral-forces-in-combat .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-moral-forces-in-combat .figure-left {
  position: absolute; bottom: 28%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfc-figure-left 3s ease-in-out infinite alternate;
}
.scn-moral-forces-in-combat .figure-right {
  position: absolute; bottom: 28%; right: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfc-figure-right 3.2s ease-in-out infinite alternate;
}
.scn-moral-forces-in-combat .lantern {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,140,80,0.5);
}
.scn-moral-forces-in-combat .lantern-glow {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: radial-gradient(circle, #ffcc80 0%, rgba(200,140,80,0.3) 50%, transparent 70%);
  border-radius: 50%;
  animation: mfc-glow 2s ease-in-out infinite alternate;
}
.scn-moral-forces-in-combat .shadow-bar {
  position: absolute; bottom: 32%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%);
  opacity: 0.4;
  animation: mfc-shadow 3s ease-in-out infinite alternate;
}
@keyframes mfc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mfc-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes mfc-figure-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes mfc-glow { 0% { opacity: 0.6; scale: 0.9; } 50% { opacity: 1; scale: 1.1; } 100% { opacity: 0.7; scale: 0.95; } }
@keyframes mfc-shadow { 0% { width: 60%; left: 20%; } 50% { width: 80%; left: 10%; } 100% { width: 50%; left: 25%; } }

.scn-uncertainty-in-war {
  background: 
    radial-gradient(ellipse at 50% 70%, #1a1a2a 0%, #0a0a12 70%),
    linear-gradient(180deg, #12121a 0%, #08080f 100%);
}
.scn-uncertainty-in-war .war-room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
}
.scn-uncertainty-in-war .table {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(10deg);
}
.scn-uncertainty-in-war .map {
  position: absolute; bottom: 34%; left: 22%; right: 22%; height: 12%;
  background: linear-gradient(135deg, #5a4a3a 0%, #7a6a4a 30%, #5a4a3a 70%, #6a5a3a 100%);
  border-radius: 5%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: uiw-map 20s ease-in-out infinite alternate;
}
.scn-uncertainty-in-war .candle {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a080 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-uncertainty-in-war .candle-glow {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe0a0 0%, rgba(200,160,100,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: uiw-candle 3s ease-in-out infinite alternate;
}
.scn-uncertainty-in-war .figure-uncertain {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0a0a12 0%, #05050a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uiw-figure 4s ease-in-out infinite alternate;
}
.scn-uncertainty-in-war .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(100,100,130,0.15) 40%, rgba(50,50,70,0.2) 100%);
  filter: blur(8px);
  animation: uiw-mist 30s linear infinite alternate;
}
@keyframes uiw-map { 0% { opacity: 0.7; scale: 1; } 50% { opacity: 0.9; scale: 1.02; } 100% { opacity: 0.6; scale: 0.98; } }
@keyframes uiw-candle { 0% { opacity: 0.7; scale: 1; } 50% { opacity: 1; scale: 1.15; } 100% { opacity: 0.8; scale: 0.95; } }
@keyframes uiw-figure { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes uiw-mist { 0% { transform: translateY(0) translateX(-10px); opacity: 0.4; } 50% { transform: translateY(-5px) translateX(10px); opacity: 0.7; } 100% { transform: translateY(2px) translateX(-5px); opacity: 0.3; } }

.scn-war-belong-to-social-life {
  background: 
    radial-gradient(ellipse at 60% 70%, #2a1a0a 0%, #0a0a0a 70%),
    linear-gradient(180deg, #1a1510 0%, #0f0a05 100%);
}
.scn-war-belong-to-social-life .parlor-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a15 0%, #12100d 100%);
}
.scn-war-belong-to-social-life .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(200,100,50,0.2);
}
.scn-war-belong-to-social-life .fire-glow {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ff7030 0%, rgba(200,80,40,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: wbl-fire 2.5s ease-in-out infinite alternate;
}
.scn-war-belong-to-social-life .armchair {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-war-belong-to-social-life .social-figure {
  position: absolute; bottom: 22%; left: 22%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wbl-figure 6s ease-in-out infinite alternate;
}
.scn-war-belong-to-social-life .book-object {
  position: absolute; bottom: 24%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a10 100%);
  border-radius: 5%;
  transform: rotate(-10deg);
  animation: wbl-book 10s ease-in-out infinite alternate;
}
.scn-war-belong-to-social-life .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: wbl-shadow 15s ease-in-out infinite alternate;
}
@keyframes wbl-fire { 0% { opacity: 0.6; scale: 0.95; } 50% { opacity: 0.9; scale: 1.1; } 100% { opacity: 0.5; scale: 0.9; } }
@keyframes wbl-figure { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(1px); } }
@keyframes wbl-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes wbl-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-criticism-in-war-theory {
  background: 
    radial-gradient(ellipse at 40% 80%, #1a1a1a 0%, #0a0a0a 70%),
    linear-gradient(180deg, #151510 0%, #0a0805 100%);
}
.scn-criticism-in-war-theory .study-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a15 0%, #0f0f0a 100%);
}
.scn-criticism-in-war-theory .desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-criticism-in-war-theory .lamp {
  position: absolute; bottom: 40%; left: 35%; width: 10px; height: 22px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
}
.scn-criticism-in-war-theory .lamp-glow {
  position: absolute; bottom: 38%; left: 35%; transform: translate(-50%, -50%);
  width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe0a0 0%, rgba(200,180,120,0.3) 50%, transparent 70%);
  border-radius: 50%;
  animation: cwt-lamp 4s ease-in-out infinite alternate;
}
.scn-criticism-in-war-theory .scholar-figure {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwt-scholar 5s ease-in-out infinite alternate;
}
.scn-criticism-in-war-theory .bookshelf {
  position: absolute; top: 15%; right: 10%; width: 25px; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
}
.scn-criticism-in-war-theory .paper-pile {
  position: absolute; bottom: 32%; left: 20%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 5%;
  transform: rotate(5deg);
  animation: cwt-paper 8s ease-in-out infinite alternate;
}
@keyframes cwt-lamp { 0% { opacity: 0.7; scale: 1; } 50% { opacity: 0.95; scale: 1.1; } 100% { opacity: 0.8; scale: 0.95; } }
@keyframes cwt-scholar { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(1px); } }
@keyframes cwt-paper { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(-1px); } }
@keyframes cwt-bookshelf { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-combat-as-sole-means {
  background:
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
}
.scn-combat-as-sole-means .wall-back {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 80%, #2a1a12 0%, #0a0808 100%);
  animation: s1-wallpulse 12s ease-in-out infinite alternate;
}
.scn-combat-as-sole-means .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0808 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-combat-as-sole-means .shadow-figure {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(135deg, #1a1008 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(180,80,30,.15);
  animation: s1-figure 4s ease-in-out infinite alternate;
}
.scn-combat-as-sole-means .weapon {
  position: absolute; bottom: 22%; left: 42%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a06030 0%, #603010 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: s1-weapon 3s ease-in-out infinite alternate;
}
.scn-combat-as-sole-means .candle {
  position: absolute; bottom: 38%; right: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 2px 2px 4px 4px;
  transform: rotate(-5deg);
}
.scn-combat-as-sole-means .candle-glow {
  position: absolute; bottom: 40%; right: 28%; width: 30px; height: 30px;
  background: radial-gradient(ellipse, #d09040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: s1-glow 2s ease-in-out infinite alternate;
}
.scn-combat-as-sole-means .broken-chair {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4px;
  transform: rotate(-20deg);
  animation: s1-chair 8s ease-in-out infinite;
}
.scn-combat-as-sole-means .dust-particle {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(180,120,60,.6), transparent);
  border-radius: 50%;
  filter: blur(1px);
  animation: s1-dust 12s linear infinite;
}
@keyframes s1-wallpulse { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes s1-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-4px) translateY(0) rotate(-1deg) } }
@keyframes s1-weapon { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(-18deg) scaleX(.95) } }
@keyframes s1-glow { 0% { opacity: .6; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .7; transform: scale(1) } }
@keyframes s1-chair { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-25deg) translateY(0) } }
@keyframes s1-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .7 } 25% { transform: translateY(-30px) translateX(15px) scale(.8); opacity: .4 } 50% { transform: translateY(-60px) translateX(-5px) scale(1.2); opacity: .2 } 75% { transform: translateY(-30px) translateX(20px) scale(.9); opacity: .5 } 100% { transform: translateY(0) translateX(0) scale(1); opacity: .7 } }

.scn-destruction-includes-moral-force {
  background:
    radial-gradient(ellipse at 80% 60%, #2a1a12 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
}
.scn-destruction-includes-moral-force .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1210 0%, #0a0808 100%);
  animation: s2-wall 20s ease-in-out infinite alternate;
}
.scn-destruction-includes-moral-force .fallen-column {
  position: absolute; bottom: 10%; left: 20%; width: 20px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: s2-column 10s ease-in-out infinite;
}
.scn-destruction-includes-moral-force .debris {
  position: absolute; bottom: 5%; left: 30%; width: 40px; height: 20px;
  background: #4a3a2a;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: s2-debris 15s ease-in-out infinite alternate;
}
.scn-destruction-includes-moral-force .shadow-figure-kneeling {
  position: absolute; bottom: 18%; left: 55%; width: 35px; height: 60px;
  background: linear-gradient(135deg, #1a1008 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateY(10px);
  animation: s2-kneel 6s ease-in-out infinite alternate;
}
.scn-destruction-includes-moral-force .glow-crack {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #c07030 0%, transparent 100%);
  filter: blur(6px);
  animation: s2-crack 4s ease-in-out infinite alternate;
}
.scn-destruction-includes-moral-force .spark {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e09040, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: s2-spark 0.8s ease-in-out infinite alternate;
}
.scn-destruction-includes-moral-force .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 3px; height: 3px;
  background: #806040;
  border-radius: 50%;
  filter: blur(1px);
  animation: s2-dust 18s linear infinite;
}
@keyframes s2-wall { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.02) } 100% { opacity: .7; transform: scale(1) } }
@keyframes s2-column { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-5px) } 100% { transform: rotate(25deg) translateY(0) } }
@keyframes s2-debris { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(10px) } 100% { transform: rotate(-15deg) translateX(-5px) } }
@keyframes s2-kneel { 0% { transform: translateY(10px) rotate(0deg) } 50% { transform: translateY(5px) rotate(2deg) } 100% { transform: translateY(15px) rotate(-1deg) } }
@keyframes s2-crack { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.2) } 100% { opacity: .4; transform: scaleY(0.8) } }
@keyframes s2-spark { 0% { opacity: .1; transform: scale(1) } 100% { opacity: 1; transform: scale(2) } }
@keyframes s2-dust { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-40px) translateX(20px) } 50% { transform: translateY(-80px) translateX(-10px) } 75% { transform: translateY(-40px) translateX(15px) } 100% { transform: translateY(0) translateX(0) } }

.scn-military-genius-required {
  background:
    radial-gradient(ellipse at 30% 40%, #2a2018 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
}
.scn-military-genius-required .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%);
}
.scn-military-genius-required .desk {
  position: absolute; bottom: 8%; left: 30%; width: 50%; height: 20px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-military-genius-required .map-unrolled {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #c8a868 0%, #a08040 100%);
  border-radius: 2px;
  transform: scaleX(0.8) rotate(2deg);
  box-shadow: 0 0 12px rgba(100,80,40,.3);
  animation: s3-map 8s ease-in-out infinite alternate;
}
.scn-military-genius-required .lantern {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #b08040 0%, #906020 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 20px 4px rgba(200,140,60,.6);
  animation: s3-lantern 3s ease-in-out infinite alternate;
}
.scn-military-genius-required .lantern-glow {
  position: absolute; bottom: 30%; right: 18%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, #d09040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: s3-glow 4s ease-in-out infinite alternate;
}
.scn-military-genius-required .figure-general {
  position: absolute; bottom: 10%; left: 42%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(180,120,40,.1);
  animation: s3-general 6s ease-in-out infinite;
}
.scn-military-genius-required .quill {
  position: absolute; bottom: 15%; left: 38%; width: 2px; height: 30px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09080 100%);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: s3-quill 5s ease-in-out infinite alternate;
}
.scn-military-genius-required .inkwell {
  position: absolute; bottom: 10%; left: 36%; width: 12px; height: 10px;
  background: radial-gradient(ellipse at 50% 30%, #2a2820 0%, #0a0808 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: inset 0 2px 4px #000;
}
@keyframes s3-map { 0% { transform: scaleX(0.8) rotate(2deg) } 50% { transform: scaleX(0.82) rotate(0deg) } 100% { transform: scaleX(0.78) rotate(4deg) } }
@keyframes s3-lantern { 0% { opacity: .9; box-shadow: 0 0 15px 2px rgba(200,140,60,.5) } 50% { opacity: 1; box-shadow: 0 0 25px 6px rgba(200,140,60,.7) } 100% { opacity: .85; box-shadow: 0 0 20px 4px rgba(200,140,60,.4) } }
@keyframes s3-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .9; transform: scale(1.1) } 100% { opacity: .6; transform: scale(.95) } }
@keyframes s3-general { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes s3-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }

.scn-friction-in-war {
  background:
    radial-gradient(ellipse at 60% 50%, #2a1a14 0%, transparent 60%),
    linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
}
.scn-friction-in-war .shaft-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1410 0%, #0a0808 100%);
  animation: s4-shaft 15s ease-in-out infinite alternate;
}
.scn-friction-in-war .gear-large {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 50px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px #000;
  clip-path: polygon(50% 0%, 55% 15%, 70% 10%, 80% 25%, 95% 20%, 100% 40%, 85% 45%, 90% 60%, 75% 65%, 70% 80%, 55% 75%, 50% 95%, 45% 75%, 30% 80%, 25% 65%, 10% 60%, 15% 45%, 0% 40%, 5% 20%, 20% 25%, 30% 10%, 45% 15%);
  animation: s4-gear1 6s linear infinite;
}
.scn-friction-in-war .gear-small {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  clip-path: polygon(50% 0%, 55% 15%, 70% 10%, 80% 25%, 95% 20%, 100% 40%, 85% 45%, 90% 60%, 75% 65%, 70% 80%, 55% 75%, 50% 95%, 45% 75%, 30% 80%, 25% 65%, 10% 60%, 15% 45%, 0% 40%, 5% 20%, 20% 25%, 30% 10%, 45% 15%);
  animation: s4-gear2 4s linear infinite reverse;
}
.scn-friction-in-war .chain {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 20px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px);
  transform: rotate(30deg);
  animation: s4-chain 2s linear infinite;
}
.scn-friction-in-war .shadow-soldier {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(135deg, #1a1008 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: s4-soldier 5s ease-in-out infinite alternate;
}
.scn-friction-in-war .steam {
  position: absolute; bottom: 50%; left: 25%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,80,60,.3), transparent);
  filter: blur(8px);
  animation: s4-steam 8s ease-out infinite;
}
.scn-friction-in-war .spark-burst {
  position: absolute; bottom: 20%; left: 60%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c08040, transparent);
  border-radius: 50%;
  box-shadow: 0 0 8px #c08040;
  animation: s4-spark 0.6s ease-in-out infinite alternate;
}
@keyframes s4-shaft { 0% { opacity: .7; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.02) } 100% { opacity: .8; transform: scaleX(0.98) } }
@keyframes s4-gear1 { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes s4-gear2 { 0% { transform: rotate(0deg) } 100% { transform: rotate(-360deg) } }
@keyframes s4-chain { 0% { transform: rotate(30deg) translateX(0) } 100% { transform: rotate(30deg) translateX(10px) } }
@keyframes s4-soldier { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes s4-steam { 0% { transform: translateY(0) scaleY(1); opacity: .5 } 100% { transform: translateY(-60px) scaleY(2); opacity: 0 } }
@keyframes s4-spark { 0% { opacity: .2; transform: scale(1) } 100% { opacity: 1; transform: scale(2.5) } }

.scn-item-infantry-chief-arm {
  background: linear-gradient(180deg, #2b1e12 0%, #3a2a1a 40%, #1e1410 100%),
              radial-gradient(ellipse at 30% 70%, #4a3520 0%, transparent 70%);
}
.scn-item-infantry-chief-arm .wall-left {
  position: absolute; left: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, #1a1210 0%, #2a1e14 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,.5);
}
.scn-item-infantry-chief-arm .wall-right {
  position: absolute; right: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(270deg, #1a1210 0%, #2a1e14 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,.5);
}
.scn-item-infantry-chief-arm .floor-board {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
}
.scn-item-infantry-chief-arm .table-map {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 45%;
  background: linear-gradient(135deg, #6a5030 0%, #4a3820 50%, #3a2818 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 2px 6px rgba(255,200,100,.1);
  transform: perspective(800px) rotateX(15deg);
}
.scn-item-infantry-chief-arm .candle-glow {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 30px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffd080 0%, #b87030 60%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #b87030, 0 0 80px 40px rgba(184,112,48,.3);
  animation: inc-candle 3s ease-in-out infinite alternate;
}
.scn-item-infantry-chief-arm .fig-infantry {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: inc-figwalk 6s ease-in-out infinite;
}
.scn-item-infantry-chief-arm .fig-cavalry {
  position: absolute; bottom: 22%; left: 48%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: inc-figwalk 6s ease-in-out infinite 2s;
}
.scn-item-infantry-chief-arm .fig-artillery {
  position: absolute; bottom: 22%; left: 65%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: inc-figwalk 6s ease-in-out infinite 4s;
}
.scn-item-infantry-chief-arm .quill-ink {
  position: absolute; bottom: 42%; left: 42%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #6a5040 0%, #2a1a0e 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: inc-quill 8s ease-in-out infinite;
}
@keyframes inc-candle {
  0% { transform: translate(-50%, 50%) scaleY(1); opacity: .9; }
  50% { transform: translate(-50%, 50%) scaleY(1.15); opacity: 1; }
  100% { transform: translate(-50%, 50%) scaleY(.95); opacity: .85; }
}
@keyframes inc-figwalk {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes inc-quill {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

.scn-order-of-battle-balance {
  background: linear-gradient(180deg, #312618 0%, #1e140e 50%, #0e0a06 100%),
              radial-gradient(ellipse at 40% 60%, #3a2818 0%, transparent 70%);
}
.scn-order-of-battle-balance .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #261d12 0%, #1a1210 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-order-of-battle-balance .desk-plane {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2818 100%);
  border-radius: 6px;
  transform: perspective(600px) rotateX(10deg);
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.scn-order-of-battle-balance .scroll-paper {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(135deg, #b8a070 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  transform: rotate(-2deg);
}
.scn-order-of-battle-balance .candle-flame {
  position: absolute; bottom: 52%; left: 48%; width: 14px; height: 22px;
  background: radial-gradient(circle, #ffc060 0%, #b08030 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #b08030, 0 0 60px 20px rgba(176,128,48,.2);
  animation: obb-candle 2.5s ease-in-out infinite alternate;
}
.scn-order-of-battle-balance .fig-commander {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: obb-commander 7s ease-in-out infinite;
}
.scn-order-of-battle-balance .stack-books {
  position: absolute; bottom: 22%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,.4);
}
.scn-order-of-battle-balance .divider-line {
  position: absolute; bottom: 40%; left: 20%; width: 2px; height: 16%;
  background: linear-gradient(180deg, #6a5040 0%, transparent 100%);
  transform: rotate(10deg);
  opacity: .6;
  animation: obb-line 10s ease-in-out infinite;
}
.scn-order-of-battle-balance .hierarchy-lines {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 1px;
  background: linear-gradient(90deg, transparent, #8a7050, transparent);
  opacity: .4;
  animation: obb-line 12s ease-in-out infinite reverse;
}
@keyframes obb-candle {
  0% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(.9); opacity: .75; }
}
@keyframes obb-commander {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(6px) rotate(2deg); }
  66% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes obb-line {
  0% { opacity: .3; transform: translateY(0); }
  50% { opacity: .7; transform: translateY(-2px); }
  100% { opacity: .3; transform: translateY(0); }
}

.scn-general-disposition-security {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2818 40%, #1e1410 100%),
              radial-gradient(ellipse at 20% 50%, #4a3520 0%, transparent 70%);
}
.scn-general-disposition-security .tent-canvas {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
.scn-general-disposition-security .tent-pole {
  position: absolute; bottom: 20%; left: 50%; width: 4px; height: 65%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 2px;
}
.scn-general-disposition-security .ground-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-general-disposition-security .camp-fire {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(circle, #ffa040 0%, #c06020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #c06020, 0 0 100px 40px rgba(192,96,32,.2);
  animation: gds-fire 3s ease-in-out infinite alternate;
}
.scn-general-disposition-security .fig-sentry {
  position: absolute; bottom: 25%; left: 60%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gds-sentry 8s ease-in-out infinite;
}
.scn-general-disposition-security .map-table {
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: perspective(400px) rotateX(20deg);
}
.scn-general-disposition-security .flag-pennant {
  position: absolute; bottom: 68%; left: 30%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #8a6040 0%, #c08050 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%);
  transform: rotate(-10deg);
  animation: gds-flag 6s ease-in-out infinite alternate;
}
.scn-general-disposition-security .supply-crate {
  position: absolute; bottom: 18%; left: 70%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,.4);
  animation: gds-crate 12s ease-in-out infinite;
}
@keyframes gds-fire {
  0% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(.9); opacity: .7; }
}
@keyframes gds-sentry {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gds-flag {
  0% { transform: rotate(-10deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.1); }
  100% { transform: rotate(-12deg) scaleX(.9); }
}
@keyframes gds-crate {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

.scn-advanced-corps-functions {
  background: linear-gradient(180deg, #1a1210 0%, #0e0a06 60%, #1e1410 100%),
              radial-gradient(ellipse at 60% 30%, #2a1e14 0%, transparent 70%);
}
.scn-advanced-corps-functions .night-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0e0a12 0%, #1a1210 100%);
  animation: acf-sky 15s ease-in-out infinite alternate;
}
.scn-advanced-corps-functions .hill-ridge {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  clip-path: polygon(0% 100%, 15% 60%, 30% 75%, 45% 50%, 60% 70%, 75% 55%, 90% 65%, 100% 80%, 100% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-advanced-corps-functions .fig-runner {
  position: absolute; bottom: 25%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acf-runner 2s ease-in-out infinite;
}
.scn-advanced-corps-functions .lantern-glow {
  position: absolute; bottom: 35%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b87030 70%);
  border-radius: 40%;
  box-shadow: 0 0 30px 10px #b87030, 0 0 60px 20px rgba(184,112,48,.4);
  animation: acf-lantern 4s ease-in-out infinite alternate;
}
.scn-advanced-corps-functions .rock-outcrop {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1e1410 100%);
  clip-path: polygon(0% 100%, 30% 20%, 70% 30%, 100% 10%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: acf-rocks 10s ease-in-out infinite;
}
.scn-advanced-corps-functions .dust-clouds {
  position: absolute; bottom: 20%; left: 10%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(60,40,20,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: acf-dust 8s linear infinite alternate;
}
.scn-advanced-corps-functions .blade-pistol {
  position: absolute; bottom: 30%; left: 70%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  box-shadow: 0 0 6px rgba(0,0,0,.4);
  animation: acf-blade 3s ease-in-out infinite alternate;
}
@keyframes acf-sky {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .5; }
}
@keyframes acf-runner {
  0% { transform: translateX(0) rotate(-5deg) scaleY(1); }
  25% { transform: translateX(12px) rotate(5deg) scaleY(1.05); }
  50% { transform: translateX(24px) rotate(-5deg) scaleY(1); }
  75% { transform: translateX(36px) rotate(5deg) scaleY(0.95); }
  100% { transform: translateX(48px) rotate(-5deg) scaleY(1); }
}
@keyframes acf-lantern {
  0% { transform: translateY(0) scaleY(1); opacity: .8; }
  50% { transform: translateY(-4px) scaleY(1.2); opacity: 1; }
  100% { transform: translateY(0) scaleY(.9); opacity: .7; }
}
@keyframes acf-rocks {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes acf-dust {
  0% { transform: translateX(0); opacity: .3; }
  100% { transform: translateX(30px); opacity: .6; }
}
@keyframes acf-blade {
  0% { transform: rotate(-30deg) translateX(0); }
  100% { transform: rotate(-10deg) translateX(2px); }
}

.scn-defensive-lines-ineffective { background: linear-gradient(180deg, #2a1e12 0%, #3a2818 50%, #1e140e 100%), radial-gradient(ellipse at 50% 30%, #4a3220 0%, transparent 70%); }
.scn-defensive-lines-ineffective .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e12 0%, #1e140e 100%); animation: def-bg-pulse 12s ease-in-out infinite alternate; }
.scn-defensive-lines-ineffective .table { position:absolute; bottom:10%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-defensive-lines-ineffective .map { position:absolute; bottom:22%; left:15%; right:15%; height:30%; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(2deg); }
.scn-defensive-lines-ineffective .fort-line { position:absolute; bottom:35%; left:20%; right:20%; height:4px; background: linear-gradient(90deg, transparent 0%, #8a6040 20%, #8a6040 80%, transparent 100%); border-radius: 2px; animation: def-scan 8s ease-in-out infinite; }
.scn-defensive-lines-ineffective .troop-a { position:absolute; bottom:30%; left:25%; width:8px; height:16px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: def-march 4s ease-in-out infinite; }
.scn-defensive-lines-ineffective .troop-b { position:absolute; bottom:30%; left:55%; width:8px; height:16px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: def-march 4s ease-in-out infinite 2s; }
.scn-defensive-lines-ineffective .candle { position:absolute; bottom:38%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-defensive-lines-ineffective .candle-glow { position:absolute; bottom:48%; left:48%; width:20px; height:20px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 80%); border-radius: 50%; animation: def-flicker 0.5s ease-in-out infinite alternate; }
@keyframes def-bg-pulse { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes def-scan { 0% { transform: scaleX(0.8); opacity:0.6 } 50% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0.9); opacity:0.7 } }
@keyframes def-march { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes def-flicker { 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) } }

.scn-mountain-defense-limitations { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, transparent 70%); }
.scn-mountain-defense-limitations .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: mtn-wobble 20s ease-in-out infinite alternate; }
.scn-mountain-defense-limitations .window-frame { position:absolute; top:10%; left:20%; right:20%; bottom:40%; border: 6px solid #3a2a1a; border-radius: 4% 4% 2% 2%; background: linear-gradient(180deg, #4a3a5a 0%, #2a2a4a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-mountain-defense-limitations .mtn-peak-left { position:absolute; top:10%; left:20%; width:35%; height:50%; background: linear-gradient(135deg, #4a3a5a 0%, #2a2a4a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: translateX(-10%); animation: mtn-sway 15s ease-in-out infinite; }
.scn-mountain-defense-limitations .mtn-peak-right { position:absolute; top:10%; right:20%; width:35%; height:55%; background: linear-gradient(225deg, #3a3a5a 0%, #1a1a3a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform: translateX(10%); animation: mtn-sway 15s ease-in-out infinite 5s; }
.scn-mountain-defense-limitations .desk { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-mountain-defense-limitations .officer { position:absolute; bottom:30%; left:15%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtn-stand 6s ease-in-out infinite; }
.scn-mountain-defense-limitations .lantern { position:absolute; bottom:35%; left:70%; width:10px; height:14px; background: linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,.4); }
.scn-mountain-defense-limitations .lantern-glow { position:absolute; bottom:45%; left:70%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 80%); border-radius: 50%; animation: mtn-glow 1.5s ease-in-out infinite alternate; }
@keyframes mtn-wobble { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mtn-sway { 0% { transform: translateX(-10%) rotate(0deg) } 50% { transform: translateX(-10%) rotate(2deg) } 100% { transform: translateX(-10%) rotate(-1deg) } }
@keyframes mtn-stand { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mtn-glow { 0% { opacity:0.6; transform:translate(-50%,-50%) scale(0.9) } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.15) } 100% { opacity:0.7; transform:translate(-50%,-50%) scale(1) } }

.scn-river-defence-forms { background: linear-gradient(180deg, #1e1e2a 0%, #2e2e3a 50%, #1e1e2a 100%), radial-gradient(ellipse at 50% 20%, #3e3e4a 0%, transparent 70%); }
.scn-river-defence-forms .room-floor { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e3a 0%, #1a1a22 100%); animation: rvr-dim 10s ease-in-out infinite alternate; }
.scn-river-defence-forms .large-map { position:absolute; bottom:12%; left:8%; right:8%; height:55%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2%; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: rotate(-3deg); }
.scn-river-defence-forms .river { position:absolute; bottom:38%; left:15%; right:15%; height:6%; background: linear-gradient(90deg, transparent 0%, #2a4a5a 20%, #2a4a5a 80%, transparent 100%); border-radius: 20% 20% 0 0; animation: rvr-flow 6s ease-in-out infinite; }
.scn-river-defence-forms .bridge { position:absolute; bottom:40%; left:45%; right:25%; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: skewX(-5deg); animation: rvr-bridge 8s ease-in-out infinite; }
.scn-river-defence-forms .corps-left { position:absolute; bottom:30%; left:20%; width:12px; height:22px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rvr-patrol 5s ease-in-out infinite; }
.scn-river-defence-forms .corps-right { position:absolute; bottom:30%; left:60%; width:12px; height:22px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rvr-patrol 5s ease-in-out infinite 2.5s; }
.scn-river-defence-forms .inkwell { position:absolute; bottom:45%; left:80%; width:10px; height:14px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-river-defence-forms .quill { position:absolute; bottom:50%; left:82%; width:2px; height:20px; background: linear-gradient(180deg, #d0c0a0 0%, #8a7a5a 100%); transform: rotate(30deg); transform-origin: bottom center; border-radius: 50%; animation: rvr-quill 4s ease-in-out infinite alternate; }
@keyframes rvr-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rvr-flow { 0% { transform: scaleX(0.9); opacity:0.7 } 50% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0.95); opacity:0.8 } }
@keyframes rvr-bridge { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-1px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes rvr-patrol { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-2deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes rvr-quill { 0% { transform: rotate(25deg) scaleY(1) } 50% { transform: rotate(35deg) scaleY(1.05) } 100% { transform: rotate(25deg) scaleY(1) } }

.scn-inundations-as-defence { background: linear-gradient(180deg, #1a2a2e 0%, #2a3a3e 50%, #1a2a2e 100%), radial-gradient(ellipse at 50% 60%, #3a4a4e 0%, transparent 70%); }
.scn-inundations-as-defence .window-glass { position:absolute; inset:5% 10% 30% 10%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 2%; animation: inu-glass 15s ease-in-out infinite alternate; }
.scn-inundations-as-defence .windowsill { position:absolute; bottom:30%; left:8%; right:8%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-inundations-as-defence .water-outside { position:absolute; bottom:5%; left:8%; right:8%; height:35%; background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%); border-radius: 0 0 4% 4%; animation: inu-water 8s ease-in-out infinite; }
.scn-inundations-as-defence .dyke { position:absolute; bottom:20%; left:45%; width:10%; height:6%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: inu-dyke 10s ease-in-out infinite; }
.scn-inundations-as-defence .distant-tree { position:absolute; bottom:32%; left:22%; width:12px; height:30px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inu-tree 20s ease-in-out infinite; }
.scn-inundations-as-defence .puddle-reflect { position:absolute; bottom:4%; left:20%; right:20%; height:2%; background: linear-gradient(90deg, transparent 0%, #8a9aaa 30%, #8a9aaa 70%, transparent 100%); filter: blur(2px); border-radius: 50%; animation: inu-reflect 5s ease-in-out infinite alternate; }
.scn-inundations-as-defence .candle-on-sill { position:absolute; bottom:32%; left:68%; width:6px; height:16px; background: linear-gradient(180deg, #e0c080 0%, #b08040 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-inundations-as-defence .flame-glow { position:absolute; bottom:44%; left:68%; width:16px; height:16px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 80%); border-radius: 50%; animation: inu-flame 0.8s ease-in-out infinite alternate; }
@keyframes inu-glass { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes inu-water { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(-2px); opacity:1 } 100% { transform: translateY(0); opacity:.85 } }
@keyframes inu-dyke { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes inu-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes inu-reflect { 0% { opacity:0.6; transform: scaleY(0.8) } 50% { opacity:1; transform: scaleY(1) } 100% { opacity:0.7; transform: scaleY(0.9) } }
@keyframes inu-flame { 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) } }

/* Scene: surprise-and-stratagem (tense interior) */
.scn-surprise-and-stratagem {
  background:
    linear-gradient(180deg, #1c1a2a 0%, #2a2438 40%, #3f3150 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-surprise-and-stratagem .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2440 0%, #241e34 100%);
  border-bottom: 2px solid #3a2a44;
  animation: ss-wall 12s ease-in-out infinite alternate;
}
.scn-surprise-and-stratagem .floor {
  position: absolute; left:0; right:0; bottom:0; height:50%;
  background: linear-gradient(180deg, #3a2e3e 0%, #1e1624 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-surprise-and-stratagem .candle {
  position: absolute; bottom:38%; left:62%; width:12px; height:40px;
  background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: ss-candle 4s ease-in-out infinite;
}
.scn-surprise-and-stratagem .flame {
  position: absolute; bottom:62%; left:62%; width:10px; height:16px;
  background: radial-gradient(circle at 50% 20%, #ffe080 0%, #d06020 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(208,96,32,0.6), 0 0 40px 16px rgba(208,96,32,0.3);
  transform: translateX(-50%);
  animation: ss-flame 1.5s ease-in-out infinite alternate;
}
.scn-surprise-and-stratagem .desk {
  position: absolute; bottom:20%; left:30%; width:200px; height:18%;
  background: linear-gradient(180deg, #5a4a30 0%, #2e2214 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-surprise-and-stratagem .map {
  position: absolute; bottom:28%; left:35%; width:120px; height:70px;
  background: linear-gradient(135deg, #c8b080 0%, #a08850 50%, #b09860 100%);
  border-radius: 4px;
  transform: rotate(-3deg);
  animation: ss-map 8s ease-in-out infinite alternate;
}
.scn-surprise-and-stratagem .hand {
  position: absolute; bottom:30%; left:45%; width:22px; height:30px;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: 60% 100%;
  animation: ss-hand 5s ease-in-out infinite;
}
.scn-surprise-and-stratagem .shadow-fig {
  position: absolute; bottom:45%; right:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a16 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.6;
  animation: ss-shadow 3s ease-in-out infinite alternate;
}
@keyframes ss-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ss-candle { 
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.95) translateY(1px); }
  100% { transform: scaleX(1.02) translateY(0); }
}
@keyframes ss-flame {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity:0.9; }
  50% { transform: translateX(-50%) scale(1.2,1.5) rotate(5deg); opacity:1; }
  100% { transform: translateX(-50%) scale(0.9,1.3) rotate(-3deg); opacity:0.85; }
}
@keyframes ss-map { 0% { transform: rotate(-3deg); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes ss-hand { 
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(5deg) translateX(4px); }
  66% { transform: rotate(-2deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ss-shadow { 0% { transform: translateX(0) scale(1); opacity:0.6; } 100% { transform: translateX(-10px) scale(1.05); opacity:0.8; } }

/* Scene: napoleon-continuous-action (tense marching) */
.scn-napoleon-continuous-action {
  background:
    linear-gradient(180deg, #2a2638 0%, #3a3048 30%, #504050 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a44 0%, transparent 70%);
}
.scn-napoleon-continuous-action .sky {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a344a 0%, #2a2440 100%);
  border-bottom: 2px solid #4a3a50;
  animation: nc-sky 15s ease-in-out infinite alternate;
}
.scn-napoleon-continuous-action .ground {
  position: absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #3a3440 0%, #1e1a28 100%);
  border-radius: 20% 20% 0 0;
}
.scn-napoleon-continuous-action .soldier-1 {
  position: absolute; bottom:35%; left:15%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: nc-march 4s ease-in-out infinite;
}
.scn-napoleon-continuous-action .soldier-2 {
  position: absolute; bottom:35%; left:35%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: nc-march 4s ease-in-out infinite 0.8s;
}
.scn-napoleon-continuous-action .soldier-3 {
  position: absolute; bottom:35%; left:55%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: nc-march 4s ease-in-out infinite 1.6s;
}
.scn-napoleon-continuous-action .flag {
  position: absolute; bottom:40%; right:20%; width:4px; height:60px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3a20 100%);
  border-radius: 4px;
}
.scn-napoleon-continuous-action .muskets {
  position: absolute; bottom:36%; left:10%; right:10%; height:40%;
  background: repeating-linear-gradient(90deg, #3a2e20 0px 2px, transparent 2px 12px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 70%, transparent 100%);
}
@keyframes nc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nc-march { 
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: item-battle-trophies-prisoners (tense close-up) */
.scn-item-battle-trophies-prisoners {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a2230 40%, #3a2a3a 100%),
    radial-gradient(ellipse at 50% 70%, #8a5a3a 0%, transparent 60%);
}
.scn-item-battle-trophies-prisoners .bg-dark {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #1a1620 0%, #0e0c14 100%);
  opacity:0.5;
}
.scn-item-battle-trophies-prisoners .pile-base {
  position: absolute; bottom:15%; left:25%; width:50%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #1e1620 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
}
.scn-item-battle-trophies-prisoners .helmet-1 {
  position: absolute; bottom:40%; left:28%; width:28px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-15deg);
  animation: bt-helm 6s ease-in-out infinite alternate;
}
.scn-item-battle-trophies-prisoners .helmet-2 {
  position: absolute; bottom:38%; left:48%; width:28px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(20deg);
  animation: bt-helm 6s ease-in-out infinite alternate-reverse;
}
.scn-item-battle-trophies-prisoners .sword {
  position: absolute; bottom:45%; left:60%; width:4px; height:40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a30 100%);
  transform: rotate(30deg);
  border-radius: 2px;
}
.scn-item-battle-trophies-prisoners .shield {
  position: absolute; bottom:30%; left:38%; width:30px; height:34px;
  background: radial-gradient(circle at 50% 30%, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(10deg);
  animation: bt-shield 8s ease-in-out infinite alternate;
}
.scn-item-battle-trophies-prisoners .prisoner {
  position: absolute; bottom:25%; right:20%; width:18px; height:45px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bt-prisoner 5s ease-in-out infinite;
}
.scn-item-battle-trophies-prisoners .chain {
  position: absolute; bottom:48%; right:22%; width:20px; height:2px;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px 2px, transparent 2px 6px);
  transform: rotate(-20deg);
  animation: bt-chain 3s ease-in-out infinite alternate;
}
.scn-item-battle-trophies-prisoners .glow-fall {
  position: absolute; top:5%; left:5%; width:100px; height:4px;
  background: linear-gradient(180deg, rgba(208,160,80,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: bt-glowfall 12s linear infinite;
}
@keyframes bt-helm { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes bt-shield { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes bt-prisoner { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bt-chain { 0% { transform: rotate(-20deg) scaleX(1); } 100% { transform: rotate(-15deg) scaleX(1.2); } }
@keyframes bt-glowfall { 0% { transform: translateY(-20px); opacity:0.6; } 100% { transform: translateY(100vh); opacity:0; } }

/* Scene: battle-decision-moment (tense vertical shaft) */
.scn-battle-decision-moment {
  background:
    linear-gradient(180deg, #1a1a28 0%, #2a2440 30%, #3a2a44 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a50 0%, transparent 70%);
}
.scn-battle-decision-moment .bg-deep {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #12101e 0%, #0a0812 100%);
  opacity:0.4;
}
.scn-battle-decision-moment .sky-glow {
  position: absolute; top:0; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 50% 0%, #6a4a3a 0%, transparent 60%);
  animation: bd-glow 8s ease-in-out infinite alternate;
}
.scn-battle-decision-moment .commander {
  position: absolute; bottom:25%; left:30%; width:24px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bd-comm 6s ease-in-out infinite;
}
.scn-battle-decision-moment .officer {
  position: absolute; bottom:25%; right:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #141420 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bd-officer 6s ease-in-out infinite 1s;
}
.scn-battle-decision-moment .flagpole {
  position: absolute; bottom:20%; left:50%; width:4px; height:80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-battle-decision-moment .flag {
  position: absolute; bottom:70%; left:50%; width:20px; height:30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 0 4px 4px 0;
  transform-origin: left center;
  animation: bd-flag 4s ease-in-out infinite alternate;
}
.scn-battle-decision-moment .dust {
  position: absolute; bottom:20%; left:20%; right:20%; height:20%;
  background: radial-gradient(ellipse at 30% 80%, rgba(80,60,40,0.3) 0%, transparent 60%);
  animation: bd-dust 10s linear infinite;
}
.scn-battle-decision-moment .flash {
  position: absolute; top:10%; left:40%; width:6px; height:6px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.1) 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.3);
  animation: bd-flash 3s ease-in-out infinite;
}
@keyframes bd-glow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bd-comm { 0% { transform: translateY(0) rotate(-3deg); } 33% { transform: translateY(-2px) rotate(0deg); } 66% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bd-officer { 0% { transform: translateY(0) rotate(2deg); } 33% { transform: translateY(-2px) rotate(0deg); } 66% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes bd-flag { 0% { transform: rotate(-15deg); } 100% { transform: rotate(20deg); } }
@keyframes bd-dust { 0% { transform: scale(1) translateX(0); opacity:0.4; } 50% { transform: scale(1.2) translateX(10px); opacity:0.6; } 100% { transform: scale(1) translateX(0); opacity:0.4; } }
@keyframes bd-flash { 0% { transform: scale(1); opacity:0; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(1); opacity:0; } }

.scn-defensive-stronger-form {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a281e 100%) padding-box,
    radial-gradient(ellipse at 50% 30%, #3a281e 0%, #0d0806 60%) padding-box;
}
.scn-defensive-stronger-form .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3324 0%, #2a1e14 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: dsf-wall 8s ease-in-out infinite alternate;
}
.scn-defensive-stronger-form .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-defensive-stronger-form .table {
  position: absolute; bottom: 18%; left: 50%; width: 45%; height: 8%;
  transform: translate(-50%, 0) skewX(-5deg);
  background: linear-gradient(180deg, #5a3a24 0%, #3a2212 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: dsf-table 6s ease-in-out infinite;
}
.scn-defensive-stronger-form .map {
  position: absolute; bottom: 22%; left: 28%; width: 32%; height: 4%;
  background: linear-gradient(135deg, #c8a87a 0%, #a08050 50%, #c8a87a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dsf-map 10s ease-in-out infinite alternate;
}
.scn-defensive-stronger-form .candle {
  position: absolute; bottom: 26%; left: 55%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%);
  border-radius: 2px 2px 0 0;
  animation: dsf-candle 3s ease-in-out infinite;
}
.scn-defensive-stronger-form .glow {
  position: absolute; bottom: 26%; left: 55%; width: 50px; height: 50px;
  transform: translate(-50%, 30%);
  background: radial-gradient(circle, rgba(240,200,120,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: dsf-glow 2s ease-in-out infinite alternate;
}
.scn-defensive-stronger-form .general {
  position: absolute; bottom: 16%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsf-figure 4s ease-in-out infinite alternate;
}
.scn-defensive-stronger-form .shadow-figure {
  position: absolute; bottom: 14%; left: 60%; width: 30px; height: 50px;
  background: rgba(20,12,8,0.7);
  border-radius: 40% 60% 0 0 / 80% 60% 0 0;
  filter: blur(2px);
  animation: dsf-shadow 6s ease-in-out infinite alternate;
}
@keyframes dsf-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dsf-table { 0%, 100% { transform: translate(-50%, 0) skewX(-5deg); } 50% { transform: translate(-48%, -1px) skewX(-5deg); } }
@keyframes dsf-map { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes dsf-candle { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.1) translateY(-1px); } }
@keyframes dsf-glow { 0% { opacity: 0.7; transform: translate(-50%, 30%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%, 30%) scale(1.1); } }
@keyframes dsf-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(0deg); } }
@keyframes dsf-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-peoples-total-influence {
  background: 
    linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #1a1612 100%) padding-box,
    radial-gradient(ellipse at 30% 70%, #2a221c 0%, #0a0806 70%) padding-box;
}
.scn-peoples-total-influence .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2e24 0%, #1a1612 100%);
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.5);
  animation: pti-room 12s ease-in-out infinite alternate;
}
.scn-peoples-total-influence .hearth {
  position: absolute; bottom: 25%; left: 50%; width: 40%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-peoples-total-influence .fire {
  position: absolute; bottom: 28%; left: 50%; width: 20%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e07030 0%, #c85820 30%, #a83810 70%, #603010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(200,80,30,0.4);
  animation: pti-fire 2s ease-in-out infinite alternate;
}
.scn-peoples-total-influence .crowd-1 {
  position: absolute; bottom: 20%; left: 10%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pti-figure 6s ease-in-out infinite;
}
.scn-peoples-total-influence .crowd-2 {
  position: absolute; bottom: 22%; left: 25%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1612 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pti-figure 7s ease-in-out infinite 1s;
}
.scn-peoples-total-influence .crowd-3 {
  position: absolute; bottom: 20%; right: 15%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1612 0%, #2a1e14 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pti-figure 8s ease-in-out infinite 2s;
}
.scn-peoples-total-influence .smoke {
  position: absolute; top: 5%; left: 40%; width: 60%; height: 30%;
  background: linear-gradient(180deg, rgba(60,40,20,0.2) 0%, transparent 80%);
  filter: blur(8px);
  border-radius: 50%;
  animation: pti-smoke 20s linear infinite;
}
.scn-peoples-total-influence .ember {
  position: absolute; bottom: 30%; left: 48%; width: 3px; height: 3px;
  background: #f08040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #f08040;
  animation: pti-ember 3s ease-in-out infinite alternate;
}
@keyframes pti-room { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pti-fire { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; } 50% { transform: translateX(-50%) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7; } }
@keyframes pti-figure { 0%, 100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes pti-smoke { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(-20px) scale(1.2); opacity: 0.2; } 100% { transform: translateX(-40px) scale(1.5); opacity: 0; } }
@keyframes pti-ember { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(5px,-5px) scale(0.5); opacity: 0; } }

.scn-item-fortresses-essential-supports {
  background: 
    linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #0d0806 100%) padding-box,
    radial-gradient(ellipse at 50% 0%, #3a2a1e 0%, #0a0604 80%) padding-box;
}
.scn-item-fortresses-essential-supports .bg-stone {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a221c 0px, #2a221c 3px, #1a1612 3px, #1a1612 6px);
  opacity: 0.3;
  animation: fes-stone 30s linear infinite;
}
.scn-item-fortresses-essential-supports .wall-left {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #2a1e14 0%, transparent 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: fes-wall 8s ease-in-out infinite alternate;
}
.scn-item-fortresses-essential-supports .wall-right {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #2a1e14 0%, transparent 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
  animation: fes-wall 8s ease-in-out infinite alternate-reverse;
}
.scn-item-fortresses-essential-supports .arrow-slit {
  position: absolute; bottom: 50%; left: 12%; width: 16px; height: 4px;
  background: #1a1410;
  border-radius: 2px;
  box-shadow: 0 0 8px 4px rgba(200,160,100,0.3);
  animation: fes-slit 5s ease-in-out infinite alternate;
}
.scn-item-fortresses-essential-supports .torch {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: fes-torch 3s ease-in-out infinite;
}
.scn-item-fortresses-essential-supports .torch-glow {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 60px;
  transform: translate(-50%, -20%);
  background: radial-gradient(circle, rgba(200,100,40,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: fes-glow 2s ease-in-out infinite alternate;
}
.scn-item-fortresses-essential-supports .guard {
  position: absolute; bottom: 15%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 100%);
  border-radius: 40% 60% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fes-guard 4s ease-in-out infinite alternate;
}
.scn-item-fortresses-essential-supports .shadow-guard {
  position: absolute; bottom: 14%; left: 35%; width: 24px; height: 40px;
  background: rgba(10,6,4,0.6);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
  filter: blur(2px);
  animation: fes-shadow 5s ease-in-out infinite alternate;
}
@keyframes fes-stone { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes fes-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fes-slit { 0% { box-shadow: 0 0 4px 2px rgba(200,160,100,0.2); } 100% { box-shadow: 0 0 12px 6px rgba(200,160,100,0.5); } }
@keyframes fes-torch { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-1px); } }
@keyframes fes-glow { 0% { opacity: 0.6; transform: translate(-50%, -20%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%, -20%) scale(1.1); } }
@keyframes fes-guard { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes fes-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.3); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

.scn-fortress-situation-priority {
  background: 
    linear-gradient(180deg, #1a1612 0%, #2a221c 40%, #0a0806 100%) padding-box,
    radial-gradient(ellipse at 50% 20%, #2a221c 0%, #0a0806 60%) padding-box;
}
.scn-fortress-situation-priority .bg-study {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: fsp-bg 12s ease-in-out infinite alternate;
}
.scn-fortress-situation-priority .desk {
  position: absolute; bottom: 10%; left: 50%; width: 50%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: fsp-desk 7s ease-in-out infinite;
}
.scn-fortress-situation-priority .map-wall {
  position: absolute; bottom: 40%; left: 12%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #b8a87a 0%, #988858 50%, #b8a87a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  animation: fsp-map 15s ease-in-out infinite alternate;
}
.scn-fortress-situation-priority .candle-desk {
  position: absolute; bottom: 16%; left: 60%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%);
  border-radius: 2px;
  animation: fsp-candle 3s ease-in-out infinite;
}
.scn-fortress-situation-priority .candle-glow {
  position: absolute; bottom: 16%; left: 60%; width: 40px; height: 40px;
  transform: translate(-50%, 30%);
  background: radial-gradient(circle, rgba(240,200,120,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: fsp-glow 3s ease-in-out infinite alternate;
}
.scn-fortress-situation-priority .chair {
  position: absolute; bottom: 6%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsp-chair 8s ease-in-out infinite alternate;
}
.scn-fortress-situation-priority .bookshelf {
  position: absolute; bottom: 40%; right: 10%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  border-radius: 2px;
  animation: fsp-shelf 10s ease-in-out infinite alternate;
}
@keyframes fsp-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fsp-desk { 0%, 100% { transform: translateX(-50%); } 50% { transform: translateX(-48%) translateY(-1px); } }
@keyframes fsp-map { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.03); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes fsp-candle { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes fsp-glow { 0% { opacity: 0.6; transform: translate(-50%, 30%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%, 30%) scale(1.1); } }
@keyframes fsp-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fsp-shelf { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-popular-war-reaction {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #2c1a1a 0%, transparent 80%);
}
.scn-popular-war-reaction .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: pwr-ceiling 15s ease-in-out infinite alternate;
}
.scn-popular-war-reaction .wall {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-popular-war-reaction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
}
.scn-popular-war-reaction .table {
  position: absolute; bottom: 28%; left: 50%; width: 140px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-popular-war-reaction .map {
  position: absolute; bottom: 36%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  animation: pwr-map 6s ease-in-out infinite;
}
.scn-popular-war-reaction .candle {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #d4a040 0%, #b08030 50%, #806020 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 20px 4px rgba(200,140,60,0.5);
  animation: pwr-candle 2s ease-in-out infinite;
}
.scn-popular-war-reaction .figure {
  position: absolute; bottom: 22%; left: 40%; 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: pwr-figure 8s ease-in-out infinite alternate;
}
.scn-popular-war-reaction .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: pwr-shadow 4s ease-in-out infinite alternate;
}
@keyframes pwr-ceiling { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pwr-map { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pwr-candle { 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.03); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes pwr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pwr-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.4; } }

.scn-war-takes-character-from-policy {
  background: linear-gradient(180deg, #1e1a2a 0%, #2a2230 50%, #1a1622 100%), radial-gradient(ellipse at 50% 0%, #2a2230 0%, transparent 70%);
}
.scn-war-takes-character-from-policy .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2230 0%, #1a1622 100%);
}
.scn-war-takes-character-from-policy .wall {
  position: absolute; top: 15%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2e40 0%, #221a28 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
}
.scn-war-takes-character-from-policy .bookshelf {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a50 0%, #2a1a30 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wtc-shelf 20s ease-in-out infinite alternate;
}
.scn-war-takes-character-from-policy .desk {
  position: absolute; bottom: 25%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a60 0%, #3a2a40 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-war-takes-character-from-policy .globe {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 28px;
  background: radial-gradient(circle, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(100,120,140,0.2);
  animation: wtc-globe 12s linear infinite;
}
.scn-war-takes-character-from-policy .quill {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: wtc-quill 6s ease-in-out infinite alternate;
}
.scn-war-takes-character-from-policy .lamp {
  position: absolute; bottom: 34%; left: 42%; width: 12px; height: 18px;
  background: radial-gradient(circle, #d0c0a0 0%, #b0a080 70%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 8px rgba(180,160,120,0.5);
  animation: wtc-lamp 4s ease-in-out infinite alternate;
}
.scn-war-takes-character-from-policy .chair {
  position: absolute; bottom: 16%; left: 44%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a40 0%, #221a28 100%);
  border-radius: 6px 6px 2px 2px;
  animation: wtc-chair 18s ease-in-out infinite alternate;
}
@keyframes wtc-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes wtc-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes wtc-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes wtc-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(180,160,120,0.4); } 50% { opacity: 1; box-shadow: 0 0 35px 10px rgba(180,160,120,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 25px 6px rgba(180,160,120,0.5); } }
@keyframes wtc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-defender-aims-exhaustion {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-defender-aims-exhaustion .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-defender-aims-exhaustion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
}
.scn-defender-aims-exhaustion .door {
  position: absolute; top: 25%; left: 20%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: dae-door 15s ease-in-out infinite alternate;
}
.scn-defender-aims-exhaustion .bedroll {
  position: absolute; bottom: 20%; left: 15%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-defender-aims-exhaustion .candle {
  position: absolute; bottom: 35%; left: 70%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c8a050 0%, #a07030 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 3px rgba(180,120,60,0.4);
  animation: dae-candle 3s ease-in-out infinite alternate;
}
.scn-defender-aims-exhaustion .defender {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dae-defender 10s ease-in-out infinite alternate;
}
.scn-defender-aims-exhaustion .shield {
  position: absolute; bottom: 36%; left: 38%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dae-shield 6s ease-in-out infinite alternate;
}
@keyframes dae-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes dae-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.04); } 100% { opacity: 0.85; transform: scaleY(1); } }
@keyframes dae-defender { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dae-shield { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-1812-invasion-criticism {
  background: linear-gradient(180deg, #1a0e0e 0%, #2a1a1a 50%, #0e0707 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-1812-invasion-criticism .tent-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 80% 90%, 20% 90%, 0% 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-1812-invasion-criticism .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
}
.scn-1812-invasion-criticism .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-1812-invasion-criticism .map {
  position: absolute; bottom: 26%; left: 50%; width: 90px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: inv-map 7s ease-in-out infinite;
}
.scn-1812-invasion-criticism .lantern {
  position: absolute; bottom: 32%; left: 44%; width: 12px; height: 18px;
  background: radial-gradient(circle, #d0a040 0%, #a07020 70%);
  border-radius: 4px;
  box-shadow: 0 0 25px 6px rgba(180,120,40,0.6);
  animation: inv-lantern 2s ease-in-out infinite alternate;
}
.scn-1812-invasion-criticism .commander {
  position: absolute; bottom: 16%; left: 35%; width: 24px; 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: inv-commander 5s ease-in-out infinite alternate;
}
.scn-1812-invasion-criticism .messenger {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: inv-messenger 4s ease-in-out infinite alternate;
}
@keyframes inv-map { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes inv-lantern { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px rgba(180,120,40,0.5); transform: scaleY(1); } 50% { opacity: 1; box-shadow: 0 0 35px 10px rgba(180,120,40,0.8); transform: scaleY(1.05); } 100% { opacity: 0.75; box-shadow: 0 0 25px 5px rgba(180,120,40,0.6); transform: scaleY(1); } }
@keyframes inv-commander { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes inv-messenger { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }

/* scene 1: fortress-weakens-enemy */
.scn-fortress-weakens-enemy {
  background: 
    linear-gradient(180deg, #2e2a24 0%, #1f1b17 40%, #14110d 100%),
    radial-gradient(ellipse at 50% 100%, #2a2520 0%, transparent 70%);
}
.scn-fortress-weakens-enemy .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a342c 0%, #2a2520 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: fwe-wall 20s ease-in-out infinite alternate;
}
.scn-fortress-weakens-enemy .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 0 0 10% 10%;
  animation: fwe-floor 12s ease-in-out infinite alternate;
}
.scn-fortress-weakens-enemy .table {
  position:absolute; bottom:22%; left:50%; width:120px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #4a3d30 0%, #302720 100%);
  border-radius:4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: fwe-table 8s ease-in-out infinite;
}
.scn-fortress-weakens-enemy .candle {
  position:absolute; bottom:40%; left:50%; width:10px; height:20px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #d9bf7a 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px #b09050;
  animation: fwe-candle 6s ease-in-out infinite;
}
.scn-fortress-weakens-enemy .flame {
  position:absolute; bottom:58%; left:50%; width:12px; height:18px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 24px 6px #ffa040, 0 0 48px 12px rgba(255,160,64,.3);
  animation: fwe-flame 2s ease-in-out infinite alternate;
}
.scn-fortress-weakens-enemy .map {
  position:absolute; bottom:24%; left:38%; width:80px; height:50px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: fwe-map 15s ease-in-out infinite alternate;
}
.scn-fortress-weakens-enemy .shadow {
  position:absolute; bottom:20%; left:20%; width:40px; height:60px;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(4px);
  animation: fwe-shadow 10s ease-in-out infinite alternate;
}
@keyframes fwe-wall   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fwe-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes fwe-table  { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes fwe-candle { 0%,100% { opacity:.9; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.02) } }
@keyframes fwe-flame  { 0% { opacity:.7; box-shadow: 0 0 18px 4px #ffa040, 0 0 36px 8px rgba(255,160,64,.3); transform: translateX(-50%) scaleY(0.9) } 100% { opacity:1; box-shadow: 0 0 32px 10px #ffb060, 0 0 60px 15px rgba(255,176,96,.5); transform: translateX(-50%) scaleY(1.1) } }
@keyframes fwe-map    { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.8; transform: scale(0.95) } 100% { opacity:.75; transform: scale(1) } }
@keyframes fwe-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }

/* scene 2: strategic-manoeuvring-contest */
.scn-strategic-manoeuvring-contest {
  background: 
    linear-gradient(180deg, #2c2824 0%, #1d1915 40%, #12100e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2520 0%, transparent 80%);
}
.scn-strategic-manoeuvring-contest .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a342c 0%, #2a2520 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: smc-wall 18s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-contest .room-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0;
  animation: smc-floor 14s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-contest .table-wide {
  position:absolute; bottom:20%; left:50%; width:160px; height:28px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #504030 0%, #382820 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: smc-table 10s ease-in-out infinite;
}
.scn-strategic-manoeuvring-contest .figure-left {
  position:absolute; bottom:18%; left:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: smc-figure-l 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-contest .figure-right {
  position:absolute; bottom:18%; right:25%; width:18px; height:48px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: smc-figure-r 8s ease-in-out infinite;
}
.scn-strategic-manoeuvring-contest .lamp {
  position:absolute; bottom:48%; left:40%; width:16px; height:20px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #b08040;
  animation: smc-lamp 6s ease-in-out infinite alternate;
}
.scn-strategic-manoeuvring-contest .parchment {
  position:absolute; bottom:22%; left:35%; width:60px; height:40px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: smc-parch 20s ease-in-out infinite alternate;
}
@keyframes smc-wall   { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes smc-floor  { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes smc-table  { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(1px) } }
@keyframes smc-figure-l { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes smc-figure-r { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes smc-lamp  { 0% { opacity:.8; box-shadow: 0 0 16px 4px #b08040 } 100% { opacity:1; box-shadow: 0 0 28px 8px #d09050 } }
@keyframes smc-parch { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.02) } 100% { opacity:.8; transform: scale(1) } }

/* scene 3: bonaparte-underestimates-bluche */
.scn-bonaparte-underestimates-bluche {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #12121f 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-bonaparte-underestimates-bluche .tent-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: bub-wall 10s ease-in-out infinite alternate;
}
.scn-bonaparte-underestimates-bluche .tent-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 15% 15%;
  animation: bub-floor 8s ease-in-out infinite alternate;
}
.scn-bonaparte-underestimates-bluche .desk {
  position:absolute; bottom:18%; left:50%; width:130px; height:25px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a3028 0%, #2a201a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: bub-desk 7s ease-in-out infinite;
}
.scn-bonaparte-underestimates-bluche .map-red {
  position:absolute; bottom:20%; left:30%; width:80px; height:55px;
  background: linear-gradient(180deg, #b07050 0%, #905030 100%);
  border-radius: 2%;
  box-shadow: 0 0 10px 2px rgba(176,112,80,.3);
  animation: bub-map 5s ease-in-out infinite alternate;
}
.scn-bonaparte-underestimates-bluche .candle-flicker {
  position:absolute; bottom:36%; left:45%; width:8px; height:18px;
  background: linear-gradient(180deg, #d9bf7a 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  animation: bub-candle 1.5s ease-in-out infinite alternate;
}
.scn-bonaparte-underestimates-bluche .bonaparte-silhouette {
  position:absolute; bottom:14%; left:50%; width:24px; height:55px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #0a0a12 0%, #000008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bub-bonaparte 4s ease-in-out infinite;
}
.scn-bonaparte-underestimates-bluche .paper-scatter {
  position:absolute; bottom:21%; left:20%; width:30px; height:20px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  box-shadow: 0 1px 3px rgba(0,0,0,.5);
  animation: bub-paper 9s ease-in-out infinite alternate;
}
@keyframes bub-wall   { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bub-floor  { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes bub-desk   { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(2px) scale(1.01) } }
@keyframes bub-map    { 0% { opacity:.6; transform: scale(1) rotate(-2deg) } 50% { opacity:.9; transform: scale(1.05) rotate(1deg) } 100% { opacity:.7; transform: scale(1) rotate(0) } }
@keyframes bub-candle { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.7; transform: scale(0.95) } }
@keyframes bub-bonaparte { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-50%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 75% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes bub-paper { 0% { opacity:.5; transform: translate(0,0) rotate(0) } 50% { opacity:.8; transform: translate(3px,-2px) rotate(5deg) } 100% { opacity:.6; transform: translate(0,0) rotate(0) } }

/* scene 4: offensive-objectives-fortresses */
.scn-offensive-objectives-fortresses {
  background: 
    linear-gradient(180deg, #2e2a24 0%, #1f1b17 40%, #14110d 100%),
    radial-gradient(ellipse at 50% 100%, #2a2520 0%, transparent 70%);
}
.scn-offensive-objectives-fortresses .fort-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a342c 0%, #2a2520 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: oof-wall 22s ease-in-out infinite alternate;
}
.scn-offensive-objectives-fortresses .fort-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 10% 10% 0 0;
  animation: oof-floor 16s ease-in-out infinite alternate;
}
.scn-offensive-objectives-fortresses .table-fort {
  position:absolute; bottom:20%; left:50%; width:140px; height:26px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #504030 0%, #382820 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: oof-table 11s ease-in-out infinite;
}
.scn-offensive-objectives-fortresses .compass {
  position:absolute; bottom:38%; left:35%; width:28px; height:28px;
  background: radial-gradient(circle, #c8b090 0%, #a08060 60%, #705040 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(160,128,96,.4);
  animation: oof-compass 30s linear infinite;
}
.scn-offensive-objectives-fortresses .fort-map {
  position:absolute; bottom:22%; left:42%; width:70px; height:45px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: oof-fortmap 18s ease-in-out infinite alternate;
}
.scn-offensive-objectives-fortresses .candle-steady {
  position:absolute; bottom:40%; left:55%; width:10px; height:22px;
  background: linear-gradient(180deg, #d9bf7a 0%, #a08050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 8px 2px #b09050;
  animation: oof-candle 8s ease-in-out infinite;
}
.scn-offensive-objectives-fortresses .siege-token {
  position:absolute; bottom:21%; left:30%; width:12px; height:12px;
  background: radial-gradient(circle, #786050 0%, #504030 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: oof-token 14s ease-in-out infinite alternate;
}
@keyframes oof-wall   { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes oof-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes oof-table  { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(1px) } }
@keyframes oof-compass { 0% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(45deg) scale(1.02) } 50% { transform: rotate(180deg) scale(1) } 75% { transform: rotate(225deg) scale(0.98) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes oof-fortmap { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(0.96) } 100% { opacity:.8; transform: scale(1) } }
@keyframes oof-candle { 0%,100% { opacity:.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } }
@keyframes oof-token  { 0% { opacity:.6; transform: translateX(0) } 50% { opacity:.9; transform: translateX(2px) } 100% { opacity:.7; transform: translateX(0) } }

/* decisive-victory-requirements */
.scn-decisive-victory-requirements {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f1a 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-decisive-victory-requirements .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  animation: dvr-bg 20s ease-in-out infinite alternate;
}
.scn-decisive-victory-requirements .table {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: dvr-table 12s ease-in-out infinite;
}
.scn-decisive-victory-requirements .map {
  position: absolute; bottom: 30%; left: 18%; right: 18%; height: 18%;
  background: linear-gradient(135deg, #c8b08a 0%, #a8886a 30%, #9a7a5a 70%, #b89878 100%);
  border-radius: 2% 8% 4% 6%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(18deg);
  animation: dvr-map 18s ease-in-out infinite alternate;
}
.scn-decisive-victory-requirements .candle {
  position: absolute; bottom: 42%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20%;
  animation: dvr-candle-sway 3s ease-in-out infinite;
}
.scn-decisive-victory-requirements .flame {
  position: absolute; bottom: 62%; left: 45%; width: 12px; height: 16px; transform: translateX(-2px);
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8c40 40%, transparent 80%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 20px 6px rgba(255,140,64,0.5);
  animation: dvr-flame 0.8s ease-in-out infinite alternate;
}
.scn-decisive-victory-requirements .commander {
  position: absolute; bottom: 16%; left: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dvr-commander 5s ease-in-out infinite;
}
.scn-decisive-victory-requirements .shadow {
  position: absolute; bottom: 8%; left: 20%; width: 90px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: dvr-shadow 5s ease-in-out infinite;
}
@keyframes dvr-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dvr-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dvr-map { 0% { transform: perspective(600px) rotateX(15deg) translateX(0) } 50% { transform: perspective(600px) rotateX(18deg) translateX(1px) } 100% { transform: perspective(600px) rotateX(16deg) translateX(-1px) } }
@keyframes dvr-candle-sway { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes dvr-flame { 0% { transform: scaleY(0.9) translateY(1px); opacity: 0.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1 } 100% { transform: scaleY(0.95) translateY(0); opacity: 0.85 } }
@keyframes dvr-commander { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dvr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* victory-force-depends */
.scn-victory-force-depends {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a221a 40%, #3a2e1a 100%),
              radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-victory-force-depends .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 60%, rgba(0,0,0,0.3) 100%);
  animation: vfd-bg 25s ease-in-out infinite alternate;
}
.scn-victory-force-depends .desk {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
  animation: vfd-desk 15s ease-in-out infinite;
}
.scn-victory-force-depends .scroll {
  position: absolute; bottom: 24%; left: 15%; right: 15%; height: 22%;
  background: linear-gradient(135deg, #d0b890 0%, #b09870 40%, #a08868 70%, #c0a880 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 3px 6px rgba(0,0,0,0.3);
  transform: perspective(800px) rotateX(25deg);
  animation: vfd-scroll 20s ease-in-out infinite alternate;
}
.scn-victory-force-depends .candle {
  position: absolute; bottom: 46%; left: 55%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20%;
  animation: vfd-candle 3s ease-in-out infinite;
}
.scn-victory-force-depends .flame {
  position: absolute; bottom: 64%; left: 54.5%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8c40 40%, transparent 80%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 24px 8px rgba(255,140,64,0.5);
  animation: vfd-flame 0.6s ease-in-out infinite alternate;
}
.scn-victory-force-depends .general {
  position: absolute; bottom: 10%; left: 20%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vfd-general 6s ease-in-out infinite;
}
.scn-victory-force-depends .hand {
  position: absolute; bottom: 20%; left: 28%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 30% 30%; transform: rotate(-15deg);
  animation: vfd-hand 4s ease-in-out infinite alternate;
}
@keyframes vfd-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes vfd-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes vfd-scroll { 0% { transform: perspective(800px) rotateX(22deg) translateY(0) } 50% { transform: perspective(800px) rotateX(26deg) translateY(3px) } 100% { transform: perspective(800px) rotateX(24deg) translateY(0) } }
@keyframes vfd-candle { 0% { transform: rotate(-1.5deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-1deg) } }
@keyframes vfd-flame { 0% { transform: scaleY(0.85) translateY(2px); opacity: 0.85 } 50% { transform: scaleY(1.3) translateY(-3px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(0); opacity: 0.8 } }
@keyframes vfd-general { 0% { transform: rotate(-1deg) translateY(0) } 33% { transform: rotate(1deg) translateY(-2px) } 66% { transform: rotate(-2deg) translateY(0) } 100% { transform: rotate(0) translateY(-1px) } }
@keyframes vfd-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(5px) } 100% { transform: rotate(-15deg) translateX(0) } }

/* pursuit-after-battle */
.scn-pursuit-after-battle {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #1e0e0e 100%),
              radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 60%);
}
.scn-pursuit-after-battle .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: pab-bg 30s ease-in-out infinite alternate;
}
.scn-pursuit-after-battle .brazier {
  position: absolute; bottom: 18%; left: 46%; width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: pab-brazier 4s ease-in-out infinite;
}
.scn-pursuit-after-battle .glow {
  position: absolute; bottom: 12%; left: 38%; width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(255,140,64,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: pab-glow 3s ease-in-out infinite alternate;
}
.scn-pursuit-after-battle .soldier {
  position: absolute; bottom: 6%; left: 22%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg) translateY(10px); transform-origin: bottom center;
  animation: pab-soldier 7s ease-in-out infinite;
}
.scn-pursuit-after-battle .blanket {
  position: absolute; bottom: 4%; left: 15%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 30% 50%; transform: rotate(-5deg);
  animation: pab-blanket 9s ease-in-out infinite alternate;
}
.scn-pursuit-after-battle .staff {
  position: absolute; bottom: 20%; left: 15%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20%; transform: rotate(25deg);
  animation: pab-staff 8s ease-in-out infinite;
}
.scn-pursuit-after-battle .shadow {
  position: absolute; bottom: 2%; left: 10%; width: 100px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: pab-shadow 7s ease-in-out infinite;
}
@keyframes pab-bg { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes pab-brazier { 0% { transform: scale(1) } 50% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(0.98) } }
@keyframes pab-glow { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes pab-soldier { 0% { transform: rotate(8deg) translateY(10px) } 33% { transform: rotate(10deg) translateY(12px) } 66% { transform: rotate(6deg) translateY(8px) } 100% { transform: rotate(9deg) translateY(10px) } }
@keyframes pab-blanket { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes pab-staff { 0% { transform: rotate(25deg) } 50% { transform: rotate(27deg) } 100% { transform: rotate(24deg) } }
@keyframes pab-shadow { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

/* theatre-of-war-defined */
.scn-theatre-of-war-defined {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a2a2a 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, transparent 50%);
}
.scn-theatre-of-war-defined .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 60%, rgba(0,0,0,0.2) 100%);
  animation: twd-bg 30s ease-in-out infinite alternate;
}
.scn-theatre-of-war-defined .table {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -12px 30px rgba(0,0,0,0.5);
  animation: twd-table 20s ease-in-out infinite;
}
.scn-theatre-of-war-defined .globe {
  position: absolute; bottom: 28%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #a0c8d0 0%, #607080 50%, #405060 100%);
  border-radius: 50%; box-shadow: inset -10px -10px 20px rgba(0,0,0,0.4), 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateY(30deg) rotateX(15deg);
  animation: twd-globe 12s ease-in-out infinite alternate;
}
.scn-theatre-of-war-defined .map {
  position: absolute; bottom: 18%; left: 40%; right: 8%; height: 24%;
  background: linear-gradient(135deg, #d0b890 0%, #b09870 30%, #a08868 70%, #c0a880 100%);
  border-radius: 200% 100% 0 0 / 40% 40% 0 0; box-shadow: inset 0 3px 6px rgba(0,0,0,0.3);
  transform: perspective(800px) rotateX(20deg);
  animation: twd-map 25s ease-in-out infinite alternate;
}
.scn-theatre-of-war-defined .candle {
  position: absolute; bottom: 40%; left: 70%; width: 10px; height: 32px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 0 8px rgba(255,200,100,0.3);
  animation: twd-candle 6s ease-in-out infinite;
}
.scn-theatre-of-war-defined .flame {
  position: absolute; bottom: 62%; left: 69.5%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #ff8c40 40%, transparent 80%);
  border-radius: 50%; filter: blur(1px);
  box-shadow: 0 0 28px 10px rgba(255,140,64,0.4);
  animation: twd-flame 2s ease-in-out infinite alternate;
}
.scn-theatre-of-war-defined .commander {
  position: absolute; bottom: 6%; left: 5%; width: 70px; height: 85px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); transform-origin: bottom center;
  animation: twd-commander 15s ease-in-out infinite;
}
@keyframes twd-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes twd-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes twd-globe { 0% { transform: perspective(500px) rotateY(28deg) rotateX(15deg) } 50% { transform: perspective(500px) rotateY(32deg) rotateX(18deg) } 100% { transform: perspective(500px) rotateY(30deg) rotateX(16deg) } }
@keyframes twd-map { 0% { transform: perspective(800px) rotateX(18deg) translateY(0) } 50% { transform: perspective(800px) rotateX(22deg) translateY(2px) } 100% { transform: perspective(800px) rotateX(20deg) translateY(0) } }
@keyframes twd-candle { 0% { transform: rotate(-0.5deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.3deg) } }
@keyframes twd-flame { 0% { transform: scaleY(0.95) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.1) translateY(-1px); opacity: 1 } 100% { transform: scaleY(0.98) translateY(0); opacity: 0.92 } }
@keyframes twd-commander { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-1px) } 50% { transform: rotate(-6deg) translateY(0) } 75% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* Scene: item-bonaparte-mantua-criticism (dim-interior, calm) */
.scn-item-bonaparte-mantua-criticism {
  background:
    radial-gradient(ellipse at 50% 60%, #4a2e1a 0%, #2a1a0e 60%, #0f0804 100%),
    linear-gradient(180deg, #1a1008 0%, #2a1a0e 40%, #1a0e06 100%);
}
.scn-item-bonaparte-mantua-criticism .tent-wall {
  position:absolute; inset:0; background:linear-gradient(135deg, #2a1e12 0%, #1a120a 50%, #120a06 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); opacity:0.6; animation:bo-wall 20s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .map-table {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background:linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  transform: perspective(500px) rotateX(5deg); animation:bo-table 12s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .map {
  position:absolute; bottom:20%; left:12%; right:12%; height:18%;
  background:linear-gradient(135deg, #4a3a28 0%, #5a4a32 30%, #4a3a28 60%, #3a2a18 100%);
  border-radius: 2px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation:bo-map 16s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .candle {
  position:absolute; bottom:38%; left:75%; width:8px; height:30px;
  background:linear-gradient(180deg, #e8d0a0 0%, #c8a870 40%, #8a6a40 100%);
  border-radius: 2px 2px 1px 1px; animation:bo-flicker 3s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .candle-glow {
  position:absolute; bottom:38%; left:75%; width:80px; height:80px;
  background:radial-gradient(circle, rgba(232,200,120,0.3) 0%, rgba(200,160,80,0.1) 40%, transparent 70%);
  transform:translate(-50%, -50%); animation:bo-glow 3s ease-in-out infinite alternate;
}
.scn-item-bonaparte-mantua-criticism .commander-sil {
  position:absolute; bottom:10%; left:20%; width:50px; height:80px;
  background:linear-gradient(180deg, #0a0604 0%, #140a06 50%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation:bo-commander 8s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .document-a {
  position:absolute; bottom:22%; left:45%; width:30px; height:20px;
  background:linear-gradient(135deg, #6a5a42 0%, #5a4a32 100%);
  border-radius: 1px; transform:rotate(-2deg); animation:bo-doc-a 20s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .document-b {
  position:absolute; bottom:24%; left:52%; width:35px; height:22px;
  background:linear-gradient(135deg, #5a4a32 0%, #4a3a28 100%);
  border-radius: 1px; transform:rotate(3deg); animation:bo-doc-b 24s ease-in-out infinite;
}
.scn-item-bonaparte-mantua-criticism .inkwell {
  position:absolute; bottom:18%; left:68%; width:14px; height:16px;
  background:linear-gradient(180deg, #2a1a0e 0%, #0a0402 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation:bo-inkwell 14s ease-in-out infinite;
}
@keyframes bo-wall { 0% { opacity:0.55; } 50% { opacity:0.65; } 100% { opacity:0.55; } }
@keyframes bo-table { 0% { transform:perspective(500px) rotateX(5deg) translateY(0); } 50% { transform:perspective(500px) rotateX(5deg) translateY(-2px); } 100% { transform:perspective(500px) rotateX(5deg) translateY(0); } }
@keyframes bo-map { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.7; } }
@keyframes bo-flicker { 0% { transform:scaleY(1) translateX(0); opacity:0.95; } 25% { transform:scaleY(1.03) translateX(0.5px); opacity:1; } 50% { transform:scaleY(0.97) translateX(-0.3px); opacity:0.9; } 75% { transform:scaleY(1.02) translateX(0.2px); opacity:0.95; } 100% { transform:scaleY(1) translateX(0); opacity:0.95; } }
@keyframes bo-glow { 0% { opacity:0.4; transform:translate(-50%, -50%) scale(0.95); } 50% { opacity:0.65; transform:translate(-50%, -50%) scale(1.05); } 100% { opacity:0.45; transform:translate(-50%, -50%) scale(0.98); } }
@keyframes bo-commander { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(-3px) rotate(0.5deg); } 66% { transform:translateY(-1px) rotate(-0.3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes bo-doc-a { 0% { transform:rotate(-2deg) translateX(0); } 50% { transform:rotate(-1deg) translateX(2px); } 100% { transform:rotate(-2deg) translateX(0); } }
@keyframes bo-doc-b { 0% { transform:rotate(3deg) translateX(0); } 50% { transform:rotate(2deg) translateX(-1px); } 100% { transform:rotate(3deg) translateX(0); } }
@keyframes bo-inkwell { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }

/* Scene: historical-examples-value (dim-interior, calm) */
.scn-historical-examples-value {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, #1a120a 60%, #0a0604 100%),
    linear-gradient(180deg, #1a140e 0%, #2a1e12 40%, #14100a 100%);
}
.scn-historical-examples-value .study-bg {
  position:absolute; inset:0 0 40% 0;
  background:linear-gradient(180deg, #1a140e 0%, #2a1e14 50%, #1a120a 100%);
  animation:hi-bg 22s ease-in-out infinite;
}
.scn-historical-examples-value .desk {
  position:absolute; bottom:8%; left:5%; right:5%; height:35%;
  background:linear-gradient(180deg, #4a3420 0%, #2a1a10 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(4deg); animation:hi-desk 14s ease-in-out infinite;
}
.scn-historical-examples-value .scroll {
  position:absolute; bottom:20%; left:10%; width:60px; height:30px;
  background:linear-gradient(180deg, #6a5a40 0%, #5a4a32 40%, #6a5a40 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: perspective(300px) rotateX(10deg); animation:hi-scroll 18s ease-in-out infinite;
}
.scn-historical-examples-value .book-stack {
  position:absolute; bottom:14%; left:55%; width:40px; height:50px;
  background:linear-gradient(90deg, #3a2a1a 0%, #4a3824 30%, #3a2a1a 60%, #2a1a0e 100%);
  border-radius: 3px; box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation:hi-books 20s ease-in-out infinite;
}
.scn-historical-examples-value .lamp {
  position:absolute; bottom:42%; left:75%; width:12px; height:40px;
  background:linear-gradient(180deg, #c8a060 0%, #8a6a38 50%, #4a2e18 100%);
  border-radius: 2px 2px 30% 30%; animation:hi-lamp 4s ease-in-out infinite;
}
.scn-historical-examples-value .lamp-glow {
  position:absolute; bottom:42%; left:75%; width:80px; height:80px;
  background:radial-gradient(circle, rgba(200,160,80,0.25) 0%, rgba(160,120,50,0.08) 40%, transparent 70%);
  transform:translate(-50%, -50%); animation:hi-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-historical-examples-value .thinker-sil {
  position:absolute; bottom:8%; left:25%; width:45px; height:75px;
  background:linear-gradient(180deg, #0a0604 0%, #1a0e08 50%, #0a0604 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation:hi-thinker 10s ease-in-out infinite;
}
.scn-historical-examples-value .quill {
  position:absolute; bottom:32%; left:20%; width:20px; height:4px;
  background:linear-gradient(90deg, #8a7040 0%, #5a4a28 60%, #3a2a14 100%);
  border-radius: 50% 0 0 50%; transform: rotate(-15deg);
  animation:hi-quill 6s ease-in-out infinite;
}
.scn-historical-examples-value .paper-sheet {
  position:absolute; bottom:24%; left:30%; width:40px; height:28px;
  background:linear-gradient(135deg, #6a5a40 0%, #5a4a32 50%, #4a3a28 100%);
  border-radius: 2px; transform: rotate(1deg);
  animation:hi-paper 26s ease-in-out infinite;
}
@keyframes hi-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes hi-desk { 0% { transform:perspective(600px) rotateX(4deg) translateY(0); } 50% { transform:perspective(600px) rotateX(4deg) translateY(-2px); } 100% { transform:perspective(600px) rotateX(4deg) translateY(0); } }
@keyframes hi-scroll { 0% { transform:perspective(300px) rotateX(10deg) translateX(0); } 50% { transform:perspective(300px) rotateX(10deg) translateX(3px); } 100% { transform:perspective(300px) rotateX(10deg) translateX(0); } }
@keyframes hi-books { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.01); } }
@keyframes hi-lamp { 0% { transform:scaleY(1) rotate(0deg); } 30% { transform:scaleY(1.02) rotate(0.3deg); } 60% { transform:scaleY(0.98) rotate(-0.2deg); } 100% { transform:scaleY(1) rotate(0deg); } }
@keyframes hi-lamp-glow { 0% { opacity:0.45; transform:translate(-50%, -50%) scale(0.95); } 50% { opacity:0.7; transform:translate(-50%, -50%) scale(1.08); } 100% { opacity:0.5; transform:translate(-50%, -50%) scale(0.97); } }
@keyframes hi-thinker { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-4px) rotate(0.5deg); } 50% { transform:translateY(-2px) rotate(-0.3deg); } 75% { transform:translateY(-5px) rotate(0.2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hi-quill { 0% { transform:rotate(-15deg) translateX(0) translateY(0); } 50% { transform:rotate(-12deg) translateX(3px) translateY(-2px); } 100% { transform:rotate(-15deg) translateX(0) translateY(0); } }
@keyframes hi-paper { 0% { transform:rotate(1deg) translateX(0); opacity:0.85; } 50% { transform:rotate(0.5deg) translateX(2px); opacity:0.95; } 100% { transform:rotate(1deg) translateX(0); opacity:0.85; } }

/* Scene: moral-forces-paramount (dim-interior, tense) */
.scn-moral-forces-paramount {
  background:
    radial-gradient(ellipse at 50% 50%, #2a0e0a 0%, #1a0604 50%, #0a0201 100%),
    linear-gradient(180deg, #1a0604 0%, #2a0e0a 30%, #1a0a06 70%, #0a0402 100%);
}
.scn-moral-forces-paramount .bg-deep {
  position:absolute; inset:0;
  background:linear-gradient(180deg, #0a0402 0%, #1a0806 50%, #0a0201 100%);
  animation:mo-deep 8s ease-in-out infinite alternate;
}
.scn-moral-forces-paramount .bg-mid {
  position:absolute; inset:10% 5% 10% 5%;
  background:radial-gradient(ellipse at 50% 50%, rgba(60,20,10,0.4) 0%, transparent 70%);
  animation:mo-mid 6s ease-in-out infinite alternate;
}
.scn-moral-forces-paramount .commander-core {
  position:absolute; bottom:15%; left:50%; width:55px; height:85px;
  background:linear-gradient(180deg, #0a0604 0%, #1a0a06 40%, #0a0402 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform:translateX(-50%); box-shadow: 0 0 30px rgba(80,25,10,0.3);
  animation:mo-core 3s ease-in-out infinite;
}
.scn-moral-forces-paramount .force-swirl-a {
  position:absolute; bottom:30%; left:30%; width:20px; height:20px;
  background:radial-gradient(circle, rgba(180,80,30,0.3) 0%, rgba(120,40,15,0.1) 50%, transparent 80%);
  border-radius: 50%; animation:mo-swirl-a 7s ease-in-out infinite;
}
.scn-moral-forces-paramount .force-swirl-b {
  position:absolute; bottom:50%; left:60%; width:25px; height:25px;
  background:radial-gradient(circle, rgba(200,100,40,0.25) 0%, rgba(140,50,20,0.08) 50%, transparent 80%);
  border-radius: 50%; animation:mo-swirl-b 9s ease-in-out infinite;
}
.scn-moral-forces-paramount .force-swirl-c {
  position:absolute; bottom:20%; left:45%; width:15px; height:15px;
  background:radial-gradient(circle, rgba(160,70,25,0.35) 0%, rgba(100,30,10,0.12) 50%, transparent 80%);
  border-radius: 50%; animation:mo-swirl-c 5s ease-in-out infinite;
}
.scn-moral-forces-paramount .spark-particle {
  position:absolute; bottom:45%; left:40%; width:4px; height:4px;
  background:radial-gradient(circle, rgba(220,140,60,0.7) 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(220,140,60,0.2);
  animation:mo-spark 2s ease-in-out infinite;
}
.scn-moral-forces-paramount .shadow-drape {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 30%, rgba(0,0,0,0.2) 60%, transparent 100%);
  animation:mo-shadow 10s ease-in-out infinite alternate;
}
@keyframes mo-deep { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes mo-mid { 0% { opacity:0.3; transform:scale(0.95); } 50% { opacity:0.6; transform:scale(1.05); } 100% { opacity:0.35; transform:scale(0.97); } }
@keyframes mo-core { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 30% { transform:translateX(-50%) translateY(-5px) rotate(0.8deg); } 60% { transform:translateX(-50%) translateY(-2px) rotate(-0.5deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes mo-swirl-a { 0% { transform:translate(0,0) scale(1); opacity:0.3; } 25% { transform:translate(10px,-8px) scale(1.2); opacity:0.6; } 50% { transform:translate(-5px,-15px) scale(0.8); opacity:0.4; } 75% { transform:translate(-10px,-5px) scale(1.1); opacity:0.5; } 100% { transform:translate(0,0) scale(1); opacity:0.3; } }
@keyframes mo-swirl-b { 0% { transform:translate(0,0) scale(1); opacity:0.25; } 33% { transform:translate(-12px,10px) scale(1.3); opacity:0.55; } 66% { transform:translate(8px,5px) scale(0.9); opacity:0.35; } 100% { transform:translate(0,0) scale(1); opacity:0.25; } }
@keyframes mo-swirl-c { 0% { transform:translate(0,0) scale(1); opacity:0.35; } 20% { transform:translate(6px,-12px) scale(1.15); opacity:0.65; } 40% { transform:translate(-8px,5px) scale(0.85); opacity:0.45; } 60% { transform:translate(4px,10px) scale(1.05); opacity:0.55; } 80% { transform:translate(-6px,-3px) scale(0.95); opacity:0.4; } 100% { transform:translate(0,0) scale(1); opacity:0.35; } }
@keyframes mo-spark { 0% { transform:translate(0,0) scale(1); opacity:0.5; } 25% { transform:translate(8px,-6px) scale(1.5); opacity:1; } 50% { transform:translate(-4px,-12px) scale(0.6); opacity:0.3; } 75% { transform:translate(-8px,-3px) scale(1.2); opacity:0.7; } 100% { transform:translate(0,0) scale(1); opacity:0.5; } }
@keyframes mo-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.35; } }

/* Scene: relative-superiority-decisive (dim-interior, calm) */
.scn-relative-superiority-decisive {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 60%, #0a0604 100%),
    linear-gradient(180deg, #14100a 0%, #2a1e12 40%, #1a120a 100%);
}
.scn-relative-superiority-decisive .war-room-wall {
  position:absolute; inset:0 0 35% 0;
  background:linear-gradient(180deg, #1a140e 0%, #2a1e14 60%, #1a120a 100%);
  animation:su-wall 18s ease-in-out infinite;
}
.scn-relative-superiority-decisive .strategy-map {
  position:absolute; bottom:8%; left:4%; right:4%; height:50%;
  background:linear-gradient(135deg, #4a3a28 0%, #5a4a32 20%, #4a3a28 40%, #3a2a18 70%, #4a3a28 100%);
  border-radius: 4px; box-shadow: 0 -4px 16px rgba(0,0,0,0.5), inset 0 0 30px rgba(0,0,0,0.2);
  transform: perspective(500px) rotateX(6deg); animation:su-map 20s ease-in-out infinite;
}
.scn-relative-superiority-decisive .troop-blue {
  position:absolute; bottom:30%; left:25%; width:8px; height:8px;
  background:radial-gradient(circle, #4a6a8a 0%, #2a4a6a 70%);
  border-radius:50%; box-shadow: 0 0 6px 2px rgba(60,100,140,0.3);
  animation:su-blue 8s ease-in-out infinite;
}
.scn-relative-superiority-decisive .troop-red {
  position:absolute; bottom:25%; left:55%; width:8px; height:8px;
  background:radial-gradient(circle, #8a4a3a 0%, #6a2a1a 70%);
  border-radius:50%; box-shadow: 0 0 6px 2px rgba(140,60,40,0.3);
  animation:su-red 10s ease-in-out infinite;
}
.scn-relative-superiority-decisive .decisive-mark {
  position:absolute; bottom:28%; left:40%; width:16px; height:16px;
  background:radial-gradient(circle, rgba(200,160,80,0.4) 0%, rgba(180,140,60,0.1) 50%, transparent 80%);
  border-radius:50%; animation:su-decisive 3s ease-in-out infinite alternate;
}
.scn-relative-superiority-decisive .ruler-edge {
  position:absolute; bottom:15%; left:8%; right:8%; height:3px;
  background:linear-gradient(90deg, #6a5a42 0%, #8a7a5a 30%, #6a5a42 70%, #5a4a32 100%);
  border-radius: 1px; transform: perspective(200px) rotateX(20deg);
  animation:su-ruler 22s ease-in-out infinite;
}
.scn-relative-superiority-decisive .commander-hand {
  position:absolute; bottom:10%; left:35%; width:30px; height:20px;
  background:linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform:rotate(15deg); animation:su-hand 6s ease-in-out infinite;
}
@keyframes su-wall { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes su-map { 0% { transform:perspective(500px) rotateX(6deg) translateY(0); } 50% { transform:perspective(500px) rotateX(6deg) translateY(-3px); } 100% { transform:perspective(500px) rotateX(6deg) translateY(0); } }
@keyframes su-blue { 0% { transform:translate(0,0) scale(1); opacity:0.8; } 30% { transform:translate(12px,-8px) scale(1.1); opacity:1; } 60% { transform:translate(6px,-3px) scale(0.95); opacity:0.85; } 100% { transform:translate(0,0) scale(1); opacity:0.8; } }
@keyframes su-red { 0% { transform:translate(0,0) scale(1); opacity:0.8; } 35% { transform:translate(-8px,-5px) scale(0.9); opacity:0.65; } 65% { transform:translate(-14px,-10px) scale(1.05); opacity:0.9; } 100% { transform:translate(0,0) scale(1); opacity:0.8; } }
@keyframes su-decisive { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.35; transform:scale(0.85); } }
@keyframes su-ruler { 0% { transform:perspective(200px) rotateX(20deg) translateX(0); } 50% { transform:perspective(200px) rotateX(20deg) translateX(5px); } 100% { transform:perspective(200px) rotateX(20deg) translateX(0); } }
@keyframes su-hand { 0% { transform:rotate(15deg) translateX(0) translateY(0); } 33% { transform:rotate(12deg) translateX(4px) translateY(-3px); } 66% { transform:rotate(17deg) translateX(2px) translateY(-1px); } 100% { transform:rotate(15deg) translateX(0) translateY(0); } }

.scn-advanced-corp-delay-calculation {
  background: linear-gradient(180deg, #1c1c3a 0%, #2a1a22 50%, #3c2a1a 100%),
              radial-gradient(ellipse at 70% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-advanced-corp-delay-calculation .bg-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-advanced-corp-delay-calculation .table { position:absolute; bottom:10%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:20px; box-shadow:0 8px 20px rgba(0,0,0,.6); }
.scn-advanced-corp-delay-calculation .map { position:absolute; bottom:25%; left:20%; right:20%; height:30%; background: linear-gradient(135deg, #a07850 0%, #c8a070 50%, #a07850 100%); border-radius:5px; box-shadow:inset 0 0 10px #8a6040; animation:acdc-map 20s ease-in-out infinite alternate; }
.scn-advanced-corp-delay-calculation .candle { position:absolute; bottom:35%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #e0c090 0%, #c09860 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 10px #c09860; }
.scn-advanced-corp-delay-calculation .flame { position:absolute; bottom:47%; left:calc(30% + 4px); width:14px; height:20px; background: radial-gradient(circle, #ffdd88 0%, #ffaa44 40%, #ff6622 70%, transparent 100%); border-radius:50%; transform:translateX(-50%); animation:acdc-flame 3s ease-in-out infinite; }
.scn-advanced-corp-delay-calculation .compass { position:absolute; bottom:30%; right:25%; width:30px; height:30px; background: radial-gradient(circle, #d0b080 0%, #a08060 100%); border-radius:50%; box-shadow:0 0 8px #a08060; }
.scn-advanced-corp-delay-calculation .compass-needle { position:absolute; bottom:calc(30% + 15px); right:calc(25% + 15px); width:4px; height:20px; background: linear-gradient(180deg, #c05050 0%, #802020 100%); border-radius:2px; transform-origin:bottom center; animation:acdc-needle 6s ease-in-out infinite; }
.scn-advanced-corp-delay-calculation .marker1 { position:absolute; bottom:28%; left:45%; width:10px; height:10px; background:#c07040; border-radius:50%; box-shadow:0 0 6px #c07040; animation:acdc-marker1 4s ease-in-out infinite; }
.scn-advanced-corp-delay-calculation .marker2 { position:absolute; bottom:32%; left:55%; width:10px; height:10px; background:#406070; border-radius:50%; box-shadow:0 0 6px #406070; animation:acdc-marker2 5s ease-in-out infinite; }
@keyframes acdc-map { 0%{box-shadow:inset 0 0 10px #8a6040;} 50%{box-shadow:inset 0 0 20px #8a6040,0 0 10px rgba(160,120,80,.3);} 100%{box-shadow:inset 0 0 10px #8a6040;} }
@keyframes acdc-flame { 0%{transform:translateX(-50%) scaleY(1) rotate(-2deg);} 25%{transform:translateX(-50%) scaleY(1.1) rotate(2deg);} 50%{transform:translateX(-50%) scaleY(0.9) rotate(-1deg);} 75%{transform:translateX(-50%) scaleY(1.05) rotate(1deg);} 100%{transform:translateX(-50%) scaleY(1) rotate(0deg);} }
@keyframes acdc-needle { 0%{transform:rotate(0deg);} 25%{transform:rotate(30deg);} 50%{transform:rotate(0deg);} 75%{transform:rotate(-20deg);} 100%{transform:rotate(0deg);} }
@keyframes acdc-marker1 { 0%{transform:translateY(0) scale(1);} 50%{transform:translateY(-3px) scale(1.1);} 100%{transform:translateY(0) scale(1);} }
@keyframes acdc-marker2 { 0%{transform:translateX(0);} 25%{transform:translateX(5px);} 50%{transform:translateX(0);} 75%{transform:translateX(-5px);} 100%{transform:translateX(0);} }

.scn-great-towns-shelter {
  background: linear-gradient(180deg, #101520 0%, #1a2030 50%, #253540 100%),
              radial-gradient(ellipse at 80% 50%, #304050 0%, transparent 60%);
}
.scn-great-towns-shelter .window-frame { position:absolute; inset:4%; border:8px solid #2a1a10; background:transparent; border-radius:10px; box-shadow:inset 0 0 20px #1a0a00; }
.scn-great-towns-shelter .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0f1b2e 0%, #1a2a3e 50%, #2a3a4e 100%); }
.scn-great-towns-shelter .roofs { position:absolute; bottom:15%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-great-towns-shelter .window-1 { position:absolute; bottom:30%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #f0c070 0%, #d0a050 70%); border-radius: 2px; box-shadow: 0 0 12px 4px #d0a050, 0 0 24px 8px rgba(208,160,80,.4); animation:gtsh-light1 4s ease-in-out infinite alternate; }
.scn-great-towns-shelter .window-2 { position:absolute; bottom:35%; left:60%; width:12px; height:16px; background: radial-gradient(circle, #f0c070 0%, #d0a050 70%); border-radius: 2px; box-shadow: 0 0 12px 4px #d0a050, 0 0 24px 8px rgba(208,160,80,.4); animation:gtsh-light2 5s ease-in-out infinite alternate; animation-delay:1s; }
.scn-great-towns-shelter .lamp-post { position:absolute; bottom:20%; left:80%; width:4px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); transform:rotate(5deg); }
.scn-great-towns-shelter .lamp-glow { position:absolute; bottom:40%; left:80%; width:20px; height:20px; background: radial-gradient(circle, #ffdd88 0%, #ffaa44 30%, transparent 70%); border-radius:50%; transform:translate(-50%, -50%); animation:gtsh-lamp 3s ease-in-out infinite; }
.scn-great-towns-shelter .soldier-shadow { position:absolute; bottom:14%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:gtsh-soldier 8s ease-in-out infinite; }
@keyframes gtsh-light1 { 0%{opacity:.7;} 50%{opacity:1;} 100%{opacity:.8;} }
@keyframes gtsh-light2 { 0%{opacity:.8;} 50%{opacity:.6;} 100%{opacity:.9;} }
@keyframes gtsh-lamp { 0%{opacity:.6; transform:translate(-50%, -50%) scale(1);} 50%{opacity:1; transform:translate(-50%, -50%) scale(1.15);} 100%{opacity:.6; transform:translate(-50%, -50%) scale(1);} }
@keyframes gtsh-soldier { 0%{transform:translateX(0) rotate(0deg);} 25%{transform:translateX(10px) rotate(2deg);} 50%{transform:translateX(20px) rotate(0deg);} 75%{transform:translateX(10px) rotate(-2deg);} 100%{transform:translateX(0) rotate(0deg);} }

.scn-1815-cantonment-example {
  background: linear-gradient(180deg, #1a0f10 0%, #2a1818 50%, #1a0f10 100%),
              radial-gradient(ellipse at 70% 80%, #3a2018 0%, transparent 60%);
}
.scn-1815-cantonment-example .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 90%, #2a1010 0%, transparent 70%); animation:ecex-pulse 8s ease-in-out infinite alternate; }
.scn-1815-cantonment-example .table-map { position:absolute; bottom:10%; left:8%; right:8%; height:55%; background: linear-gradient(180deg, #3a2018 0%, #1a0a00 100%); border-radius:15px; box-shadow:0 10px 30px rgba(0,0,0,.7); }
.scn-1815-cantonment-example .map-area { position:absolute; bottom:18%; left:15%; right:15%; height:38%; background: linear-gradient(135deg, #8a7050 0%, #b09060 50%, #8a7050 100%); border-radius:4px; box-shadow:inset 0 0 8px #6a5030; }
.scn-1815-cantonment-example .march-arrow { position:absolute; bottom:40%; left:20%; width:40px; height:6px; background: linear-gradient(90deg, #a06030 0%, #c08040 100%); border-radius:2px; transform-origin:right center; animation:ecex-arrow 4s ease-in-out infinite; }
.scn-1815-cantonment-example .ziel-dot { position:absolute; bottom:38%; left:55%; width:12px; height:12px; background:#b06030; border-radius:50%; box-shadow:0 0 8px #b06030; animation:ecex-dot 2s ease-in-out infinite alternate; }
.scn-1815-cantonment-example .clock { position:absolute; bottom:35%; right:10%; width:24px; height:24px; border:3px solid #5a3a1a; border-radius:50%; background:radial-gradient(circle, #4a2a0a 0%, #2a1a0a 100%); }
.scn-1815-cantonment-example .clock-hand { position:absolute; bottom:calc(35% + 12px); right:calc(10% + 12px); width:3px; height:14px; background:#a08050; border-radius:1px; transform-origin:bottom center; animation:ecex-clock 15s linear infinite; }
.scn-1815-cantonment-example .candle-tense { position:absolute; bottom:30%; left:70%; width:6px; height:25px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius:3px 3px 1px 1px; box-shadow:0 0 8px #b08040; }
.scn-1815-cantonment-example .flame-tense { position:absolute; bottom:44%; left:calc(70% + 3px); width:12px; height:18px; background:radial-gradient(circle, #ffcc66 0%, #ff8833 40%, #cc3311 70%, transparent 100%); border-radius:50%; transform:translateX(-50%); animation:ecex-flame 1.2s ease-in-out infinite; }
@keyframes ecex-pulse { 0%{opacity:.7;} 50%{opacity:1;} 100%{opacity:.75;} }
@keyframes ecex-arrow { 0%{transform:scaleX(1) translateY(0);} 25%{transform:scaleX(1.2) translateY(-4px);} 50%{transform:scaleX(1) translateY(0);} 75%{transform:scaleX(1.2) translateY(4px);} 100%{transform:scaleX(1) translateY(0);} }
@keyframes ecex-dot { 0%{opacity:.5; transform:scale(.9);} 100%{opacity:1; transform:scale(1.1);} }
@keyframes ecex-clock { 0%{transform:rotate(0deg);} 100%{transform:rotate(360deg);} }
@keyframes ecex-flame { 0%{transform:translateX(-50%) scaleY(1) rotate(-3deg);} 20%{transform:translateX(-50%) scaleY(1.2) rotate(2deg);} 40%{transform:translateX(-50%) scaleY(.8) rotate(-2deg);} 60%{transform:translateX(-50%) scaleY(1.1) rotate(3deg);} 80%{transform:translateX(-50%) scaleY(.9) rotate(-1deg);} 100%{transform:translateX(-50%) scaleY(1) rotate(0deg);} }

.scn-ground-influences-war {
  background: linear-gradient(180deg, #1a2a30 0%, #2a3a40 30%, #3a4a30 70%, #2a3a20 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a30 0%, transparent 60%);
}
.scn-ground-influences-war .sky-horizon { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%); }
.scn-ground-influences-war .mountains { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; clip-path: ellipse(70% 100% at 50% 100%); }
.scn-ground-influences-war .woods { position:absolute; bottom:30%; left:5%; right:30%; height:20%; background: linear-gradient(135deg, #2a4a2a 0%, #1a3a1a 50%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-ground-influences-war .field-patches { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: repeating-linear-gradient(90deg, #4a5a3a 0px, #5a6a4a 20px, #4a5a3a 40px); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-ground-influences-war .path { position:absolute; bottom:5%; left:45%; width:20px; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% / 10% 10% 50% 50%; transform:skewX(-10deg); }
.scn-ground-influences-war .soldier-march { position:absolute; bottom:8%; left:40%; width:14px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:grwi-soldier 12s ease-in-out infinite; }
.scn-ground-influences-war .cloud-a { position:absolute; top:10%; left:20%; width:70px; height:16px; background: rgba(255,255,255,.25); border-radius: 50%; filter: blur(8px); animation:grwi-cloudA 40s linear infinite; }
.scn-ground-influences-war .cloud-b { position:absolute; top:18%; right:10%; width:50px; height:12px; background: rgba(255,255,255,.2); border-radius: 50%; filter: blur(6px); animation:grwi-cloudB 60s linear infinite reverse; }
@keyframes grwi-soldier { 0%{transform:translateX(0) translateY(0) rotate(-1deg);} 20%{transform:translateX(15px) translateY(-2px) rotate(1deg);} 40%{transform:translateX(30px) translateY(0) rotate(-1deg);} 60%{transform:translateX(15px) translateY(-1px) rotate(1deg);} 80%{transform:translateX(0) translateY(-1px) rotate(0deg);} 100%{transform:translateX(0) translateY(0) rotate(-1deg);} }
@keyframes grwi-cloudA { 0%{transform:translateX(-40px);} 100%{transform:translateX(120vw);} }
@keyframes grwi-cloudB { 0%{transform:translateX(0);} 100%{transform:translateX(-120vw);} }

/* Scene: forests-cordons-key-country */
.scn-forests-cordons-key-country {
  background: linear-gradient(135deg, #2a1f1a 0%, #3a2a20 40%, #1a1210 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 60%);
}
.scn-forests-cordons-key-country .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1210 0%, #2a1f1a 100%);
  animation: fc-bg 20s ease-in-out infinite alternate;
}
.scn-forests-cordons-key-country .cabin-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-forests-cordons-key-country .window {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: #1a2a1a;
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: fc-window 25s ease-in-out infinite;
}
.scn-forests-cordons-key-country .forest {
  position: absolute; top: 18%; left: 52%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%);
  filter: blur(3px);
  animation: fc-forest 30s ease-in-out infinite alternate;
}
.scn-forests-cordons-key-country .table {
  position: absolute; bottom: 18%; left: 50%; width: 160px; 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: fc-table 12s ease-in-out infinite alternate;
}
.scn-forests-cordons-key-country .candle {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 26px;
  background: linear-gradient(180deg, #ffebd0 0%, #d4a46a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px #ffa94d, 0 0 40px 12px rgba(255,169,77,0.4);
  animation: fc-candle 3s ease-in-out infinite alternate;
}
.scn-forests-cordons-key-country .map {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b88a 0%, #a89868 100%);
  border-radius: 2px;
  opacity: 0.8;
  animation: fc-map 45s ease-in-out infinite alternate;
}
.scn-forests-cordons-key-country .compass {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d4a46a 0%, #8a7a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.6);
  animation: fc-compass 18s linear infinite;
}
@keyframes fc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fc-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes fc-forest { 0% { transform: translateX(-50%) scale(1); filter: blur(3px); } 50% { transform: translateX(-48%) scale(1.02); filter: blur(2px); } 100% { transform: translateX(-50%) scale(1); filter: blur(3px); } }
@keyframes fc-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fc-candle { 0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 20px 6px #ffa94d; } 50% { transform: scale(1.03) translateY(-1px); opacity: 1; box-shadow: 0 0 28px 10px #ffa94d, 0 0 50px 18px rgba(255,169,77,0.6); } 100% { transform: scale(0.98); opacity: 0.85; box-shadow: 0 0 16px 4px #ffa94d; } }
@keyframes fc-map { 0% { opacity: 0.7; transform: translateX(-50%) rotate(-1deg); } 50% { opacity: 0.9; transform: translateX(-50%) rotate(0deg); } 100% { opacity: 0.75; transform: translateX(-50%) rotate(1deg); } }
@keyframes fc-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Scene: turning-enemy-risks */
.scn-turning-enemy-risks {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5e 0%, transparent 60%);
}
.scn-turning-enemy-risks .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12121c 0%, #1e1e2c 100%);
  animation: te-bg 18s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .tent-canvas {
  position: absolute; top: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 0 0 30% 30%;
  filter: blur(2px);
  animation: te-canvas 22s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .table {
  position: absolute; bottom: 25%; left: 50%; width: 200px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: te-table 14s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .map {
  position: absolute; bottom: 27%; left: 50%; width: 160px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 2px;
  opacity: 0.7;
  animation: te-map 30s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .marker-red {
  position: absolute; bottom: 32%; left: 42%; width: 8px; height: 8px;
  background: #c8553d; /* terracotta, not crimson */
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,85,61,0.8);
  animation: te-marker 3s ease-in-out infinite, te-red 12s linear infinite;
}
.scn-turning-enemy-risks .marker-blue {
  position: absolute; bottom: 30%; left: 58%; width: 8px; height: 8px;
  background: #4a6a8a;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(74,106,138,0.8);
  animation: te-marker 4s ease-in-out infinite reverse, te-blue 14s linear infinite;
}
.scn-turning-enemy-risks .commander {
  position: absolute; bottom: 24%; left: 44%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te-commander 5s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .lantern {
  position: absolute; top: 15%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #ffd680 0%, #b08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,214,128,0.5), 0 0 60px 20px rgba(255,214,128,0.2);
  animation: te-lantern 4s ease-in-out infinite alternate;
}
.scn-turning-enemy-risks .shadow {
  position: absolute; bottom: 0; left: 40%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: te-shadow 6s ease-in-out infinite alternate;
}
@keyframes te-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes te-canvas { 0% { transform: scaleY(1); filter: blur(2px); } 50% { transform: scaleY(1.02); filter: blur(1.5px); } 100% { transform: scaleY(1); filter: blur(2px); } }
@keyframes te-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes te-map { 0% { opacity: 0.6; transform: translateX(-50%) rotate(-1deg); } 50% { opacity: 0.8; transform: translateX(-50%) rotate(0deg); } 100% { opacity: 0.7; transform: translateX(-50%) rotate(1deg); } }
@keyframes te-marker { 0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(1); } }
@keyframes te-red { 0% { left: 42%; } 50% { left: 44%; } 100% { left: 42%; } }
@keyframes te-blue { 0% { left: 58%; } 50% { left: 56%; } 100% { left: 58%; } }
@keyframes te-commander { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes te-lantern { 0% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(255,214,128,0.5); } 50% { transform: translateX(-50%) rotate(2deg); box-shadow: 0 0 40px 15px rgba(255,214,128,0.7); } 100% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 30px 10px rgba(255,214,128,0.5); } }
@keyframes te-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene: national-uprising-support */
.scn-national-uprising-support {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #0f0a06 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-national-uprising-support .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1410 0%, #2a1f18 100%);
  animation: nu-bg 30s ease-in-out infinite alternate;
}
.scn-national-uprising-support .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: nu-floor 20s ease-in-out infinite alternate;
}
.scn-national-uprising-support .wall {
  position: absolute; top: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: nu-wall 25s ease-in-out infinite alternate;
}
.scn-national-uprising-support .lantern {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffc080 0%, #b07030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 12px rgba(255,192,128,0.5), 0 0 80px 25px rgba(255,192,128,0.2);
  animation: nu-lantern 3s ease-in-out infinite alternate;
}
.scn-national-uprising-support .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nu-figure 7s ease-in-out infinite alternate;
}
.scn-national-uprising-support .figure-center {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nu-figure 9s ease-in-out infinite alternate 1s;
}
.scn-national-uprising-support .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nu-figure 8s ease-in-out infinite alternate 2s;
}
.scn-national-uprising-support .papers {
  position: absolute; bottom: 26%; left: 50%; width: 60px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b088 0%, #a08858 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: nu-papers 40s ease-in-out infinite alternate;
}
@keyframes nu-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nu-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes nu-wall { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } }
@keyframes nu-lantern { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); box-shadow: 0 0 40px 12px rgba(255,192,128,0.5); } 50% { transform: translateX(-50%) scale(1.03) rotate(3deg); box-shadow: 0 0 50px 18px rgba(255,192,128,0.7); } 100% { transform: translateX(-50%) scale(0.98) rotate(-3deg); box-shadow: 0 0 40px 12px rgba(255,192,128,0.5); } }
@keyframes nu-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes nu-papers { 0% { opacity: 0.5; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 0.8; transform: translateX(-50%) rotate(0deg); } 100% { opacity: 0.6; transform: translateX(-50%) rotate(2deg); } }

/* Scene: defender-flank-attack */
.scn-defender-flank-attack {
  background: linear-gradient(180deg, #121018 0%, #1a1a2a 40%, #080810 100%),
              radial-gradient(ellipse at 40% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-defender-flank-attack .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0810 0%, #181520 100%);
  animation: df-bg 15s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .wall {
  position: absolute; top: 0; left: 0; right: 30%; height: 100%;
  background: linear-gradient(180deg, #2a2228 0%, #1a1218 100%);
  border-right: 4px solid #3a2a30;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.8);
  animation: df-wall 20s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .window {
  position: absolute; top: 25%; left: 8%; width: 60px; height: 90px;
  background: #0a0a14;
  border: 6px solid #2a2228;
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
  animation: df-window 12s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .night-sky {
  position: absolute; top: 28%; left: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%);
  filter: blur(1px);
  animation: df-sky 40s linear infinite;
}
.scn-defender-flank-attack .commander {
  position: absolute; bottom: 12%; left: 5%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #0a0a14 0%, #181828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-commander 6s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .table {
  position: absolute; bottom: 5%; left: 18%; right: 20%; height: 14px;
  background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: df-table 18s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .map {
  position: absolute; bottom: 7%; left: 22%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  opacity: 0.6;
  animation: df-map 30s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .candle {
  position: absolute; bottom: 18%; left: 30%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #ffebd0 0%, #c08040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 16px 4px #ffa94d, 0 0 32px 8px rgba(255,169,77,0.3);
  animation: df-candle 2s ease-in-out infinite alternate;
}
.scn-defender-flank-attack .sword {
  position: absolute; bottom: 14%; left: 15%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8a8a9a 0%, #4a4a5a 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: df-sword 8s ease-in-out infinite alternate;
}
@keyframes df-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes df-wall { 0% { box-shadow: inset -10px 0 20px rgba(0,0,0,0.8); } 50% { box-shadow: inset -15px 0 25px rgba(0,0,0,0.9); } 100% { box-shadow: inset -10px 0 20px rgba(0,0,0,0.8); } }
@keyframes df-window { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,1); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } }
@keyframes df-sky { 0% { background-position: 0 0; } 100% { background-position: 0 -100px; } }
@keyframes df-commander { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(4deg); } 100% { transform: translateX(-3px) rotate(-4deg); } }
@keyframes df-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes df-map { 0% { opacity: 0.5; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(2px); } 100% { opacity: 0.6; transform: translateX(0); } }
@keyframes df-candle { 0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 16px 4px #ffa94d; } 50% { transform: scale(1.04) translateY(-1px); opacity: 1; box-shadow: 0 0 24px 8px #ffa94d, 0 0 40px 12px rgba(255,169,77,0.5); } 100% { transform: scale(0.96); opacity: 0.85; box-shadow: 0 0 12px 2px #ffa94d; } }
@keyframes df-sword { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }
/* end per-scene blocks */
